<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=73&amp;type=atom" />
	<updated>2015-04-29T13:36:38Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=73</id>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1267#p1267" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sam063rus пишет:</cite><blockquote><div class="quotebox"><blockquote><p>Совершенно с Вами согласен. Ждём от Вас исчерпывающей инструкции по работе с GDI+qlua.</p></blockquote></div><p>почитайте книгу Феня Юаня (программирование графики для Windows) - там всё на вполне доступном уровне и с примерами, а qlua-прокладку, думаю, для вас не составит труда прикрутить.</p></blockquote></div><p>Ради одного перевернутого треугольника пожалуй не стану читать. ) А вот когда захочется свечки и прочее рисовать, да, почитаю, конечно, спасибо.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-04-29T13:36:38Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1267#p1267</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1265#p1265" />
			<content type="html"><![CDATA[<p>-</p>]]></content>
			<author>
				<name><![CDATA[sam063rus]]></name>
				<uri>https://quik2dde.ru/profile.php?id=228</uri>
			</author>
			<updated>2015-04-29T11:14:27Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1265#p1265</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1263#p1263" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Кстати, я сделал повороты фигур. Ещё актуально?</p></blockquote></div><p>Да, конечно! )</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-04-29T10:15:27Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1263#p1263</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1260#p1260" />
			<content type="html"><![CDATA[<p>Строго говоря, vclua позволяет именно рисовать, используя готовую обёртку над GDI. Но я ума не приложу, как это можно полезно использовать в коде на Lua кроме как в целях саморазвития. Лучше нужный функционал в vclua добавить, будет проще и быстрее.</p><p>Кстати, я сделал повороты фигур. Ещё актуально?</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-04-29T09:18:58Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1260#p1260</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1259#p1259" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sam063rus пишет:</cite><blockquote><p>вместо заведомо тупикового пути поддержки vclua (во всех его &quot;ипостасиях&quot;) - предлагаю уделить внимание детальному изучению GDI. В таком случае, вы сможете (после определённого времени) писать свои контролы (и &quot;стрелочки&quot;, &quot;треугольнички&quot;, чарты и пр. муть). В конечном итоге, получив тем самым полную свободу действий и значительное быстродействие.</p></blockquote></div><p>Совершенно с Вами согласен. Ждём от Вас исчерпывающей инструкции по работе с GDI+qlua.<br />Пока сидим на qvcl.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-04-29T09:06:25Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1259#p1259</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1256#p1256" />
			<content type="html"><![CDATA[<p>-</p>]]></content>
			<author>
				<name><![CDATA[sam063rus]]></name>
				<uri>https://quik2dde.ru/profile.php?id=228</uri>
			</author>
			<updated>2015-04-29T01:42:49Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1256#p1256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1229#p1229" />
			<content type="html"><![CDATA[<p>Стандартно ничего такого нет, увы</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-04-06T12:23:29Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1229#p1229</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1228#p1228" />
			<content type="html"><![CDATA[<p>Помогите пожалуйста перевернуть треугольник вверх-ногами. ) Не обнаружил такой контрол в документации...<br /></p><div class="codebox"><pre><code>TrSell= vcl.Shape(Form, {
Shape=&quot;stTriangle&quot;,
Pen={Style=&quot;psClear&quot;},
Brush={Color=RGB(255,0,0), Style=&quot;bsSolid&quot;}
})</code></pre></div>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-04-06T10:30:27Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1228#p1228</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1180#p1180" />
			<content type="html"><![CDATA[<p>Что именно из приведённых примеров вы хотите рисовать?<br />Есть свой чарт во всей этой приблуде, но люди, вы бы попробовали реально поиспользовать всё это, а не демо-скриншоты смотреть.<br />Первое на что наткнётесь - любой график рисуется только полностью. 100 свечей в него запихал - будь добр все 1000 и смотри ан экране.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-03-23T10:36:29Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1180#p1180</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1179#p1179" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><div class="quotebox"><cite>ilk пишет:</cite><blockquote><p>а где свечи? линии ? или stockchart lib?</p></blockquote></div><p>Они отсутствуют.<br />Но никто их и не обещал.</p></blockquote></div><p>так может и приделать?<br />[url]http://plplot.sourceforge.net/examples.php[/url]</p>]]></content>
			<author>
				<name><![CDATA[ilk]]></name>
				<uri>https://quik2dde.ru/profile.php?id=107</uri>
			</author>
			<updated>2015-03-23T10:10:45Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1179#p1179</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1178#p1178" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ilk пишет:</cite><blockquote><p>а где свечи? линии ? или stockchart lib?</p></blockquote></div><p>Они отсутствуют.<br />Но никто их и не обещал.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-03-23T06:19:50Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1178#p1178</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1177#p1177" />
			<content type="html"><![CDATA[<p>а где свечи? линии ? или stockchart lib?</p>]]></content>
			<author>
				<name><![CDATA[ilk]]></name>
				<uri>https://quik2dde.ru/profile.php?id=107</uri>
			</author>
			<updated>2015-03-22T16:14:33Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1177#p1177</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=673#p673" />
			<content type="html"><![CDATA[<p>Подскажите пожалуйста как отправить квадрату из примера выше новый цвет заливки. Вот так по колхозному не получается )))<br /></p><div class="codebox"><pre><code>graphRect.Brush[&quot;Color&quot;]=0x00EEEE</code></pre></div><p>edit:<br />Ух ты, какие вопросы я задавал пол-года назад. )<br /></p><div class="codebox"><pre><code>graphRect.Brush.Color=RGB(0,255,0);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2014-09-26T17:12:55Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=673#p673</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=440#p440" />
			<content type="html"><![CDATA[<p><span style="color: #CCCCCC">&lt; reserved &gt;</span></p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2013-10-03T19:24:08Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=440#p440</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[QVCLua: рисование графических элементов - круги, квадраты и т.д.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=439#p439" />
			<content type="html"><![CDATA[<p>Простой пример как нарисовать на форме графические элементы при помощи VCL.Shape:</p><p><span class="postimg"><img src="https://quik2dde.ru/static-img/26/test-shape.gif" alt="https://quik2dde.ru/static-img/26/test-shape.gif" /></span></p><p>Для визуализации используется [url=https://quik2dde.ru/viewtopic.php?id=111]библиотека QVCLua, которую можно взять в отдельной теме[/url].</p><p>Про просьбе участника форума добавлена возможность задавать угол поворота для фигур.<br />Новые свойства и методы для <strong>Shape</strong>:<br /></p><ul><li><p><strong>Angle</strong> - задаёт угол поворота фигуры в градусах</p></li><li><p><strong>RotateMinSize</strong> - если равно <strong>false</strong>, то фигура изменяется в размере так, чтобы занять аксимально доступную область, заданную размерами, если равно <strong>true</strong> - то фигура имеет постоянный размер такой, чтобы при любом угле поворота гарантированно умещаться в заданные её размеры</p></li><li><p><strong>SendToBack()</strong> - переместить фигуру на задний план</p></li><li><p><strong>BringToFront()</strong> - переместить фигуру на передний план</p></li></ul><div class="codebox"><pre><code>VCL = require &quot;qvcl&quot;

function OnFormClose(Sender, CloseAction)
  is_run = false
  mainForm:Release()
end

function OnTrackChange(Sender)
  graphRect.Angle = trackBar.Position
  graphElipse.Angle = trackBar.Position
  graphTriangle.Angle = trackBar.Position
  graphDiamond.Angle = trackBar.Position
  labelAngle.Caption = &quot;Угол поворота: &quot; .. tostring(trackBar.Position)
end

function OnChBoxChange(Sender)
  graphRect.RotateMinSize = chBox.Checked
  graphElipse.RotateMinSize = chBox.Checked
  graphTriangle.RotateMinSize = chBox.Checked
  graphDiamond.RotateMinSize = chBox.Checked
end

function SetRectFrom(elemTo, elemFrom)
  elemTo.top = elemFrom.top
  elemTo.left = elemFrom.left
  elemTo.height = elemFrom.height
  elemTo.width = elemFrom.width
  elemTo:SendToBack();
end


mainForm = VCL.Form(&quot;mainForm&quot;)
mainForm._ = { position=&quot;podesktopcenter&quot;, height=330, width=370, Caption=&quot;Shape test&quot;, OnClose = OnFormClose }

-- квадрат
graphRect = VCL.Shape(mainForm)
graphRect._ =
  {
     top=10, left=15, height=100, width=150,  -- положение и размеры
     Shape=&quot;stRectangle&quot;,                     -- тип: прямоугольник
     Pen={ Color=0x3333DD, Style=&quot;psDot&quot; },   -- цвет рамки, тип линии &quot;пунктир&quot;
     Brush={ Color=0xDD99BB }                 -- цвет заливки
  }

-- элипс
graphElipse = VCL.Shape(mainForm)
graphElipse._ =
  {
     top=10, left=205, height=100, width=150,  -- положение и размеры
     Shape=&quot;stEllipse&quot;,                       -- тип: элипс
     Pen={ Color=0xDD9933 },                  -- цвет рамки, сплошная линия
     Brush={ Color=0x666666, Style=&quot;bsFDiagonal&quot; }  -- цвет заливки диагональными линиями
  }

-- треугольник
graphTriangle = VCL.Shape(mainForm)
graphTriangle._ =
  {
     top=135, left=15, height=100, width=150,
     Shape=&quot;stTriangle&quot;,                      -- тип: треугольник
     Pen={ Color=0x00CC00, Width=5 },         -- зеленая рамка толщиной 5 писелей
     Brush={ Style=&quot;bsClear&quot; }                -- без заливки
  }

-- ромб
graphDiamond = VCL.Shape(mainForm)
graphDiamond._ =
  {
     top=135, left=205, height=100, width=150,
     Shape=&quot;stDiamond&quot;,                        -- тип: ромб
     Pen={ Style=&quot;psClear&quot; },                  -- без рамки
     Brush={ Color=0x00EEEE, Style=&quot;bsSolid&quot; } -- сплошная заливка
  }

-- &quot;рамки&quot; вокруг элементов
frame1 = VCL.Shape(mainForm, {
     Shape=&quot;stRectangle&quot;, Pen={ Color=0xAAAAAA, Style=&quot;psDashDot&quot; }, Brush={ Style=&quot;bsClear&quot; }
 })
frame2 = VCL.Shape(mainForm, {
     Shape=&quot;stRectangle&quot;, Pen={ Color=0xAAAAAA, Style=&quot;psDashDot&quot; }, Brush={ Style=&quot;bsClear&quot; }
 })
frame3 = VCL.Shape(mainForm, {
     Shape=&quot;stRectangle&quot;, Pen={ Color=0xAAAAAA, Style=&quot;psDashDot&quot; }, Brush={ Style=&quot;bsClear&quot; }
 })
frame4 = VCL.Shape(mainForm, {
     Shape=&quot;stRectangle&quot;, Pen={ Color=0xAAAAAA, Style=&quot;psDashDot&quot; }, Brush={ Style=&quot;bsClear&quot; }
 })
SetRectFrom(frame1, graphRect)
SetRectFrom(frame2, graphElipse)
SetRectFrom(frame3, graphTriangle)
SetRectFrom(frame4, graphDiamond)

-- &quot;двигунок&quot; и отображение угла
labelAngle = VCL.Label(mainForm)
labelAngle._ =
 {
     top=250, left=15,
     Caption=&quot;0&quot;
 }

trackBar = VCL.TrackBar(mainForm)
trackBar._ =
 {
     top=270, left=0, width=369,
     TickStyle=&quot;tsNone&quot;,
     OnChange = OnTrackChange,
     Min=0, Max=360
 }

chBox = VCL.CheckBox(mainForm)
chBox._ =
 {
     top=300, left=10, width=230, Caption=&quot;Постоянный размер&quot;,
     OnChange = OnChBoxChange
 }


mainForm:Show()

OnTrackChange()  -- вывести начальный угол с поясняющим текстом

is_run = true    
function main()
  while is_run do
    sleep(50)
  end
end

function OnStop()
 is_run = false
 mainForm:Free()
end</code></pre></div>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2013-10-03T19:22:43Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=439#p439</id>
		</entry>
</feed>
