ich weiß mal wieder nicht weiter. Also ich starte mit TProcess ein Programm und lese die Ausgabe von StdOut und ggf. StdErr. Wenn ich ein einfaches Konsolenprogramm starte, welches ebenfalls mit Lazarus geschrieben wurde, bekomme ich die Ausgaben, die ich per writeln im Code mache.
Wenn ich aber ein writeln in einer Anwendung mit GUI verwende, bekomme ich diese Ausgaben nicht mehr. Selbst dann nicht, wenn ich vor den Application-Aufrufen in der LPR-Datei etwas printe. Was ich bekomme sind zwei Warnungen in StdErr:
Code: Alles auswählen
Gtk-[1;33mWARNING[0m **: [34m21:41:26.844[0m: Unable to locate theme engine in module_path: "adwaita",
Starte ich das GUI-Programm im Terminal, werden mir sowohl diese Warnungen, als auch meine writelns angezeigt. Wenn ich eine eigene Unit vor der Interfaces-Unit einbinde und in der initialization ein writeln mache, wird mir dessen Ausgabe im Terminal sogar vor den Warnungen angezeigt, aber über die Pipe von TProcess bekomme ich weiterhin nur die Warnungen.
Habe natürlich auch writeln(stderr, 'test'); versucht. Daran liegt es nicht. Ebenfalls nicht an der -WG-Option (Win32 GUI Anwendung) in den Projekteinstellungen.
Ich habe das Gefühl, dass in GUI-Anwendungen mehrere Pipes geöffnet werden, das Terminal (sowie auch das Konsolenfenster von Lazarus) irgendwie alle mitschneidet und ausgibt, während TProcess nur das StdOut bekommt...
Jemand 'ne Idee, woran das liegen kann?