Krass, soll das wirklich alles gewesen sein?
Irgendwie hatte ich das (wie oben geschrieben) viel komplizierter in Erinnerung bei den Lösungen, die ich damals gefunden habe.
Ein Problem habe ich allerdings noch bei einem Test festgestellt: Wenn das Programm mit dem "/?" gestartet wird, gibt es den Text brav auf der Konsole aus, nach dem Ende des Programms wird dann aber kein Prompt angezeigt. D.h.: der Cursor blinkt, die Konsole nimmt auch Befehle entgegen, aber für den Benutzer sieht das nicht so aus, da er das Prompt nicht sieht. Irgendwelche Ideen, wie man das noch lösen kann?
Meine Komplettlösung sieht dann übrigens so aus:
Delphi-Quellcode:
program GUIcons;
uses
Forms,
windows,
Dialogs,
main
in '
main.pas'
{Form1};
const
// Konstante definieren
ATTACH_PARENT_PROCESS = DWord(-1);
// API einbinden
function AttachConsole(dwProcessId: DWord): Boolean;
stdcall;
external '
kernel32.dll'
name '
AttachConsole';
{$R *.res}
begin
// Hier beginnt das About (innerhalb der .DPR vor dem Application.Initialize)
if paramstr(1)='
/?'
then begin
if AttachConsole(ATTACH_PARENT_PROCESS)
then begin
try
WriteLn(#13#10 + '
About');
writeln;
finally
FreeConsole;
end;
end else begin
ShowMessage('
About');
end;
end else begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
Bis denn
Bommel