На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> ClientToScreen в Lazarus под Linux , Координата по вертикали (Y) становится правильной только после нажати кнопки в Showmessage
    Задача: запустить mpv без рамки строго по координатам панели формы.
    Form.top не катит, потому что в линуксах top формы считается вместе с заголовком, а у mpv - исключительно самого окна.
    Поэтому мне нужно выцепить экранные координаты внутренней части формы (расположил на форме TPanel с выравниванием AlClient)
    В общем, вот что получилось:

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var aPoint:Tpoint;
    x,y,w,h:integer;
    Process:TProcess;
    begin
    showmessage(inttostr(y));
    aPoint.x := 0;
    aPoint.y := 0;
    aPoint := form2.panel1.ClientToScreen(aPoint);
    x:=aPoint.X;
    y:=aPoint.Y;
    h:=form2.panel1.Height;
    w:=round(h*1.77777779);
    Process:=Tprocess.create(nil);
    Process.commandline:='mpv --pause --geometry='+inttostr(w)+'x'+inttostr(h)+'+'+
    inttostr(x)+'+'+inttostr(y)+' --keep-open=yes "имя_файла_.mp4" --input-ipc-server=/tmp/mpvsocket';
    Process.Execute;
    end;

    Если в коде присутствует showmessage, то после нажатия на его кнопку все отображается правильно -top mpv совпадает с top формы.
    Если же showmessage отсутствует, top mpv выше на высоту заголовка. При этом если запустить процесс повторно (убив запущенный mpv или оставив его работать) - окно mpv открывается в нужных координатах.

    Что делать - честно, не знаю. может кто-нибудь скажет чего умного?

    Заранее блаагодарен,
    Дмитрий.
    Сообщение отредактировано: GSM_Roamer -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0167 ]   [ 15 queries used ]   [ Generated: 29.11.22, 09:29 GMT ]