begin process at 2010 02 10 02:51:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > MESSAGEBOX MAKER - GÉNÉRATEUR DE MESSAGEBOX EN DELPHI

MESSAGEBOX MAKER - GÉNÉRATEUR DE MESSAGEBOX EN DELPHI


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :generateur, msgbox Niveau :Débutant Date de création :09/08/2005 Date de mise à jour :09/08/2005 14:04:45 Vu / téléchargé :9 537 / 2 336

Auteur : freetai

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
MessageBox Maker est une application permettant de concevoir un code de MessageBox Delphi en quelques clics! Il suffit de choisir l'icone, les bouttons de choix, le focus sur le boutton prioritaire, le titre de la boite ainsi que son message et le tour est joué! Il est possible d'avoir l'aperçu de la MessageBox, de voir le code correspondant ainsi que les differents choix en fonction du boutton cliqué, puis de copier ce code directement dans le presse-papier. Cette application est incontournable pour les débutants ainsi que pour les gens un peu pressés...

Source


 Conclusion

hautierc@hotmail.fr

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 août 2005 14:04:45 :
trucs&astuces => API

 Sources du même auteur

Source avec Zip Source avec une capture EDITEUR DE CODE MULTI-LANGAGE - MULTICODEEDITOR (UTILISATION...
Source avec Zip Source avec une capture CONFIGURATION DE WINDOWS® XP AVEC L'APPLICATION XP-CONF (UTI...

 Sources de la même categorie

Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE... par f0xi
Source avec Zip Source avec une capture AUTO-COMPLÉTION D'UN CONTRÔLE DE SAISIE par Bacterius
Source avec Zip CARDS GAME SDK 1.0.0.0 par f0xi
Source avec Zip Source avec une capture TRAYICON - VOTRE ICONE DANS LA BARRE DES TACHES par Bacterius
Source avec Zip Source avec une capture WINHIDER _ CACHER UN PROGRAMME DE L'ÉCRAN ET DE LA BARRE DE ... par soldier8514

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GÉNÉRATEUR ALÉATOIRE DE FICHIER par John Dogget
Source avec Zip Source avec une capture DESSINER UNE COURBE SONORE par ralebol

Commentaires et avis

Commentaire de hurrycane le 10/08/2005 08:08:32

il y'a un dialogbox maker inclus dans delphi
donc bonne initiative , j'ai pas esayé encore
mais ca doit etre sympa
bon courage freetai

Commentaire de cirec le 10/08/2005 12:03:05 administrateur CS

Bravo freetai Simple falleit y penser.
j'ai toute fois quelques petit bugs

1 - dans la config 3 Btn Annuler Réessayer Continuer.
Réessayer à le code retour de 10 et non 4

2 - dans la même config le Code Retour de Continuer
    est manquant.

3 - dans toutes les config chez moi du moins
    Réessayer et remplacer par Recommencer

si tu le désirs je peut envoyer la correction
qui comporte aussi une rationalisation du Code
(2/3 en Moins) et il fait toujours la même chose.
Cirec@aol.com

Voilà je met quand même 7/10 pour y avoir pensé

ps :
L'unité JvGIF je ne connais pas, du coup l'image que tu as mis dans Image2 (qui est de type Gif je supose) n'est pas reconu comme format valide et donc ne s'affiche pas.

Si tu pouvais préciser ou l'on peut se la procurer.

Commentaire de freetai le 10/08/2005 12:30:52

salut a tous!

CIREC => en effet, je me suis rendu compte des petits defauts (quoique bien ennuyeux...) que tu as remarqué, j'ai été un peu trop pressé et j'ai du zapper quelques trucs avant de mettre le code ici... Vous m'en voyez désolé, vraiment. Du coup, je pensais attendre le week-end pour corriger ça (pas le tps la semaine!!), mais si tu veux me faire part de tes modif CIREC, c'est avec plaisir!

En rapport a la librairie Jedi: c'est une librairie de composants gratuits très interessants, visuels et non visuels:
"Jedi Library (JVCL)
La plus vaste bibliothèque de composants VCL en Open Source. Près de 500 composants avec démos pour Delphi : Impressionnant ! Vous pouvez télécharger la dernière version stable (3.00) incluant la RALib et la RXLib."
http://homepages.borland.com/jedi/jvcl/

le fait d'installer cette librairie permet au composant de base Timage d'inclure des gif.

voilà... A très vite!

Commentaire de assemple le 15/08/2005 11:08:05

En effet pour l'unité JvGif !
C'est un gros problème pour le partage des sources !
On a tous nos petites habitudes ou unités spécifiques piochées ici ou là, ou développées par soi-même.
Autrement, à part les beugs signalés par cirec, que je n'ai pas eu le temps de constater, j'ai trouvé MessageBox Maker pas mal du tout.
Mais, il s'avère que j'ai eu besoin de travailler sur le thème de la message box.
Galère pour retrouver les mtXXXX et les mbYYYY quand on est plongé dans la rédaction de source. Est-ce que MessageBox Maker est assez souple d'emploi ? Le lancer, retaper le titre et le message, puisque qu'on a été bloqué au stade :

Application.MessageBox('Le blabla que vous avez schtroumphé...',
                       'Voulez-vous continuer ?',
                       mt????

et enfin choisir icône et bouton et copier puis coller.
Ok

Pour que messagebox maker soit efficace, il faut impérativement penser à s'en servir AVANT qu'on se rappelle qu'on en a besoin, c'est à dire avant d'avoir tapé le titre et le message.

Cela étant dit, comment choisir en toute liberté les noms des boutons ? Par exemple Oui/Non/Peut-être (humour) ou plus sérieusement : Tous/Aucun/Choisir. Ces trois boutons n'existent pas avec MessageBox.
Alors, j'ai eu l'iddée d'ecrire une fonction qui permet d'afficher une boite de message comportant un nombre libre de boutons aux noms (caption) libres.

Function MB ( Titre, Message, Boutons : String ) : Byte ;


Exemple :

...
  Reponse := MB ( 'Certaines fiches n''ont pas été enregistrées.'
                  'Voulez-vous les enregistrer toutes,aucunes,
                                                     ou choisir'
                  'Toutes'#13'Aucunes'#13'Choisir'
                 ) ;  // #13 sépare les bouton
  Case Reponse of
    1 : SaveAll(Self) ; // bouton 1 = toutes
    3 : While Choix do Save(FicheChoisie) ;// bt3 = choisir
  End ; // case              // nota bt2 = aucunes ne fait rien !
...

Dès que j'ai eu l'iddée de faire cette fonction, j'ai pensé que ce serait un truc sympa pour CodeSource.

Je vais aller le mettre

Salut à tous

Commentaire de freetai le 21/08/2005 19:39:12

assemple>> c'est vrai que ça peut etre sympa ton idée d'avoir des boutons au texte perso!!! ça m'a donné envie de chercher aussi de mon coté, je suis dedans là... le week prochain, si j'ai eu le temps de faire un bon truc, je te tiens au courant.

Salut tout le monde et a bientôt!

Commentaire de assemple le 21/08/2005 20:10:00

Ne cherche pas, je l'ai fait.
Je l'ai mis sur code source, mais ça a planté à un moment donc je lme copie ici :

le PAS :
unit UBM;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, Buttons, StdCtrls;

Const LargeurBouton = 120 ;
      HauteurBouton =  27 ;

type
  TFBM = class(TForm)
    LabelMessage: TLabel;
    procedure LesSpeedButtonsClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
    BoutonChoisi : integer ;
    Raccourcis : ShortString ;
  end;

Function BM(LeTitre, LeMessage : String ; ListeDesBoutons : String = 'Ok' ) : integer ;
var
  FBM: TFBM;

implementation

{$R *.dfm}
             // pour CODESOURCE
uses DDU ;  // Supprimer cette clause et la ligne Remplace...


Function BM(LeTitre, LeMessage : String ; ListeDesBoutons : String) : integer ;
Var S : String ;
    BN : ShortString ;
    Count : integer ;
    I, X, Y : Integer ;
    UnSB : TSpeedButton ;
    Ok : Boolean ;
Begin
  // Init
  X := 10 ;
  Y := 72 ;
  Count := 1 ;
  // Premier appel à BM
  If FBM=Nil then FBM := TFBM.Create(application) ;
  // Titre
  FBM.Caption := LeTitre ;
  // Message
  FBM.LabelMessage.Caption := LeMessage ;
  // Liste des Boutons
  S := ListeDesBoutons ;
  Remplace('#13',#13,S) ;   // Supprimer cette ligne et la clause Uses DDU ;
  //----------------------------------------------------------------------------
  // Boucle de création des boutons
  While S<>'' do
  Begin
    //--------------------------------------------------------------------------
    // Détermination du Nom du Bouton (BN : Button Name)
    If Pos(#13,S)>0 then
    Begin
      BN := Copy(S,1,Pos(#13,S)-1) ;
      Delete(S,1,Pos(#13,S)) ;
    End Else
    Begin
      BN := S ;
      S := '' ;
    End ;
    While Copy(BN,1,1)=' ' do BN := Copy(BN,2,255) ;
    While Copy(BN,Length(BN),1)=' ' do BN := Copy(BN,1,Length(BN)-1) ;
    If BN<>'' then
    Begin
      If X>FBM.Width-LargeurBouton-10 then
      Begin
        X := 10 ;
        Inc(Y,HauteurBouton+3) ;
        FBM.LabelMessage.Height := FBM.LabelMessage.Height - HauteurBouton - 3 ;
        For I := 1 to FBM.ComponentCount do
        Begin
          If FBM.Components[i-1] is TSpeedButton then TSpeedButton(FBM.Components[i-1]).Top := TSpeedButton(FBM.Components[i-1]).Top - HauteurBouton - 3 ;
        End ;
        FBM.Height := FBM.Height + HauteurBouton + 3 ;
      End ;
      UnSB := TSpeedButton.Create(FBM) ;
      UnSB.Parent := FBM ;
      If Pos('&',BN)=0 then
      Begin
        FBM.Raccourcis := FBM.Raccourcis + upcase(BN[1])  ;
        BN := '&'+BN ;
      End Else FBM.Raccourcis := FBM.Raccourcis + upcase(BN[Pos('&',BN)+1]) ;
      UnSB.Caption := BN ;
      UnSB.Name := 'B'+IntToStr(Count) ;
      Inc(Count) ;
      UnSB.Anchors := [akLeft,akBottom] ;
      UnSB.Left := X ;
      UnSB.Top := Y ;
      UnSB.Width := LargeurBouton ;
      UnSB.Height := HauteurBouton  ;
      UnSB.OnClick := FBM.LesSpeedButtonsClick ;
      // GLYPH !!!!!!
      If FileExists(BN+'.BMP') then UnSB.Glyph.LoadFromFile(BN+'.BMP') ;
      Inc(X,largeurBouton + 10 ) ;
    End ;
  End ;
  // Boucle de création des boutons
  //----------------------------------------------------------------------------

  // Init resultat (BoutonChoisi) à AUCUN
  FBM.BoutonChoisi := 0 ;

  // Affichage de la Boîte de Message (FBM) en MODAL
  FBM.ShowModal ;

  // Report du Résultat
  Result := FBM.BoutonChoisi ;

  // Réinit : Dimension initiale
  FBM.ClientHeight := 100 ;
  FBM.LabelMessage.Height := 50 ;
  // Réinit : suppression des speedbuttons
  // Double boucle "breakée" car button.free décale les indices de FBM.Component
  // mais je viens de me rendre compte qu'un DOWNTO aurait p'têt fait l'affaire
  While Not OK do
  Begin
    Ok := True ;
    For I := 1 to FBM.ComponentCount do
    Begin
      If FBM.Components[i-1] is TSpeedButton then
      Begin
        TSpeedButton(FBM.Components[i-1]).Free ;
        Ok := False ;
        BREAK ;
      End ;
    End ;
  End ;
End ;



procedure TFBM.LesSpeedButtonsClick(Sender: TObject);
var s : ShortString ;
begin
  If Sender is TSpeedButton then
  Begin
    S := TSpeedButton(sender).Name ;
    BoutonChoisi := StrtoInt(S[2]) ;
  End ;
  ModalResult := mrOk ;
end;

procedure TFBM.FormKeyPress(Sender: TObject; var Key: Char);
begin
  Key := UpCase(key) ;
  BoutonChoisi := Pos(Key,raccourcis) ;
  If BoutonChoisi<>0 then Modalresult := mrOk ;
end;

procedure TFBM.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  If Key=13 then
  Begin
    BoutonChoisi := 1 ;
    ModalResult := mrOk ;
  End ;
  If Key=27 then
  Begin
    BoutonChoisi := 1 ;
    ModalResult := mrOk ;
  End ;
end;

end.

le DFM :
object FBM: TFBM
  Left = 291
  Top = 314
  Width = 418
  Height = 127
  Caption = 'FBM'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  OnKeyDown = FormKeyDown
  OnKeyPress = FormKeyPress
  PixelsPerInch = 96
  TextHeight = 13
  object LabelMessage: TLabel
    Left = 0
    Top = 15
    Width = 410
    Height = 50
    Align = alCustom
    Alignment = taCenter
    Anchors = [akLeft, akTop, akRight, akBottom]
    AutoSize = False
    Caption = 'LabelMessage'
  end
end

Commentaire de cirec le 23/08/2005 12:50:28 administrateur CS

Bonjour freetai
as tu recu le correctif de t'on MessageBox Maker que je t'ai envoyer il y a trois semaine.(Boite privé )
Voilà donc depuis j'attend :-).

Et si tu es toujours interessé je peut envoyer la suite .
j'ai débusqué d'autres erreurs:
si le message comporte plus d'une ligne il est impossible d'utiliser le code généré directement
(sans correction)
et d'autres petites chose ...
voilà @+

ps : loin de moi l'idée de te critiquer où autre, non,
ma seul intention est de de t'aider a améliorer t'on
Prog qui je pense une fois terminé sera très utile.

@+ Cirec

Commentaire de cirec le 23/08/2005 12:51:06 administrateur CS

Bonjour freetai
as tu recu le correctif de t'on MessageBox Maker que je t'ai envoyer il y a trois semaine.(Boite privé )
Voilà donc depuis j'attend :-).

Et si tu es toujours interessé je peut envoyer la suite .
j'ai débusqué d'autres erreurs:
si le message comporte plus d'une ligne il est impossible d'utiliser le code généré directement
(sans correction)
et d'autres petites chose ...
voilà @+

ps : loin de moi l'idée de te critiquer où autre, non,
ma seul intention est de de t'aider a améliorer t'on
Prog qui je pense une fois terminé sera très utile.

@+ Cirec

Commentaire de freetai le 29/08/2005 23:57:54

Cirec>>
oui merci je l'ai recu, vraiment désolé de ne pas t'avoir repondu!!!! je suis très pris en ce moment et je ne pense malheureusement pas pouvoir faire avancer ce source pour le moment... En attendant si tu as le temps de le faire de ton coté, poste-le sur ce site et je retirerai le mieux qui est loin d'être parfait... en tout cas merci pour ta proposition d'aide, c'est très aimable à toi ;)

allez @bientôt j'espere!

ps: au fait à propos du bug sur le message de plus de 3 lignes, ne serait-ce pas plutot une histoire de nombre de caracteres? (256 max ou un truc de ce genre??)

Commentaire de cirec le 17/09/2005 02:59:49 administrateur CS

ca y est Freetai j'ai posté ma source si tu veux la voir

c'est ici que ca se passe :
http://www.delphifr.com/code.aspx?ID=33820

dit moi ce que tu en penses.

ps: pour la modification permanente du texte du menu démarrer il faut faire une modif directement dans explorer.exe en Hexa
je dois avoir quelque part une explication sur ce sujet si ca t'interesse toujours.
Par contre tu ne pourras pas dépasser la barrière des 8 caractères
ce qui veut dire pas de modification de la taille du menu Démarrer.

re ps: tu pourras tester une messageBox avec un texte de plus de 256 caractères. J'ai testé avec plus 1024 caractères sans problèmes :-)

sur ce @ plus.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

GENERATEUR SQL [ par w38 ] Bonjour afin de gagner du temps, je souhaitais savoir si vous connaissiez un logiciel/composant permettant de générer du code SQL à partir d'un soft q MsgBox non modale ? [ par bebeb3 ] Y a t'il un moyen d'avoir une message box non modale ?Je voudrais pouvoir afficher un message sans pour autant suspendre l'execution du programme et s generateur de login [ par anasoft ] Bonjour,J'ai besoin de faire un générateur de login + password avec une date de validité par exemple 7jours, après cette date il sera invalide.Je bloq Saut de ligne dans une messagebox [ par Jerem_ ] Salut,Voila en fait j'ai un tout petit programme dans mon programme.Je cherche à faire un saut de ligne dans une messagebox.En vb ca donne:msgbox "Sal creer un generateur de nombre aleatoire [ par MoveX ] bonjour,jaimerais creer un generateur de nombres aleatoires. je ne parle pas d utiliser la fonction randomize dans delphi mais de creer ma propre fonc msgbox erreur en delphi [ par maxsecurite2 ] bonjour,depuis 1 heure je cherche comment faire pour faire une msgbox erreur en delphi et surtout pouvoir changer le titre sachant que c'est pas une v GENERATEUR DE NUMEROS [ par hackerloc ] Salut A tous !! Je veux un code sourse d'un  GENERATEUR DE NUMEROS programmer en delphi Exemple :    On met le num 060.xx.xx.xx dans un Edit et On run


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales