![]() |
Wie kann ich eine Konsolenanwendung leeren?
hallo,
ich bin ein absoluter Anfänger in Delphi und ich will eine Konsolenanwendung programmieren bei der sich die konsole leert wenn eine Bedingung erfüllt ist. Ich habe im Internet bereits lange nach einer Lösung gesucht, aber alle vorgeschlagenen Lösungen haben nicht funktioniert. Warscheinlich habe ich wegen meinem noch geringen wissen einige Programmzeilen vergessen. Da ich aber trotzdem gerne wissen würde wie das geht, habe ich unten mal ein paar extrem primitive programmezeilen eingetippt. Könnte mir die vielleicht jemand so umschreiben, dass sie funktionieren? uses SysUtils; VAR a:integer; begin readln(a); writeln(a); If a=0 then //hier sollte dann der Inhalt der Konsole geleert werden readln; end; Danke schonmal im Voraus! |
AW: Wie kann ich eine Konsolenanwendung leeren?
Willkommen in der DP :dp:
Such mal bei Google nach der Unit ![]()
Delphi-Quellcode:
bereit, womit sich der Bildschirminhalt löschen lässt. Lade die Unit herunter und lege sie im Lib-Verzeichnis von Delphi oder in deinem Projektverzeichnis ab, und füge dann "crt32" zum uses-Abschnitt in deinem Quellcode hinzu.
ClrScr
|
AW: Wie kann ich eine Konsolenanwendung leeren?
cls
|
AW: Wie kann ich eine Konsolenanwendung leeren?
Zitat:
|
AW: Wie kann ich eine Konsolenanwendung leeren?
danke für die schnelle hilfe. Mit der Lösung NamenLozer geht es. Danke :)
|
AW: Wie kann ich eine Konsolenanwendung leeren?
Zitat:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses crt32, SysUtils; var i, a: integer; begin repeat Write('Ihre Eingabe: '); Readln(a); until a = 0; //for i := 0 to 500 do Writeln(''); //500 Leerzeilen sollten für ein cls ohne crt32 reichen ;-) ClrScr; Write('Und wie jetzt weiter? '); Readln; end. |
AW: Wie kann ich eine Konsolenanwendung leeren?
Ohne zusätzliche Units geht es so:
Delphi-Quellcode:
procedure ClrScr;
var tc :tcoord; nw : DWORD; cbi : TConsoleScreenBufferInfo; HConsoleOutput:thandle; TextAttr : Word; begin TextAttr := cbi.wAttributes; HConsoleOutput := GetStdHandle(STD_OUTPUT_HANDLE); getConsoleScreenBufferInfo(HConsoleOutput,cbi); tc.x := 0; tc.y := 0; FillConsoleOutputAttribute(HConsoleOutput,textattr,cbi.dwsize.x*cbi.dwsize.y,tc,nw); FillConsoleOutputCharacter(HConsoleOutput,#32,cbi.dwsize.x*cbi.dwsize.y,tc,nw); setConsoleCursorPosition(hconsoleoutput,tc); end; |
AW: Wie kann ich eine Konsolenanwendung leeren?
@hathor
das wäre dann 1:1 der Auszug der Prozedur :
Delphi-Quellcode:
unit crt32;
{# freeware} {# version 1.0.0127} {# Date 18.01.1997} {# Author Frank Zimmer} {# description Copyright © 1997, Frank Zimmer, 100703.1602@compuserve.com Version: 1.0.0119 Date: 18.01.1997 ............snipp......... |
AW: Wie kann ich eine Konsolenanwendung leeren?
Zitat:
Delphi-Quellcode:
procedure ClrScr;
var tc :tcoord; nw : DWORD; cbi : TConsoleScreenBufferInfo; HConsoleOutput:thandle; // eingefügt TextAttr : Word; // eingefügt begin TextAttr := cbi.wAttributes; // eingefügt HConsoleOutput := GetStdHandle(STD_OUTPUT_HANDLE); // eingefügt getConsoleScreenBufferInfo(HConsoleOutput,cbi); tc.x := 0; tc.y := 0; FillConsoleOutputAttribute(HConsoleOutput,textattr,cbi.dwsize.x*cbi.dwsize.y,tc,nw); FillConsoleOutputCharacter(HConsoleOutput,#32,cbi.dwsize.x*cbi.dwsize.y,tc,nw); setConsoleCursorPosition(hconsoleoutput,tc); end; |
AW: Wie kann ich eine Konsolenanwendung leeren?
@hathor
me culpa, mea maxima culpa :pale: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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