Compo RedirectionConsole : Problème étonnant
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:
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:
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:
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 ...