![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
|
AW: Konsolenanwendung - crt.pas - Console Library
Jetzt läuft ja hinter der cmd.exe bzw. der neuen Terminal-App ein Console-Host, je nach Ziel (Windows-Console, PowerShell, Linux-Bash usw)
Ich hatte mal versucht rauszufinden, wie das intern abläuft, aber in der Hilfe noch nicht wirklich was gefunden, bzw. im QuellCode des Terminals, da sieht doch niemand durch. Sonst hätte man sich da auch "einfach" was mit Delphi bauen können. :stupid: ![]() ![]() ![]() ![]() ![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
Mit der aktuellen Delphi 11 CE sollte es auf jeden Fall funktionieren. Könnte das vielleicht daran liegen, dass es ein "Helper record" ist? Ich bin mir nicht sicher ob es "Helper Records" in XE5 schon gab oder wenn ja ob es bei XE5 dann in Verbindung mit Klassenoperatoren zu dieser Fehlermeldung kommt? Du kannst mal versuchen, die beiden "class operator" auszukommentieren, die werden in der Library selbst gar nicht verwendet. Ich habe die nur drinnen, weil ich sie dann im ERP-System genutzt habe. Allerdings wird der Compiler dann sofort bei Zeile 287 wieder meckern. Wenn Du diese beiden auch noch auskommentierst, dann kommt eine Fehlermeldung in Zeile 3286 der Ply.Console.pas. Die Zeile kannst Du (zum testen) auch einfach auskommentieren, da wird zwar dann unnötiger Code ausgeführt, sollte aber nichts machen. Wenn sich der Code dann kompilieren lässt, liegt es an den Helper Record in Verbindung mit class operator. -> Ich könnte dann {$ifdef} einbauen und den Code mit XE5 kompatibel machen. |
AW: Konsolenanwendung - crt.pas - Console Library
XE5 kennt leider noch keinen RecordHelper.
Habe versucht Deinen Hinweis umzusetzen, aber das Auskommentieren verursachte weitere Compiler-Fehler in Folge. Auch ein Ersetzen von class operator durch Function führte zu keinem Erfolg, da es dann später bei TCoordHelper.notEqual(..) zu Problemen führte, noch in der ersten Datei Ply.Types.pas. Möglicherweise habe ich mich ungeschickt angestellt.. :oops: Vielleicht wäre Dein fachkundig verwendeter {$ifdef} die bessere Lösung. :gruebel: |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
Ferner wäre es natürlich interessant zu wissen, ob der Code auch kompatibel zum Windows-Terminal gemacht werden kann. Ein kurzer Test war da eigentlich sehr vielversprechend. Einige der Grundfunktionen die ich nutze scheinen direkt vom Terminal unterstüzt zu werden. Aber für eine ordentliche Bewertung muss ich mich wohl erst mal wieder in der MSDN und/oder der Dokumentation vom Terminal eingraben...:roll: |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
|
AW: Konsolenanwendung - crt.pas - Console Library
Ich habe gestern mein altes Delphi XE6 ausgegraben (installiert) und den Code überarbeitet. An den RecordHelpern liegt es bei XE6 nicht, die gab es da auch schon. Da muss es irgendeine Änderung mit den "class operator" gegeben habe. Ich habe jetzt eine Compilerweiche ($IFDEF) zwischen Delphi XE8 und Delphi 10 eingebaut, sodass der Code mit XE6 (und hoffentlich auch XE5) kompiliert werden kann. Das Update ist auf GitHub zu finden.
![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
Delphi-Quellcode:
Laut hier ->
function IsConsole: Boolean;
var Stdout: THandle; begin Stdout := GetStdHandle(Std_Output_Handle); Win32Check(Stdout <> Invalid_Handle_Value); Result := Stdout <> 0; end; ![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
Delphi-Quellcode:
ConHandleStdOut := GetStdHandle(STD_OUTPUT_HANDLE);
Zum Beispiel die Demo01 (Minimal_Console_App) läuft auch auf einem Terminal. Aber wenn es dann an die erweiterten Funktionen, wie z.B. manipulieren des Font, Änderung der Größe des Konsolenfensters, u.s.w. geht, dann funktioniert das nicht mehr wie gehabt. |
AW: Konsolenanwendung - crt.pas - Console Library
Ich verstehe.
Was für einen Prozess startet denn eine Konsolen Anwendung mit installierten Terminal? Mit der klassischen Konsolen Anwendung hab ich "conhost.exe" unter meiner ProcessID. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr. |
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