Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TDoscommand Probleme (https://www.delphipraxis.net/135054-tdoscommand-probleme.html)

jaenicke 4. Jun 2009 15:33

Re: TDoscommand Probleme
 
Ja, aber du wartest nicht, dass der Befehl beendet ist...
Da ist wie wenn du jemanden was fragst und dich dann direkt zum nächsten umdrehst und den fragst ohne auf Antwort zu warten...

Klaus01 4. Jun 2009 15:40

Re: TDoscommand Probleme
 
. wie omata schon oben geschrieben hat,
nutze doch onNewLine zur Ausgabe.

Zitat:

Zitat von http://maxxdelphisite.free.fr/doscmd.htm
Execute a DOS program or batch file et get outputs (text in the console)
via an event OnNewLine(Sender: TObject; NewLine: string; OutputType: TOutputType).

You do not need to wait the end of the execution to get outputs, you get it line by line.
You can also send text to console input via the procedure SendLine(Value: string; Eol: Boolean).

Grüße
Klaus

jaenicke 4. Jun 2009 15:45

Re: TDoscommand Probleme
 
Ja, oder halt wie ebenfalls schon gesagt das Event OnTerminated, was ausgelöst wird, wenn der Befehl abgearbeitet ist.

cervicor 26. Feb 2011 18:02

AW: TDoscommand Probleme
 
Hallo,

ich versuche auch gerade diese Komponente zu nutzen. Leider habe ich nicht so den richtigen Erfolg.

Ich verwende die Komponente in Delphi2010 unter Win7 (64bit). Ich kann das Programm ausführen, bekomme aber nur einen unsinnigen Output. Ich nutze zum Auslesen der Commandline das Ereignis onNewLine und führe ein Append in ein TMemo.Lines durch. Ich bekomme nur Chinesische Zeichen. Setze ich die Eigenschaft OEMConvert im Memo auf True erhalte ich nur Unterstriche und wenige Ziffern als Ausgabe. Ich vermute ein Problem mit den 16bit-Chars. Ich denke die Komponente ist für 8Bit-Chars entwickelt worden. Ich habe mich noch nicht getraut alles auf AnsiChar und AnsiString umzustellen. Ich weiß nicht, ob das was bringt. Auf alle Fälle musste ich die Zeile
Code:
type TCharBuffer = array[0..MaxInt - 1] of Char;
in
Code:
type TCharBuffer = array[0..MaxInt div 2 - 1] of Char; //MaxInt --> MaxInt div2 (new Char - 16bit)
umwandeln, da sonst das Array die 2GB - Grenze überschreitet.

Kann mir hier jemand helfen?

vielen Dank
cervicor


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz