-
faustpatron13 © (26.10.10 22:12) [0]Уважаемые программисты!
Киньте, пожалуйста, код или подскажите как реализовать увеличительное стекло в Delphi. Нарыл какую-то муру, но у меня ничего не получается... -
Мне нужно реализовать такой инструмент: нажал на кнопку, включилось увеличительное стекло, поводил им по Image1, а увеличение передалось на рядом стоящую Panel1, ну или на другой Image2, но чтобы увеличивало только заданый Image1, а не всю форму...
-
0x00FF00 © (28.10.10 00:42) [2]BitBlt + StretchBlt?
-
В библиотеке alphacontrols есть компонент, отображающий увеличительное стекло.
-
Чайник © (03.11.10 22:40) [4]Когда-то для тренировки тоже развлекался подобной задачкой:
http://ifolder.ru/20098568
P.S. В 2003 это было дельфи 6 -
Чайник спасибо!
А не могли бы вы мне рассказать, как пашет вот эта прога:
http://www.delphisources.ru/pages/sources/graph/zoom.html
Код смотрю, нишиша не могу понять(( -
Чайник © (06.11.10 17:40) [6]
> А не могли бы вы мне рассказать, как пашет вот эта прога:
> http://www.delphisources.ru/pages/sources/graph/zoom.htmlКод
> смотрю, нишиша не могу понять((
А что там непонятного?
На форме лежат друг на друге панель (Panel1) и имейдж (Image1). В зависимости от того, где находится курсор, делаются видимым или панель с настройками (если курсор над формой) или имейдж (если курсор вне формы).
По таймеру с интервалом 25 мс (если курсор вне формы) запрашивается хэндл десктопа и из него прямоугольник копируется с растяжкой на имейдж.
Ключевой момент, где все это происходит, вот :C:=TCanvas.Create;
try
C.Handle:=GetDC(GetDesktopWindow);
Image1.Canvas.CopyRect(Drect,C,Srect);
finally
C.Free;
end;
Все остальное - это вычисление координат прямоугольника экрана, из которого копируется изображение.
На мой взгляд реализовано все довольно перректальным способом (40 раз в секунду создавать и разрушать TCanvas), но, как говорится, на вкус и цвет... -
Чайник © (06.11.10 17:47) [7]Да! только счас посмотрел в собственный проект, и увидел, что там использовал DsfancyButton - кнопка, которую можно делать разной формы (круглую). Взято здесь: http://www.torry.net/quicksearchd.php?String=DsFancyButton&Title=Yes
-
CrytoGen (06.11.10 19:56) [8]только не забудьте освободить DC
-
> Чайник © (06.11.10 17:47) [7]
> Да! только счас посмотрел в собственный проект, и увидел,
> что там использовал DsfancyButton - кнопка, которую можно
> делать разной формы (круглую). Взято здесь: http://www.torry.
> net/quicksearchd.php?String=DsFancyButton&Title=Yes
А зачем мне это? -
Студент (03.02.11 13:20) [10]Увеличение участка изображения и "лупа" это разные вещи...
Лупа увеличивает в разное количество раз в зависимости от радиуса... -
babanyukv (09.11.13 00:53) [11]