Модератор: Модераторы
но мне надо без совместимости с делфёй
qivi писал(а):но мне надо без совместимости с делфёй
Всмысле? Без совместимости с Lazarus (LCL) на чистом FPC? Или именно с дельфой?!!! А то у формы лазаруса то же есть вышеназванные свойства...
function TWinApiFramework.GetScreenRect(fullscreen: boolean): TWindowManagerRect;
var
rc: TRect;
Monitor: HMONITOR;
mi: TMonitorInfo;
begin
{
if Mother^.State.OS in [ostWin98, OstWin2k] then with Result do begin
//Use legacy method fow windozes older than XP
left:= 0;
top := 0;
width:= GetSystemMetrics(SM_CXSCREEN);
height:= GetSystemMetrics(SM_CYSCREEN);
//Assuming that taskbar is at the bottom and is 28 pixels high:
if not Fullscreen then Height-= 28;
end
else begin
}
if windowhandle = 0 then begin
//Not created yet. Use default monitor.
with rc do begin
left:= 0;
top:= 0;
right:= 1;
bottom:= 1;
end;
Monitor:= MonitorFromRect(rc, MONITOR_DEFAULTTOPRIMARY);
end else begin
//get monitor from window
GetWindowRect(windowhandle, rc);
Monitor:= MonitorFromRect(rc, MONITOR_DEFAULTTONEAREST);
end;
mi.cbSize:= sizeof(mi);
GetMonitorInfo(Monitor, @mi);
if fullscreen
then rc:= mi.rcMonitor
else rc:= mi.rcWork;
Result.left:= rc.left;
Result.top:= rc.top;
Result.width:= rc.right - rc.left;
Result.height:= rc.bottom - rc.top;
// end;
end;
function TX11Framework.GetScreenRect(fullscreen: boolean): TWindowManagerRect;
var
_Screen: PScreen;
wa: TXWindowAttributes;
begin
{$ifdef cpuarm}
if Assigned(BroadcomHack) then begin
Result:= BroadcomHack.displayRect;
Exit;
end;
{$endif}
if fullscreen then begin
_Screen:= XScreenOfDisplay(display, 0);
Result.left:= 0;
Result.top:= 0;
Result.width:= _Screen^.width;
Result.height:= _Screen^.height;
end
else begin
XGetWindowAttributes(Display, DefaultRootWindow(Display), @wa);
Result.left:= wa.x;
Result.top:= wa.y;
Result.width:= wa.width;
Result.height:= wa.height;
end;
end;
Cheb писал(а):Тогда пиши два платформо-зависимых варианта кода сам.
procedure Timer;
BEGIN
wnd_SetCaption(PLEER5+'[ FPS: '+u_IntToStr(zgl_get(RENDER_FPS))+']');
IF key_Press(K_ESCAPE) Then zgl_Exit();
// EN: If left mouse button is down on progress bar, then seek the video.
// RU: Если зажата левая кнопка мыши над полосой прогресса - перемещаться по видео.
IF GRADUSNIK THEN IF mouse_Down(M_BLEFT) AND (mouse_Y()>VYSOTA-40)
AND (mouse_Y()<VYSOTA-40+20) THEN
BEGIN
videoSeek:=TRUE;
video_Seek(video,(mouse_X()/SIRINA)*video^.Info.Duration);
END ELSE
videoSeek:=FALSE;
key_ClearState();
mouse_ClearState();
IF IN_2(1,PRINUDILOVKA_SIRINA,PRINUDILOVKA_VYSOTA) THEN BEGIN
IF PRINUDILOVKA_SIRINA=1 THEN SIRINA:=VIDEO^.INFO.WIDTH;
PRINUDILOVKA_SIRINA:=0;
IF PRINUDILOVKA_VYSOTA=1 THEN VYSOTA:=VIDEO^.INFO.HEIGHT;
PRINUDILOVKA_VYSOTA:=0;
IF POLNOEKRANNSTJ THEN BEGIN
zgl_Enable(CORRECT_RESOLUTION);//ВКЛЮЧИТЬ КОРРЕКЦИЮ РАЗРЕШЕНИЯ
scr_CorrectResolution(SIRINA,VYSOTA);//УСТАНОВИТЬ РОДНОЕ РАЗРЕШЕНИЕ ВИДЕО
scr_SetOptions(zgl_Get(DESKTOP_WIDTH),zgl_Get(DESKTOP_HEIGHT),REFRESH_MAXIMUM,POLNOEKRANNSTJ,FPS_OGRANICITJ_MAKSIMALJNOSTJ);
END ELSE BEGIN
zgl_Disable(CORRECT_RESOLUTION);
scr_SetOptions(SIRINA,VYSOTA,REFRESH_MAXIMUM,POLNOEKRANNSTJ,FPS_OGRANICITJ_MAKSIMALJNOSTJ);
END;
END;
END;
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6