Einzelnen Beitrag anzeigen

Singlepin

Registriert seit: 3. Sep 2011
10 Beiträge
 
#35

AW: Das Haus vom Nikolaus Konsolenanwendung

  Alt 3. Sep 2011, 08:43
Ich komme mir vor als sei ich zurückversetzt in die Zeiten von DOS, 8Bit-PC und Turbopascal.
Da gab es die Procedure GotoXY(x,y).
Mit der Konsole geht das auch.

Delphi-Quellcode:
{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

var
  TextWindow: TSmallRect;
  BufferInfo: TConsoleScreenBufferInfo;
  StdOut: THandle;
  i,j:Integer;

procedure GotoXY(X, Y: Smallint);
var NewPos: TCoord;
begin
Inc(X, TextWindow.Left - 1);
Inc(Y, TextWindow.Top - 1);
if (X >= TextWindow.Left) and (X <= TextWindow.Right) and
   (Y >= TextWindow.Top) and (Y <= TextWindow.Bottom) then
 begin
 NewPos.X := X;
 NewPos.Y := Y;
 SetConsoleCursorPosition(StdOut, NewPos);
 end;
end;

begin
Rewrite(Output);
StdOut := TTextRec(Output).Handle;
GetConsoleScreenBufferInfo(StdOut,BufferInfo);
TextWindow.Left := 0;
TextWindow.Top := 0;
TextWindow.Right := BufferInfo.dwSize.X - 1;
TextWindow.Bottom := BufferInfo.dwSize.Y - 1;
// hier mal eine Diagonale
for i:=1 to 20 do
  begin
  j:=i*2+10;
  gotoxy(i,j);write('x');
  end;

readln;
Acht Linien brauchen wir in der richtigen Reihenfolge.
Wenn ich mich richtig erinnere 8! = 8*7*6*5*4*3*2 = 40320 Möglichkeiten.
Viel Spaß beim probieren.
  Mit Zitat antworten Zitat