Herzlich willkommen in der Delphi-PRAXiS, Thomas.
(1) Application.Handle steht dir nur in einer fensterorientierten Anwendung zur Verfügung.
(2) Deine Zeichenketten-Konstanten hast du unter Windows mit der CodePage 1252 erfasst. Die Konsole interpretiert die Zeichen aber anhand der CodePage 850. Du kannst die Ausgabe an die Konsole anpassen:
Delphi-Quellcode:
function AnsiToOem (const s: string): string;
begin
SetLength(Result, Length(s));
if Length(s) > 0 then
CharToOemBuff(@s[1], @Result[1], Length(s));
end;
(3) "Einfache Lösung" ist gewiss relativ. Durch ein Verbiegen der STDIO Handles sollte möglich sein, was du dir vorstellst.
Freundliche Grüße vom marabu