Pre nekog vremena sam odlučio da razvijem jednu igru bez upotrebe 3rd party biblioteka, pa mi je zatrebala jednostavna klasa za menjanje rezolucije zbog fullscreen-a... za slučaj da još nekom treba tako nešto, slobodno može da je iskoristi.
Od operativnih sistema su podržani Windows (od 98 pa na više) i Linux (koristi se xf86vmode ekstenzija). Testirani kompajleri su Delphi 2007, FPC 2.2.4 i Lazarus 0.9.28, ali verovatno radi i na drugim verzijama.
U nastavku je jednostavan konzolni program koji koristi klasu da prikaže trenutno izabranu rezoluciju, da prikaže sve rezolucije koje su moguće na računaru, da promeni rezoluciju i da je posle vrati na normalnu.
program TestBed;
{$I Jedi.inc}
uses
GUVideoModes;
var
VideoModes: TVideoModes;
VideoMode: TVideoMode;
I: Integer;
begin
VideoModes := TVideoModes.Create;
WriteLn('Desktop video mode: ', VideoModes.GetDesktopVideoMode.Width,
'x', VideoModes.GetDesktopVideoMode.Height,
'x', VideoModes.GetDesktopVideoMode.BitsPerPixel,
'@', VideoModes.GetDesktopVideoMode.Frequency);
WriteLn('Available video modes:');
for I := 0 to VideoModes.GetVideoModeCount - 1 do
begin
VideoMode := VideoModes.GetVideoMode(I);
WriteLn(' ', VideoMode.Width,
'x', VideoMode.Height,
'x', VideoMode.BitsPerPixel,
'@', VideoMode.Frequency);
end;
VideoModes.ChangeVideoMode(VideoModes.GetBestModeIndex(1024, 768, 32));
ReadLn;
VideoModes.RestoreVideoMode;
VideoModes.Free;
WriteLn('Press enter to exit...');
ReadLn;
end.
Klasa: https://www.mycity.rs/must-login.png
|