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

Lazarus Pascal Discussion :

Utilisation de MessageDlg et ShowMessage dans un simple programme [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Utilisation de MessageDlg et ShowMessage dans un simple programme
    Bonjour !

    J'avais besoin pour mon usage privé d'un simple programme ouvrant une boîte de dialogue et effectuant une action lorsque l'utilisateur appuie sur la touche Entrée.

    Après quelques tâtonnements et recherches, j'ai obtenu le résultat souhaité de la façon suivante. J'ai créé mon fichier *.lpr dans un éditeur de texte, avec les unités suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Interfaces, Forms, Dialogs, Controls;
    et cette ligne au début du programme principal (ne me demandez pas pourquoi) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Application.Initialize;
    Puis j'ai ouvert Lazarus, choisi l'option "Nouveau projet depuis le fichier", choisi "programme simple" comme type de projet, et enfin ajouté le paquet LCL à mon projet. Ouf !

    Je voudrais savoir 1° si mon code est correct ou si c'est un bricolage m*** 2° si vous voyez une autre façon de fabriquer une application de ce genre.

    Avec Delphi c'est plus simple ! J'ajoute Vcl.Dialogs dans les unités de mon application console et ça roule...
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 556
    Points : 3 926
    Points
    3 926
    Par défaut
    Salut Roland

    A ma connaissance, toute application GUI attend un objet Application créé automatiquement dans Form mais le code du projet doit procéder aux éventuelles auto-créations de fiches puis à un appel à Application.Run, ce que ne fais pas ton programme.

    Après quelques essais, j'ai ajouté ces lignes en fin de programme et cela semble résoudre le problème (en tout cas sous Debian/Linux64)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Application.Terminate; // Car on ne fait rien après.
      Application.Run;
    L'appel à Application.Initialize semble surtout lié au démarrage du WidgetSet.

    Remarque : l'objet Application a été étendu aux applications console mais sont fonctionnement est légèrement différent.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre éclairé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    Octobre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 168
    Points : 807
    Points
    807
    Par défaut
    Bonjour,

    Je pense qu'on peux faire plus simple pour créer le projet : il suffit de créer une application Lazarus "normale" comme d'habitude puis de supprimer la fiche principale par la commande de menu Projet / Retirer du projet... Unit1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    program Project1;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Interfaces, // this includes the LCL widgetset
      Forms,
      Dialogs; // ajouter les unités nécessaires
     
    {$R *.res}
     
    begin
    //  RequireDerivedFormResource:=True;
    //  Application.Initialize;
    //  Application.Run;
     
     ShowMessage('Coucou');
     MessageDlg('Bonjour!',mtInformation,[mbCancel],0)
     
    end.
    Sous Windows cela fonctionne, du moins en ce qui concerne les boîtes message, pas même besoin de Application.Initialize ni Application.run.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Merci pour vos réponses.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser un bundle en JAVAEE dans une simple page XHTML
    Par geforce dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 22/01/2013, 13h06
  2. probléme dans un simple programme
    Par maydarak1 dans le forum C
    Réponses: 1
    Dernier message: 28/02/2010, 10h54
  3. Problème d'utilisation du ShowMessage dans un Thread
    Par ero-sennin dans le forum Langage
    Réponses: 7
    Dernier message: 07/10/2008, 09h32
  4. Réponses: 4
    Dernier message: 12/09/2003, 11h38
  5. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52

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