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 :

Console qui ouvre une fenêtre


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut Console qui ouvre une fenêtre
    Bonjour,

    c'était pour savoir comment ouvrir une fenêtre depuis une application console Delphi:

    en fait je voudrait créer une fenêtre particulière suivant l'entrée de l'utilsateur

    genre si au prompt on tape
    creerfenetre 640 480

    le programme ouvre une fenêtre windows de 640 x 480

    voila j'espère que vous avez compris ce que je veux faire

    Comment dois-je mi prendre au niveau de la structure.
    Quelle unités de la VCL appeler ? Comment déclarer ma form ?
    Dois-je créer un DFM ?

    Merci

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Points : 2 306
    Points
    2 306
    Par défaut
    Bonjour,

    oui tu dois créer un dfm. Essaye ceci, ça devrait fonctionner :

    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 Project2;
     
    {$APPTYPE CONSOLE}
     
    uses
      Forms,
      SysUtils,
      Unit3 in 'Unit3.pas' {Form3};
     
    var
      L : String;
     
    begin
      { TODO -oUser -cConsole Main : placez le code ici }
      Readln( L);
      if L = 'O' then
      begin
        Application.Initialize;
        Application.CreateForm(TForm3, Form3);
        Application.Run;
      end;
    end.
    @++
    Dany

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Ou plus simplement j'utiliserais la fonction ParamStr qui permet justement de récupérer les valeurs passés en paramètre de l'application.

    En tout cas le traitement doit se faire effectivement dans le .DPR de ton projet.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    il me semble que ceci correspond plus à la demande...mais je peux me tromper

    créer un projet avec 1 fiche avec juste le code OnCreate

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    type
     TConsoleThread=class(TThread)
      cmd:string;
      procedure Execute; override;
      procedure ExecCmd;
     end;
     
    var
     Thread:TConsoleThread;
     
    procedure TConsoleThread.Execute;
    begin
     AllocConsole;
     repeat
      ReadLn(cmd);
      Synchronize(ExecCmd);
     until cmd='';
    end;
     
    procedure TConsoleThread.ExecCmd;
    begin
      with TForm.Create(Application) do begin
       SetBounds(10,10,640,480);
       Show;
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Application.ShowMainForm:=False;
     Thread:=TConsoleThread.Create(False);
    end;
    NB: ici je n'interprète pas la commande, je me contente de créer une fiche

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut
    Merci pour vos réponses.

    L'exemple de skywaukers marche à merveille mais je ne sais pas comment faire pour pouvoir fermer la fiche sans fermer la console appelante.

    Avez-vous une idée ?

Discussions similaires

  1. un bouton qui ouvre une fenêtre en Java
    Par dzsouma dans le forum Composants
    Réponses: 1
    Dernier message: 28/05/2015, 19h55
  2. Création d'un lien hypertexte qui ouvre une fenêtre
    Par ahlemrhayem dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 18/08/2014, 20h48
  3. Réponses: 0
    Dernier message: 27/06/2014, 13h12
  4. Bouton "Imprimer" qui ouvre une fenêtre système
    Par caro_caro dans le forum Wicket
    Réponses: 1
    Dernier message: 04/06/2009, 18h06
  5. Fenêtre console qui ouvre toujours
    Par sawbo1 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 23/05/2006, 22h27

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