bonjour

j'ai installé ce compo, qui m'a été conseillé par un membre du forum

j'avous qu'il est sympa et qu'il répond plus ou moins à ce que je voulais faire

mais il y a un prob que je ne comprends pas du tout ...

déjà voilà l'adresse pour le dl :
http://delphi.developpez.com/sources...rectionConsole

(il y a un pti exemple dedans)

j'ai donc créé une nouvelle appli delphi :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DosCommand;
 
type
  TForm1 = class(TForm)
    DosCommand1: TDosCommand;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
DosCommand1.CommandLine := 'cmd.exe';
DosCommand1.OutputLines := Memo1.Lines;
DosCommand1.Execute;
end;
 
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  If Key = VK_Return then begin
      If LowerCase(Edit1.Text) = 'exit' then begin
      Doscommand1.SendLine('exit',true);
      sleep(10);
      Application.Terminate;
      end;
    DosCommand1.SendLine(Edit1.Text,True);
    Edit1.Clear;
  end;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Doscommand1.SendLine('exit',true);
sleep(10);
end;
 
end.

je n'ai aucun problème, le prog fonctionne parfaitement ...

SAUF que maintenant j'ai rajouté autre chose et c'est là que je ne comprends pas :

après avoir envoyé chaque commande dos je reçois les résultats dans un mémo mais j'aimerais exécuter d'autre commande comme par ex savetofile ou n'importe quoi d'autre ...

donc je met le "savetofile" (ou autre code) après ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
DosCommand1.SendLine(Edit1.Text,True);
Edit1.Clear;
et là ... rien ne se passe ...
tout ce que je mettrai après ce code ne sera pas exécuté

j'ai trouvé un moyen de faire le code se trouvant à la suite s'exécuter : il faut ajouter un showmessage (et donc après avoir clické sur ok le code sera exécuté)

c'est la syntaxe qui fonctionne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
DosCommand1.SendLine(Edit1.Text,True);
Edit1.Clear;
showmessage('bla bla bla bla');
memo1.savetofile...... / ou autre code
inutile de vous dire que ça soule un mac de devoir valider la messagebox tout le temps ...

donc j'aimerais savoir quoi faire pour pouvoir exécuter du code à la suite OU ENCORE s'il y a moyen de "tricher" en ajoutant autre chose à la place du showmessage qui ne soulera ...