Konsola - jak umieścić znak w prawym dolnym rogu ?

0

Jak umieścić znak w prawym dolnym rogu konsoli ?</delphi>

0

GotoXY() + Write() + F1

0

ehhhh.... sprecyzuje sie.
Domyślnie stawiając znak na koncu lini kursor przechodzi do nowej lini.
Jeśli nie ma następnej lini (gdy jesteśmy w ostatniej) tworzona jest nowa linia i wszystko przewija sie o linie do góry.

Znalazłem funkcje SetConsoleMode (kernel32.dll), w ktorej ustawia sie tryb dzialania konsoli, ale zeby jej uzyc trzeba kilku nowych lini kodu.

Znak ktoś może szybszy/łatwiejszy sposób ?

0

Sposób jest. (nie wiem czy prostrzy/szybszy). Ale działa. Ustawia po prostu znak w konsoli.

procedure SetCharXY(x,y:word;c:char);
//ustawia znak c konsoli w punkcie (X,Y)
const s:_COORD=(x:1;y:1);
      s2:_COORD=(x:0;y:0);
var a:CHAR_INFO;
    r:_SMALL_RECT;
begin
 a.AsciiChar:=c;
 a.Attributes:=7; //7 to białe na czarnym
 r.Left:=x;
 r.Right:=x;
 r.Top:=y;
 r.Bottom:=y;
 WriteConsoleOutput(WConsole,@a,s,s2,r);
end;
0

Dzieki.

Napisałem jeszcze gotową procedurke wyłączającą/włączającą przechodzenia do nowej linii, gdy osiągniemy koniec:

uses
   Windows;

procedure WrapAtEol(Wrap: Boolean);
var
   OutputHandle: HWND;
   Mode: LongWord;
begin
   OutputHandle := GetStdHandle(STD_OUTPUT_HANDLE);
   GetConsoleMode(OutputHandle, Mode);
   if Wrap then
      Mode := Mode and ENABLE_WRAP_AT_EOL_OUTPUT
   else
      Mode := Mode and (not ENABLE_WRAP_AT_EOL_OUTPUT);
   SetConsoleMode(OutputHandle, Mode);
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1