AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Konsolenanwendung: Änderung vorhandener Zeichen
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenanwendung: Änderung vorhandener Zeichen

Ein Thema von Totti · begonnen am 27. Nov 2005 · letzter Beitrag vom 27. Nov 2005
Antwort Antwort
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#1

Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 19:37
Moin,
hab mit der Suche nichts gefunden, mir vielen allerdings auch wenige gescheite Suchwörteer ein


Wenn ich eine Konsolenanwednung schreibe, kann ich ja mit Writeln eine Zeile+Zeichen an den bereits vorhanden Text ANFÜGEN.
Mit Write geht das sogar, ohne dass ne neue Zeile gestartet wird.

ich habe aber schon etliche Programme gesehen, die etwa Prozentangaben ausgeben - an der selben Stelle.
Wo eben also noch 95% stand, steht jetzt 96%.

Wie macht man das?
Malte
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 19:52
In TurboPascal gabs dafür GotoXY(,Y:Integer), obs das in Delphi noch gibt weiß ich nicht, ich geh aber davon aus, dass.

Viele Grüße
Benjamin
Benjamin
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 19:54
Moin Malte,

den Effekt erhältst du durch die Verwendung des ASCII Steuerzeichens CR (#13):

Delphi-Quellcode:
var
  con: TextFile;
begin
  AssignFile(con, 'con:');
  Rewrite(con)
  for i := 1 to 50 do
  begin
    // ...
    Write(con, Format(#13'%.1n %% ', [2.0 * i]));
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Totti
Totti

Registriert seit: 1. Dez 2004
Ort: Harrislee
59 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 20:07
wow, bin beeindruckt - schaut geil aus, auch wenn ich momentan NULL begriffen hab. Aber da es das ist, was ich meinte,
werd ich mich jetzt mal dranhängen.

Ne Frage vorweg: geht das auch zeilenzurückübergreifend?
Malte
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 20:16
Nicht über ASCII Steuerzeichen. Wenn du mehr Kontrolle über den Cursor brauchst, dann musst du mit dem Win32 Console API arbeiten - SetConsolePosition() und seine Freunde.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Konsolenanwendung: Änderung vorhandener Zeichen

  Alt 27. Nov 2005, 23:36
Delphi-Quellcode:
procedure GotoXY(X, Y: Byte);
var
  Coord: TCoord;
  ConsoleScreenRect: TSmallRect;
  CBI: TConsoleScreenBufferInfo;
begin
  GetConsoleScreenBufferInfo(hConsoleOutput, CBI);
  ConsoleScreenRect := CBI.srWindow;

  Coord.X := X - 1 + ConsoleScreenRect.Left;
  Coord.Y := Y - 1 + ConsoleScreenRect.Top;
  SetConsoleCursorPosition(hConsoleOutput, Coord);
end;


var
  hConsoleOutput: THandle;

BEGIN
  hConsoleOutput := GetStdHandle(STD_OUTPUT_HANDLE);
  ...
  ...
END.
Damit kann man schon was anfangen. Wenn du aber noch mehr Functionen brauchst, schau dich mal nach der Unit Crt32.pas hier in der DP um. Sie ist ein Ersatz für die Crt-Unit aus Turbo Pascal.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz