Модератор: Модераторы
но мне надо без совместимости с делфёй

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
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1