<?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=173598&amp;view=findpost&amp;p=2682121</guid>
        <pubDate>Sun, 29 Aug 2010 09:46:46 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2682121</link>
        <description><![CDATA[Nightmareterrible: Хочу использовать ваш компонент (уж больно мне понравилось то, что я увидел в демке), однако есть проблемка. Начну с начала.<br>
Я пишу программу, подобную на графический редактор. Подобную, потому что она для узких целей - с ней можно рисовать схемы оригами.<br>
Вобщем появилась у меня идея реализовать инструмент &quot;Рука&quot;, как во многих редакторах.<br>
Обрабатывал события мыши у Image, размещённым в ScrollBox.<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.Image1MouseDown(Sender: TObject; Button: TMouseButton;</div><div class="code_line">&nbsp;&nbsp;Shift: TShiftstate; X, Y: integer);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;last_x := x;</div><div class="code_line">&nbsp;&nbsp;last_y := y;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftstate;</div><div class="code_line">&nbsp;&nbsp;X, Y: integer);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;ScrollBox1.ScrollBy(X-Last_x,Y-Last_y);</div><div class="code_line">end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Однако это приводит к тому, что изображение можно переместить как угодно, мне же нужно, чтобы оно &quot;закреплялось&quot; на границах, чтобы его нельзя было дальше перемещать. Пробовал добавлять в обработчик MouseMove:<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">&nbsp;&nbsp;if ((Image1.Left&#62;=0) and (X&#62;Last_X)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Image1.Left := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Last_X := X;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ((Image1.Top&#62;=0) and (Y&#62;Last_Y)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Image1.Top := 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Last_Y := Y;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div></ol></div></div></div></div><br>
Проблема решилась (слева и сверху, снизу и справа похожее сделал), но при перемещении, если достигнуты края, изображение стало &quot;подрагивать&quot;. Нашёл эту тему как решение. Установил компонент, но теперь другая проблема: изображение не перемещается после установки ImageDrag в true (по умолчанию отключено, т.к. я рисую на изображении и перемещение мне без выбранного инструмента ни к чему).<br>
Компоненту Box.Image присваиваю события мыши (Down, Move, Up). При создании формы устанавливаю значения box.Image.Width, box.Image.Height, box.Image.Picture.Bitmap.Width, box.Image.Picture.Bitmap.Height, и произвожу заливку. В принципе больше ничего такого страшного не произвожу, как мне кажется. Но после выбора инструмента перемещения само перемещение не происходит. Даже курсор не изменяется.<br>
Помогите мне, пожалуйста, как сладить с этой проблемой. Или может быть, получится обойтись без компонента? Быть может вы подскажете мне, неопытному, что следует писать в MouseDown, Move и Up, чтобы получилось так, как у вас, без &quot;передрагиваний&quot;, так чтобы изображение чётко останавливалось при достижении границ?<br>
<br>
Пытался искать на форуме решение этой проблемы, и нашёл только эту тему, как более актуальную. Прошу прощение за поднятие старой темы.<br>
Буду признателен даже за совет или намёк...]]></description>
        <author>Nightmareterrible</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2111078</guid>
        <pubDate>Sun, 09 Nov 2008 22:24:03 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2111078</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>psp</strong> пишет, что внутри файл ... просмотри ее как папку и будет чудо ... ;)]]></description>
        <author>andrew.virus</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2111068</guid>
        <pubDate>Sun, 09 Nov 2008 21:34:46 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2111068</link>
        <description><![CDATA[psp: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=2110160'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2008-11-08T06:13:34+00:00">08.11.08, 06:13</time></span><div class='quote '><strong class='tag-b'>psp</strong> все нормально работает, а какая у тебя проблема возникла ...</div></div><br>
Не распаковывается нормально...]]></description>
        <author>psp</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2110160</guid>
        <pubDate>Sat, 08 Nov 2008 06:13:34 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2110160</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>psp</strong> все нормально работает, а какая у тебя проблема возникла ...]]></description>
        <author>andrew.virus</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2109993</guid>
        <pubDate>Fri, 07 Nov 2008 19:40:54 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2109993</link>
        <description><![CDATA[psp: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=2098255'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andrew.virus &#064; <time class="tag-quote__quoted-time" datetime="2008-10-23T21:32:20+00:00">23.10.08, 21:32</time></span><div class='quote '><strong class='tag-b'>psp</strong> посмотри этот вариант, помоему в нем работает то что нужно тебе ...</div></div><br>
Что то этот  файл не скачивается ..хотел опять скачать..]]></description>
        <author>psp</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2098255</guid>
        <pubDate>Thu, 23 Oct 2008 21:32:20 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2098255</link>
        <description><![CDATA[andrew.virus: <strong class='tag-b'>psp</strong> посмотри этот вариант, помоему в нем работает то что нужно тебе ...]]></description>
        <author>andrew.virus</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2098248</guid>
        <pubDate>Thu, 23 Oct 2008 21:19:18 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2098248</link>
        <description><![CDATA[psp: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468644'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AlexeyT &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T13:38:03+00:00">28.02.07, 13:38</time></span><div class='quote '>Да, надо обрабатывать OnClick. Поправил.<br>
Теперь фокусируется, клавиши/колесо работают.</div></div><br>
А исправленный код есть?]]></description>
        <author>psp</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2088074</guid>
        <pubDate>Sat, 11 Oct 2008 17:55:01 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=2088074</link>
        <description><![CDATA[migur1: интересует след вопрос а куда убралась канва как теперь рисовать на компоненте ?]]></description>
        <author>migur1</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1469546</guid>
        <pubDate>Thu, 01 Mar 2007 08:31:02 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1469546</link>
        <description><![CDATA[Smike: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468730'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AlexeyT &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T14:42:12+00:00">28.02.07, 14:42</time></span><div class='quote '>А что предлагаете делать для такого случая? Как масштабировать.</div></div><br>
В таком гибридном компоненте трудно что-то сделать. Разве что придумать какую-то хитрую отрисовку TImage. А именно отрисовывать в TImage только видимую на данный момент область компонента.<br>
<br>
Тему перенес в специальный раздел. В соответствии с правилами данного раздела прошу прикрепить исходники компонента в первом сообщении. Если не помещается, можно без исполняемого файла.]]></description>
        <author>Smike</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468730</guid>
        <pubDate>Wed, 28 Feb 2007 14:42:12 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468730</link>
        <description><![CDATA[AlexeyT: <strong class='tag-b'>Smike</strong><br>
А что предлагаете делать для такого случая? Как масштабировать.]]></description>
        <author>AlexeyT</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468666</guid>
        <pubDate>Wed, 28 Feb 2007 13:53:18 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468666</link>
        <description><![CDATA[Smike: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468644'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AlexeyT &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T13:38:03+00:00">28.02.07, 13:38</time></span><div class='quote '>На больших - это на каких? У меня есть 1600*1200 - вроде масштабируется мгновенно.<br>
Вот есть 7200*7200 - на нем да, тормозит.</div></div><br>
2976*1952]]></description>
        <author>Smike</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468644</guid>
        <pubDate>Wed, 28 Feb 2007 13:38:03 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468644</link>
        <description><![CDATA[AlexeyT: <strong class='tag-b'>Smike</strong><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468583'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Smike &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T13:15:11+00:00">28.02.07, 13:15</time></span><div class='quote '>Посмотрел. При использовании масштабирования такой симбиоз не годится... Изображение перемасштабируются каждый раз при скроллинге, что приводит к чудовищным тормозам на больших изображениях.</div></div><br>
<br>
На больших - это на каких? У меня есть 1600*1200 - вроде масштабируется мгновенно.<br>
Вот есть 7200*7200 - на нем да, тормозит.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468583'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Smike &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T13:15:11+00:00">28.02.07, 13:15</time></span><div class='quote '>Кроме этого в коде видел обработку колеса мыши и клавиатуры. Только это все не работает, если перевести фокус например на кнопку и даже если потом кликнуть на компоненте. Вывод – нет обработки получения фокуса.</div></div><br>
<br>
Да, надо обрабатывать OnClick. Поправил.<br>
Теперь фокусируется, клавиши/колесо работают.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=173598&view=findpost&p=1468583'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Smike &#064; <time class="tag-quote__quoted-time" datetime="2007-02-28T13:15:11+00:00">28.02.07, 13:15</time></span><div class='quote '>Если выставить флаг &quot;сохранять позицию при масштабировании&quot;, наблюдается большое мерцание, когда появляются скроллбары. </div></div><br>
<br>
Это надо будет поправить.]]></description>
        <author>AlexeyT</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468583</guid>
        <pubDate>Wed, 28 Feb 2007 13:15:11 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468583</link>
        <description><![CDATA[Smike: Посмотрел. При использовании масштабирования такой симбиоз не годится... Изображение перемасштабируются каждый раз при скроллинге, что приводит к чудовищным тормозам на больших изображениях.<br><br>Я тоже начинал с Image + ScrollBox, но пришел к выводу, что это громоздко, неудобно и неуниверсально.<br><br>Кроме этого в коде видел обработку колеса мыши и клавиатуры. Только это все не работает, если перевести фокус например на кнопку и даже если потом кликнуть на компоненте. Вывод – нет обработки получения фокуса.<br><br>Если выставить флаг &quot;сохранять позицию при масштабировании&quot;, наблюдается большое мерцание, когда появляются скроллбары.]]></description>
        <author>Smike</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468490</guid>
        <pubDate>Wed, 28 Feb 2007 12:10:31 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468490</link>
        <description><![CDATA[AlexeyT: <strong class='tag-b'>Smike</strong><br>
OK, сейчас выложу исходники.<br>
Update: выложил.]]></description>
        <author>AlexeyT</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468466</guid>
        <pubDate>Wed, 28 Feb 2007 11:52:42 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468466</link>
        <description><![CDATA[Smike: Без исходников компонент не относится к тематике раздела по программированию.]]></description>
        <author>Smike</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468453</guid>
        <pubDate>Wed, 28 Feb 2007 11:45:14 +0000</pubDate>
        <title>Компонент ATImageBox (TScrollBox+TImage)</title>
        <link>https://forum.sources.ru/index.php?showtopic=173598&amp;view=findpost&amp;p=1468453</link>
        <description><![CDATA[AlexeyT: Выделил из своего компонента код, содержащий TScrollBox + TImage + обвязку.<br>
Получился компонент ATImageBox:<br>
<br>
http://atorg.net.ru/files/ATImageBox.zip (290 Кб)<br>
<br>
<img class='tag-img' src='http://atorg.net.ru/delphi/ATImageBox_Demo.gif' alt='user posted image'><br>
<br>
<br>
Набор фич виден по демо. В общем-то, почти те же фичи, что и в компоненте &quot;Image Controls&quot; который обсуждают тут, только без &quot;наворотов&quot; вроде OpenGL, resampling и т.д. Только самое нужное. Зато код маленький.<br>
<br>
Позже выложу на torry.net.]]></description>
        <author>AlexeyT</author>
        <category>Delphi: Разработка компонентов</category>
      </item>
	
      </channel>
      </rss>
	