<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3893192</guid>
        <pubDate>Fri, 21 Jul 2023 14:50:37 +0000</pubDate>
        <title>ClientToScreen в Lazarus под Linux</title>
        <link>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3893192</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=429507&view=findpost&p=3874975'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GSM_Roamer &#064; <time class="tag-quote__quoted-time" datetime="2022-08-30T16:03:25+03:00">30.08.22, 13:03</time></span><div class='quote '>Что делать - честно, не знаю. может кто-нибудь скажет чего умного?</div></div><br>
1) ShowMessage показывает явную лажу т.к. <strong class='tag-b'>y</strong> в нем не инициализирован<br>
2) Стоит уточнить ваш Windows Manager. В разных менеджерах поведение окон отличается. У меня вот mpv запускается постоянно в рандомных местах и игнорирует --geometry, хотя координаты вычисляются правильно.<br>
<span class="b-attach" data-size="131305" data-hits="214" data-attach-id="65016" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=65016' title='Скачать файл' target='_blank'>Screenshot_20230721_174526.png</a> (, : 214)
		</span><br>
3) Думаю <a class='tag-url' href='http://www.freepascal.ru/article/book/xwin-1-1/' target='_blank'>вот это</a> вам поможет]]></description>
        <author>macomics</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3893160</guid>
        <pubDate>Fri, 21 Jul 2023 06:40:29 +0000</pubDate>
        <title>ClientToScreen в Lazarus под Linux</title>
        <link>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3893160</link>
        <description><![CDATA[Betelgeuse: см WinAPI]]></description>
        <author>Betelgeuse</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3874975</guid>
        <pubDate>Tue, 30 Aug 2022 13:03:25 +0000</pubDate>
        <title>ClientToScreen в Lazarus под Linux</title>
        <link>https://forum.sources.ru/index.php?showtopic=429507&amp;view=findpost&amp;p=3874975</link>
        <description><![CDATA[GSM_Roamer: Задача: запустить mpv без рамки строго по координатам панели формы.<br>
Form.top не катит, потому что в линуксах top формы считается вместе с заголовком, а у mpv - исключительно самого окна.<br>
Поэтому мне нужно выцепить экранные координаты внутренней части формы (расположил на форме TPanel с выравниванием AlClient)<br>
В общем, вот что получилось:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.SpeedButton1Click(Sender: TObject);</div><div class="code_line">var aPoint:Tpoint;</div><div class="code_line">&nbsp;&nbsp;x,y,w,h:integer;</div><div class="code_line">&nbsp;&nbsp;Process:TProcess;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;showmessage(inttostr(y));</div><div class="code_line">&nbsp;&nbsp;aPoint.x := 0;</div><div class="code_line">&nbsp;&nbsp;aPoint.y := 0;</div><div class="code_line">&nbsp;&nbsp;aPoint := form2.panel1.ClientToScreen(aPoint);</div><div class="code_line">&nbsp;&nbsp;x:=aPoint.X;</div><div class="code_line">&nbsp;&nbsp;y:=aPoint.Y;</div><div class="code_line">&nbsp;&nbsp;h:=form2.panel1.Height;</div><div class="code_line">&nbsp;&nbsp;w:=round(h*1.77777779);</div><div class="code_line">&nbsp;&nbsp;Process:=Tprocess.create(nil);</div><div class="code_line">&nbsp;&nbsp;Process.commandline:=&#39;mpv --pause --geometry=&#39;+inttostr(w)+&#39;x&#39;+inttostr(h)+&#39;+&#39;+</div><div class="code_line">&nbsp;&nbsp;inttostr(x)+&#39;+&#39;+inttostr(y)+&#39; --keep-open=yes &quot;имя_файла_.mp4&quot; --input-ipc-server=/tmp/mpvsocket&#39;;</div><div class="code_line">&nbsp;&nbsp;Process.Execute;</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>               <br>
<br>
Если в коде присутствует showmessage, то после нажатия на его кнопку все отображается правильно -top mpv совпадает с top формы.<br>
Если же showmessage отсутствует, top mpv выше на высоту заголовка. При этом если запустить процесс повторно (убив запущенный mpv или оставив его работать) - окно mpv открывается в нужных координатах.<br>
<br>
Что делать - честно, не знаю. может кто-нибудь скажет чего умного?<br>
<br>
Заранее блаагодарен,<br>
Дмитрий.]]></description>
        <author>GSM_Roamer</author>
        <category>Pascal</category>
      </item>
	
      </channel>
      </rss>
	