IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

conseil sur un form qui me sert de MessageDlg


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut conseil sur un form qui me sert de MessageDlg
    Bonjour à tous,

    A force de me prendre la tête avec les messages de confirmation en anglais, les yes no, etc... apres avoir tentez pas mal de modif en dur des fichiers .pas sans effet. j'ai donc décider de créer une form qui comporte
    - Une image (toujours la meme)
    - 1 label ecris en normal
    - 1 label en gras
    - 2 tbutton un [oui] et un [non]
    ModalResult du clique sur [Non] : mrAbort
    ModalResult du clique sur [Oui] : mrOk

    La fenêtre n'ai pas créér à l'excution du programme.
    pour son utilisation

    Je déclare dans les uses le fichier passe de cette form
    La taille de la form ne change pas par rapport au message envoyé (on pourais l'imaginer)

    Utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Procedure ......
      FConfirmation := TFConfirmation.Create(Application);
      Try
        FConfirmation.Label1.Caption := 'Supprimer l''enregistrement ?';
        FConfirmation.Label2.Caption := '';
        case FConfirmation.ShowModal of
          mrOk : DBNavigator1.BtnClick(nbDelete); // Travail a faire si clique sur Oui
          else
            Showmessage('La suppression a été annulé.'); // dans tous les autres cas Fermeture, clique non etc...
        end;
      Finally
        FConfirmation.free;
      end;
    end;

    Je vous demande juste de me dire si cela est cohérent, où si je me prends la tête pour rien ?

    PS : J'ai réussi à faire cela suite à un coup de main sur un autre poste est une idée d'andnotor, j'en est ensuite sortie quelque ligne pour en faire autre chose.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 131
    Points
    13 131
    Par défaut
    Pour moi, c'est correct

    Je supprimerais simplement ce ShowMessage qui va finir par énerver l'utilisateur final (ou alors il faut qu'il puisse aborter l'annulation et reaccepter l'effacement).

    Enfin, créer une variable FConfirmation n'est pas nécessaire à partir du moment où tu ne l'utilises pas dans une autre procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Procedure ......
      with TFConfirmation.Create(Application) do
      Try
        Label1.Caption := 'Supprimer l''enregistrement ?';
        Label2.Caption := '';
        if ShowModal = mrOk then
          DBNavigator1.BtnClick(nbDelete);
      Finally
        Free;
      end;
    end;
    Je ne suis pas non plus très partisan de ces try finally partout. S'il devait y avoir une erreur (mais il n'y en aura pas sur une fenêtre de confirmation), on doit la gérer immédiatement (par un try except à l'intéreur de TfConfirmation) et non attendre qu'elle soit remontée jusqu'à Application où on ne sauras plus du tout à quoi elle ce rapporte.

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Tu pourrais également modifier le create de ton TFConfirmation, ainsi tu pourrais lui passer directement en paramètre le texte que tu souhaite mettre dans tes 2 labels.
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Re,

    Ok j'ai retiré le showmessage supplémentaire qui aloudissait pour rien l'appli.
    Merci AndnotOr

    Sinon Qwazery, j'ai bien pris note te ta remarque mais 2 choses me vienne à l'esprit.
    1) comment on fait ?? lol
    2) Il y a t'il vraiment un énorme différence ? Label1 et Label2 ne sont pas en public ni en private dans ma TFconfirmation donc j'alourdi en rien la mémoire ? enfin si c'est une histoire de gain ? Peux-tu m'en dire plus ?

    MErci

  5. #5
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Je ne connais pas ton code, mais il sagit de modifier le OnCreate, en le surchargeant (j'espère ne pas me tromper :p) afin d'obtenir le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Procedure ......
      with TFConfirmation.Create(Application,'Supprimer l''enregistrement ?','') do
      Try
        if ShowModal = mrOk then
          DBNavigator1.BtnClick(nbDelete);
      Finally
        Free;
      end;
    end;
    Mais bon ça n'est qu'un détail... juste une remarque en passant ^^.

    Par contre en faisant une petite recherch, je chercher a supprimer le free, je suis tombé sur ce site, qui me semble etre exactement ce que tu recherches a faire, et dans ce cas, tu as uniquement un appelle Execute a faire, aucun free... puisque pas de create.
    Il te suffit de modifier le Execute pour mettre en paramètre les textes que doivent contenir tes 2 labels et le tour est joué
    Jette un œil ICI .
    A++
    Qwaz

    [Edit]
    Je n'est pas testé mais qqchose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [...]
      public
        Constructor Create(AOwner:TComponent);override;
        function execute(Text1,Text2 As String) : Boolean;
    [...]
    function TNomPrenom.execute(Text1,Text2 As String)  : Boolean;
    begin
      FicheDialogue1:=TFicheDialogue1.Create(application);
      Try
        FicheDialogue1.Edit1.Text:=Text1;
        FicheDialogue1.Edit2.Text:=Text2;
        Result:= (FicheDialogue1.ShowModal=IDOK);
    [...]
    [/Edit]

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Conseil sur une PS qui doit interroger X bases
    Par Raphael1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2011, 14h07
  2. [Prototype] Observer sur un form qui ne fonctionne pas
    Par Gregory.M dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 06/06/2010, 18h11
  3. Détection Javascript via PHP, conseil sur un script qui marche
    Par Stnaire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2008, 23h47
  4. Besoin conseil sur la forme 3NF d'un exemple de relvar
    Par ctobini dans le forum Débuter
    Réponses: 3
    Dernier message: 17/06/2007, 00h01
  5. probléme de cadre sur une image qui me sert de lien
    Par thomas_chamas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/11/2004, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo