Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
2. Mai 2004
probier mal anstatt dem hier:
Stream := TMemoryStream.Create;
try
while true do begin
succeed := ReadFile(PipeOutputRead, Buffer, 255, NumberOfBytesRead, nil);
if not succeed then
break;
Stream.Write(Buffer, NumberOfBytesRead);
Stream.Position := 0;
Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
2. Mai 2004
Bei allen von TCustomEdit abgeleiteten Klassen gibts die Eigenschaften SelStart und SelLength. SelStart gibt den Start des markierten Textes an, und wenn kein Text markiert ist, ist SelStart die Cursorposition, wobei 0 das erste Zeichen darstellt. Also z.B.:
Memo1.SelStart := Length(Memo1.Text)-1;
Memo1.SelLength := 0;
Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
2. Mai 2004
Hier ist es für die Ausgabepipe, für die Fehlerpipe machst du das gleiche:
Stream := TMemoryStream.Create;
try
while true do begin
succeed := ReadFile(PipeOutputRead, Buffer, 255, NumberOfBytesRead, nil);
if not succeed then
break;
Stream.Write(Buffer, NumberOfBytesRead);
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
1. Mai 2004
Er hat gesagt, dass es sich um ein Fremdprogramm handelt, ich glaube nicht dass er da eine OnClose bekommt. Du kannst die eine Prozessliste holen und nachschauen, ob ein Prozess noch läuft. Schau mal in der Suche nach, vor kurzem war hier sowas..
Lies dir das hier durch, da könntest du was finden:
http://www.delphipraxis.net/internal_redirect.php?t=24268
Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
1. Mai 2004
Wichtig ist, dass du andere Operationen auf die Datei zulässt. Dies geschieht nach AssignFile mit
FileMode := fmShareDenyNone;
Anschließend musst du die Dateigröße speichern, und in einem Timer überprüfen, ob sich diese geändert hat. Ist dies der Fall, musst du nur noch die letzten Zeilen ausgeben. Ob Seek auch bei Textdateien funktioniert weiß ich allerdings nicht.
Forum: Sonstige Fragen zu Delphi
Delphi
by alcaeus,
1. Mai 2004
Als ersten Parameter gibst du Application.Handle an
Als zweiten PChar("open")
Als dritten PChar(<Programmpfad)
Als vierten nil, außer wenn du Parameter brauchst
Als fünften PChar(ExtractFilePath(Application.ExeName))
Und als letzten SW_HIDE
Bedenke aber dass der Benutzer das zweite Programm nicht sieht, und folgedessen auch nicht so einfach beenden kannst, deshalb bist du für das Beenden...