![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
![]() |
AW: Konsolenanwendung - crt.pas - Console Library
Zitat:
der ursprüngliche Zweck der Library ist/war eine MsDos-Anwendung die mit TurboPascal programmiert wurde unter Windows laufen zu lassen. Eine Dos-Anwendung war, soweit ich mich erinnere, immer auf eine Bestimmte Größe fixiert, meist (80 x 25) oder auch mal (40 x 25, 80 x 43, u.s.w.). Da gab es auch keinen Scrollbalken. Insofern ist die Library primär auf feste Fenstergrößen optimiert. Das betrifft einmal die Größe des Konsolefensters (als Canvas Basis = Console.Window) für die Ausgabe und dann innerhalb dieses Konsolenfensters auf Ausgabefenster (Crt.Window). Mir fallen spontan 2 Möglichkeiten ein, den von Dir angestrebten Zweck abzubilden: 1) ScreenBuffer vergrößern 2) Eine TStringList verwenden Ich habe ein paar Dingen an der Library geändert/erweitert und habe das Demo11 hinzugefügt welches die beiden Möglichkeiten zeigen soll. Zu 1) ScreenBuffer vergrößern - Mit Console.Buffer(x,y) die Puffergröße auf die gewünschte Größe erweitern - Für die Ausgabe sollte/muss "WriteConsole" und/oder "WritelnConsole" verwendet werden, weil die normalen Ausgaben (Write/Writeln) auf feste Fenstergrößen abgestimmt sind - Scrollen mit Console.ReadkeyScroll
Delphi-Quellcode:
Zu 2) Eine TStringList verwenden
Console.Buffer(120,1500);
WritelnConsole('Text 1'); ... WritelnConsole('Text X'); Console.ReadkeyScroll(Key); Die zweite Methode ist eleganter und verwendet eine TStringListConsole. Den Ausgabetext einfach in die Strings schreiben und dann mit Show ein "Scroll-Fenster" erzeugen. Das hat auch den Vorteil, dass man die Ausgabe noch anderweitig verwenden kann, zum Beispiel um die Ausgabe als Datei zu speichern (siehe Demo).
Delphi-Quellcode:
Var
Strings : TStringListConsole; begin Strings := TStringListConsole.Create; Strings.Add('Text 1'); ... Strings.Add('Text X'); // Optional die Größe des Scroll-Fensters hier festlegen // Console.Window(120,60); Strings.Show('Show my Strings'); Strings.Free; |
AW: Konsolenanwendung - crt.pas - Console Library
Herzlichen Dank, Wolfgang! :thumb:
Ich werde damit experimentieren. |
AW: Konsolenanwendung - crt.pas - Console Library
Die Idee/Anforderung von Andreas hat mich inspiriert und ich habe die Library jetzt so erweitert, dass der "Scroll-Modus" direkt aktiviert werden kann.
Delphi-Quellcode:
Demo11 habe ich entsprechend angepasst. Dort werden noch weitere Möglichkeiten gezeigt.
Console.Window(100,50);
Console.Buffer(180,1500); // Use WriteConsole for System.Write Console.Modes.AlternateWriteProc := awConsole; For Zeile := 1 To 200 Do Begin WriteLnConsole('Zeile[' + Zeile.ToString.PadLeft(3) + ']'); End; Console.ReadkeyScroll(Key); Console.Window(80,25); // Set back to Default-Value // Use CrtWrite for System.Write Console.Modes.AlternateWriteProc := awCrt; |
AW: Konsolenanwendung - crt.pas - Console Library
:thumb: :thumb: :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 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