<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Растягивание контролов при растягивании окна]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14782</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14782&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Растягивание контролов при растягивании окна».]]></description>
		<lastBuildDate>Wed, 15 May 2019 22:13:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AHK: Растягивание контролов при растягивании окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134345#p134345</link>
			<description><![CDATA[<p>Предназначено для изменения размеров и позиции контролов в зависимости от размеров окна.<br />Также можно использовать для относительного размещения элементов в проекте, без привязки к возможным в дальнейшем изменениям размеров окна.<br />Созданные макеты окон легко переносятся в нужную область окна или контрола. К примеру макет из примера №1, перенесён в один из контролов примера №7 без каких либо изменений.</p><p><strong>Обозначения</strong>:<br /></p><div class="quotebox"><blockquote><p><span class="bbu">КО</span> - клиентская область окна.<br />	<span class="bbu">РЗ</span> (рабочая зона) - Прямоугольник описанный отступами от краёв КО заданными в параметрах New и SetArea.<br />	<span class="bbu">ПК</span> -предыдущий контрол.<br />	<span class="bbu">№</span> - число.<br />	<span class="bbu">(Строка1|Строка2|Строка3)</span> - один из вариантов.<br />	<span class="bbu">(first)</span> - параметр должен быть указан первым.<br />	<span class="bbu">край</span> - правая или нижняя часть, в зависимости от контекста (x|w) или (y|h).</p></blockquote></div><p><strong>New</strong>(Gui, Options = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p><span class="bbu">Gui</span> - имя или хэндл окна.<br />	<span class="bbu">Options</span> - xm№ и\или ym№ margin отступы в КО.<br />	Foreign - стороннее окно. Gui и Control в Item должны быть хэндлами.<br />	(Floor|Ceil|Round) - при значимом количестве контролов разность в округлении координат может увеличить отступы между контролами на несколько пикселей (пример 4). Указание данных опций устранит этот эффект. <br />	Floor - контролы могут оказаться вровень или не доходить до края РЗ.<br />	Ceil - контролы могут оказаться вровень или заходить за край РЗ.<br />	Round - контролы могут оказаться вровень, немного не доходить или немного заходить за край РЗ.</p></blockquote></div><p><strong>SetArea</strong>(Left, Top, Right, Bottom)<br /></p><div class="quotebox"><blockquote><p>Задание отступов РЗ. Отступы margin суммируются, и во избежании путаницы лучше использовать что то одно.<br />	Каждый параметр может быть в виде: <br />	№ - пиксели, или r№ - № тысячная часть КО. <br />	Опущенные параметры равны нулю.</p></blockquote></div><p><strong>Item</strong>(Control, Options, Ex = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Добавить новый контрол.<br />	<span class="bbu">Control</span> - имя или хэндл контрола. Должно быть уникальным в экземпляре, и далее использоваться в таком же виде.<br />	<span class="bbu">Options</span> - строка с четырьмя параметрами через запятую. x, y, w, h.<br />	Каждый из них может состоять из нескольких составляющих, разделённых знаками вычитания, сложения, деления или умножения. Пробелы допустимы, регистр любой.<br />	Деление и умножение поддерживается только с последующим за знаком числом, операция производится над всеми предыдущими вычислениями в параметре.</p><p>	<em>x, y:</em><br />	<strong>o</strong> (first) - отсчёт от края РЗ. Сложение в таком параметре приводит к вычитанию, то есть смещению влево или вверх.<br />	Например для первого параметра: &quot;o&quot; эквивалентно &quot;xm&quot;, только контрол будет прилегать своим правым краем, к правому краю РЗ.<br />	<strong>z</strong> - координата края РЗ. Аналогично (xm|ym) + r.<br />	<strong>cur</strong> - координаты и размеры контрола на момент его передачи. </p><p>	<em>w, h:</em><br />	<strong>ro</strong> (first) - остаток РЗ от края ПК.</p><p>	<em>Общие:</em><br />	<strong>№</strong> - пиксели.<br />	<strong>r№</strong> - № тысячная часть РЗ.<br />	<strong>r</strong> - эквивалентно r1000.<br />	<strong>d</strong> - с предваряющим &quot;+&quot; или &quot;-&quot;. Для отладки, будет выведен MsgBox с некоторыми данными метода &quot;Eval&quot;.</p><p>	(<strong>w</strong>|<strong>h</strong>) - размер самого контрола. Может быть полезно для (x|y).<br />	(<strong>wp</strong>|<strong>hp</strong>) - размер ПК.<br />	(<strong>ws</strong>|<strong>hs</strong>) - размер контрола секции.<br />	После каждого из трёх вышеуказанных параметров можно указать число мультипликатор (то есть можно не разделять знаком умножения).</p><p>	(<strong>x</strong>|<strong>y</strong>|<strong>xpo</strong>|<strong>ypo</strong>) - координата края ПК.</p><p>	(<strong>xso</strong>|<strong>yso</strong>) - координата края секции.<br />	(<strong>xm</strong>|<strong>ym</strong>) - margin отступы в КО.<br />	(<strong>xp</strong>|<strong>yp</strong>) - координата ПК.<br />	(<strong>xs</strong>|<strong>ys</strong>) - координата секции.</p><p>	Также возможно указать в виде <strong>&quot;X &gt; Right, Y &gt;Bottom&quot;</strong>, то есть указывать не ширину и высоту контролов, а их крайние координаты.<br />	<strong>p</strong> - предыдущая координата, должно быть указано сразу после &quot;&gt;&quot;. Например &quot;X &gt; P + 100, Y &gt; P + 100&quot;, будет квадратом 100х100.</p><p>	<span class="bbu">Ex</span> - одно или несколько слов разделённых пробелом.<br />	<em>Draw</em> - аналог&nbsp; MoveDraw. <br />	<em>Section</em> - определяет контрол как секцию. <br />	<em>Save </em>- требуется для GetArea.<br />	<em>IsNoPrevious</em> - не сохранять координаты и размеры для последующих контролов для дальнейшего относительного позиционирования.</p></blockquote></div><p><strong>SetItem</strong>(Control, Options, Ex = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Изменить параметры заданные до этого в Item.</p></blockquote></div><p><strong>InsertItem</strong>(ControlOff, Control, Options, Ex = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Добавить новый контрол перед <span class="bbu">ControlOff</span>.</p></blockquote></div><p><strong>RemoveItem</strong>(Control, Destroy = 0)<br /></p><div class="quotebox"><blockquote><p>Удалить данные о контроле. <span class="bbu">Destroy</span> = 1 - удалить сам контрол.</p></blockquote></div><p><strong>GetPos</strong>(Control, byref Left = &quot;&quot;, byref Top = &quot;&quot;, byref Right = &quot;&quot;, byref Bottom = &quot;&quot;, byref Width = &quot;&quot;, byref Height = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Получить координаты и размеры контрола.</p></blockquote></div><p><strong>GetArea</strong>(Control, byref Left = &quot;&quot;, byref Top = &quot;&quot;, byref Right = &quot;&quot;, byref Bottom = &quot;&quot;, byref Width = &quot;&quot;, byref Height = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Извлечь отступы контрола от краёв КО. У контрола в опциях должно быть указано &quot;Save&quot; (см. 7 пример).</p></blockquote></div><p><strong>IsCurrentArea</strong>(W = &quot;&quot;, H = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Проверяет соответствуют ли размеры КО, последним применённым в экземепляре (см. 7 пример).</p></blockquote></div><p><strong>Resize</strong>(W = &quot;&quot;, H = &quot;&quot;)<br /></p><div class="quotebox"><blockquote><p>Обновить размеры.<br />	w, h - размеры КО. Если не указаны, берутся из GetWindowInfo.</p></blockquote></div><p><strong>Show</strong>(Show = 1)<br /></p><div class="quotebox"><blockquote><p>Показать скрыть все контролы экземпляра.</p></blockquote></div><h5><a href="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/AutoResize.ahk">Class AutoResize.</a></h5><h5><a href="https://github.com/serzh82saratov/AutoResize/tree/master/Examples">Примеры.</a></h5><h5><a href="http://forum.script-coding.com/viewtopic.php?id=14783">Обсуждение.</a></h5><p><strong>Пример №7.</strong></p><p><span class="postimg"><img src="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/1.png" alt="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/1.png" /></span></p><p><span class="postimg"><img src="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/2.png" alt="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/2.png" /></span></p><p><span class="postimg"><img src="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/3.png" alt="https://raw.githubusercontent.com/serzh82saratov/AutoResize/master/Pics/3.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 15 May 2019 22:13:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134345#p134345</guid>
		</item>
	</channel>
</rss>
