Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

aramintaros 3. Jun 2009 23:28


TDoscommand Probleme
 
Hallo und einen wünderschönen (vielleicht auch gehabt zu haben :lol: )

ich habe vor ein par Tagen den TDosCommand kennegelernt und bin auch begeistert, bis heute jedenfalls. Wenn ich dem sage, daß er mehr als 1 mal etwas erledigen soll dann kommen da sehr unterschliedliche Ergebnisse. Hier mal der Quellcode.
Delphi-Quellcode:
procedure TForm1.getvideoinf_ffmpegClick(Sender: TObject);
var counter: integer;
begin
  for counter:= 0 to ListView1.Items.Count- 1 do // Hier wird gezählt wieviele Filme in der ListView sind
  begin
    SingleVideoName:= (ListView1.Items.Item[counter].SubItems.Strings[0]); // Dem "SingleVideoName" der Name zugewiesen
    Order:= 'E:\FFmpeg\ffmpeg.exe -i '+ SingleVideoName; // "Order" ist eine StringVariable die dem FFMpeg mitteilt was er tun soll
    DosCommand1.Lines:= Memo1.Lines; // Die Dos-Ausgabe kommt hier ins Memo1
    DosCommand1.CommandLine:= Order; // TDosCommand bekommt hier seinen Befehl, den er laut ListViewCount abarbeiten soll (In diesem Fall 4 mal)
    DosCommand1.Execute; // und hier führt er Ihn aus
  end;
end;
So habe ich mir das jedenfalls vorgestellt.
Aber was ich dabei rausbekomme ist meistens nur die Info über den letzten Film, wie gesagt meisten, manchmal auch nur der Ansatz von FFMpeg, der Rest schwebt dann im Daten Nirwana.
Wie kann ich den TDoscommand dazu bringen, ALLES der Reihe nach ins Memo1 zu schreiben, ohne das etwas verloren geht?
Habe schon Stunden gebrütet und weis nun nicht mehr weiter, hoffentlich könnt Ihr mir helfen, erstmal Danke und weiterhin einen Wunderschönen :lol:

//Edit Ich habe den sleep nicht mehr im Quelltext stehen.

jaenicke 3. Jun 2009 23:55

Re: TDoscommand Probleme
 
Was sucht eine Frage in der Sparte für Vorschläge für die Code-Library... :roll:

Zur Frage: Kann es sein, dass in Execute oder beim Zuweisen der Eigenschaft Lines der aktuelle Inhalt gelöscht wird? Dann wäre der nämlich jedesmal weg. ;-)

aramintaros 4. Jun 2009 00:04

Re: TDoscommand Probleme
 
Uups, da habe ich mich wohl vertan, das gehört hier ganz sicher nicht hierher. :oops:

Zur Frage, so ist es, jedesmal ist der Text den ich in der CMD-Box sehen kann bei mir weg oder nur teilweise in meinem Memo, manchmal auch nur irgend etwas von dem was FFMeg ausgibt. Wie kriege ich das gelöst??

omata 4. Jun 2009 00:13

Re: TDoscommand Probleme
 
Verwende doch mal das Ereignis OnNewLine + Memo.Lines.Append(...)

aramintaros 4. Jun 2009 00:17

Re: TDoscommand Probleme
 
Werde das morgen probieren, nun ist es Zeit fürs Bett. Ich bedanke mich und wünsch dir eine gute Nacht.

aramintaros 4. Jun 2009 12:05

Re: TDoscommand Probleme
 
Ich habe den ganzen Morgen daran gearbeitet und bin zu keiner Lösung gekommen. Warum verschluckt der TDosCommand fast alles?? :?:
Funktioneirt der vielleicht in einer "for do" Anweisung nicht?? Kann mir jemand behilflich sein??

jaenicke 4. Jun 2009 12:23

Re: TDoscommand Probleme
 
Ich kann es schlicht nicht reproduzieren, bei mir klappt das wunderbar. Auch wenn ich das mehrfach hintereinander ausführe.

Bei mir fehlt nichts, es wird alles normal angezeigt.

// EDIT:
Aber jetzt sehe ich den Fehler: Das liegt an deinem Sleep...
Schau dir mal das Ereignis OnTerminated an...

aramintaros 4. Jun 2009 14:50

Re: TDoscommand Probleme
 
Den sleep habe ich nur zur visuellen Kontrolle genommen, der ist sonst abgeschaltet, in einem TEdit sind die Filme der Reihe nach zu sehen, aber im Memo kommt nicht wirklich etwas an.

jaenicke 4. Jun 2009 14:52

Re: TDoscommand Probleme
 
Nein, ich meine, du wartest einfach ein paar Millisekunden, währendessen dein Programm aber nicht reagieren kann, da es ja eingeschläfert ist. Da kommt also in der Zeit nichts an. Danach startest du direkt den nächsten Befehl ohne zu warten bis der vorherige fertig ist...

aramintaros 4. Jun 2009 15:20

Re: TDoscommand Probleme
 
Der sleep ist nicht mehr vorhanden, ich habe den nur benötigt um zu schauen ob alles, was in der ListView steht abgearbeitet wird. Habe mir zum Test die Namen der Filme in einem Edit anzeigen lassen, dafür brauchte ich den, obwohl im Edit alles sauber ablief kam im Memo nichts an, also nichts was zuverlässig wäre.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Seite 1 von 2  1 2      

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