Hallo ich habe das Problem über Threads gelöst. Die Console hat keine Ende , sie läuft zu lange bis sie beendet wird.
Hier mal der Code
Delphi-Quellcode:
type
TMyThread =
class(TThread)
exe:Tedit;
command:Tedit;
procedure Execute;
override;
procedure VCLSync;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RC_LineOut:=mylineout;
end;
procedure TMyThread.Execute;
begin
if not Terminated
then
begin
// Zugriff auf VCL-Elemente synchronisieren
Synchronize(VCLSync);
// etwas warten
Sleep(10);
end;
end;
procedure TMyThread.VCLSync;
begin
RC_Run(exe.Text+'
--config '+command.Text);
end;
procedure MyLineOut(s:
string);
// Output procedure
begin
form1.memo2.lines.add(s);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
memo2.Clear;
// Thread erzeugen (suspended)
Th := TMyThread.Create(True);
// Thread gibt sich selbst frei
Th.FreeOnTerminate := True;
// Progressbar zuweisen
Th.exe := Edit4;
Th.command := Edit5;
// Thread starten
Th.Resume;
// Message anzeigen, Thread läuft weiter
//ShowMessage('Thread Gestartet');
end;
if (content='
!run')
and (auser.nick = okuser)
then
begin
button3.Click;
idirc1.say(auser.nick,'
Prog gestartet ...');
end;
if (content='
!stop')
and (auser.nick = okuser)
then
begin
if not th.Terminated
then th.Terminate;
if not KillTask('
...exe')
then idirc1.say(auser.nick,'
Prog nicht beendet ...');
end;
Danke für die Hilfe