Próbuję utworzyć kursor spinner/wait w aplikacji konsoli Delphi. Mogę to zrobić, ale jestem pewien, że kod można znacznie usprawnić/poprawić. Proszę wybaczyć słabe kod:Tworzenie Spinner w konsoli Delphi
Procedure PositionXY(x , y : Integer);
var
hStdOut: HWND;
ScreenBufInfo: TConsoleScreenBufferInfo;
Coord1: TCoord;
z: Integer;
Begin
sleep(100);
hStdOut := GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hStdOut, ScreenBufInfo);
Coord1.X := x;
Coord1.Y := y;
SetConsoleCursorPosition(hStdOut, Coord1);
End;
begin
while True do begin
Write('|');
PositionXY(0,0);
Write('/');
PositionXY(0,0);
Write('-');
PositionXY(0,0);
Write('\');
PositionXY(0,0);
end;
ReadLn;
end.
z góry dzięki Pawła
Mitpickers': hStdOut jest ** nie ** HWND ale tylko uchwyt/THandle. –
Jednym z oczywistych problemów z powyższym kodem jest to, że jest nielogiczne, że 'PositionXY' zawiera' sleep (100) '. –
Stary Skool. +1 dla geekery konsolowej. –