Как сделать лупу в делфи

Как сделать лупу в делфи

Киньте, пожалуйста, код или подскажите как реализовать увеличительное стекло в Delphi. Нарыл какую-то муру, но у меня ничего не получается. Как сделать лупу в делфи

Добавлено через 1 час 35 минут
Мне нужно реализовать такой инструмент: нажал на кнопку, включилось увеличительное стекло, поводил им по Image1, а увеличение передалось на рядом стоящую Panel1, ну или на другой Image2, но чтобы увеличивало только заданый Image1, а не всю форму.

Лупа
Здравствуйте. Можно создать на Delphy, что-то лупы, для увеличения на Form, для распознавания.

Лупа в Delphi
Здравствуйте подскажите пожалуйста,как сделать чтобы увеличительное стекло функционировало только.

Лупа в Picturebox
Не знал как придумать название темы поэтому пусть будет такое) В чем собственно вопрос. На форме.

Киньте, пожалуйста, код или подскажите как реализовать увеличительное стекло в Delphi. Нарыл какую-то муру, но у меня ничего не получается. Как сделать лупу в делфи

Добавлено через 1 час 35 минут
Мне нужно реализовать такой инструмент: нажал на кнопку, включилось увеличительное стекло, поводил им по Image1, а увеличение передалось на рядом стоящую Panel1, ну или на другой Image2, но чтобы увеличивало только заданый Image1, а не всю форму.

но что у меня за проблема??

в имэйдже стоит битмаповская картинка, а дэлфи выдаёт ошибку, когда навожу на имэйдж, что:
can only modify an image if it containts only bitmap

Вложения

Как сделать лупу в делфиLP_Loup.rar (18.2 Кб, 146 просмотров)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать лупу в делфиЛупа в Delphi
Хочу реализовать лупу в Delphi, чтобы сама лупа и эффект увеличения были в зоне курсора, везде.

Измененная лупа
Добрый день! У меня еще один вопрос. Есть необходимость реализовать механизм, своей сутью.

Лупа на layout
Привет. В браузере наверняка все видели «лупу» когда не можете попасть по ссылке, браузер вам.

Источник

Как сделать лупу в делфи

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

Здравствуйте подскажите пожалуйста,как сделать чтобы увеличительное стекло функционировало только после нажатия кнопки (Button1) «Вкл Увеличительное стекло»

Присоединённый файл ( Кол-во скачиваний: 9 )
Как сделать лупу в делфи zoom.rar 296,19 Kb

Эксперт
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

У меня не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ExtDlgs, jpeg;

type
TForm1 = class(TForm)

Panel1: TPanel;
Image1: TImage;
Image2: TImage;
Button1: TButton;
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);

procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormResize(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
flag_for_zoom: boolean;
end;

var
Form1: TForm1;
k: Real;

procedure TForm1.FormCreate (Sender: TObject);
begin
DoubleBuffered := True;
FormResize (Sender);
flag_for_zoom := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image2.Visible := True;
end;

Эксперт
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20

Цитата(ddd92 @ 24.5.2013, 22:45 Как сделать лупу в делфи)
У меня не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

А не подскажите мне еще, почему не рисует спрей по Image2 ( в программе кнопка сперей,а рисовать должен как распылитей в Paint)

Присоединённый файл ( Кол-во скачиваний: 6 )
Как сделать лупу в делфи zoom.rar 299,28 Kb

Delphi developer
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133

Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »

[ Время генерации скрипта: 0.1169 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Как сделать лупу в делфи

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

Здравствуйте подскажите пожалуйста,как сделать чтобы увеличительное стекло функционировало только после нажатия кнопки (Button1) «Вкл Увеличительное стекло»

Присоединённый файл ( Кол-во скачиваний: 9 )
Как сделать лупу в делфи zoom.rar 296,19 Kb

Эксперт
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

У меня не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ExtDlgs, jpeg;

type
TForm1 = class(TForm)

Panel1: TPanel;
Image1: TImage;
Image2: TImage;
Button1: TButton;
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);

procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormResize(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
< Private declarations >
public
< Public declarations >
flag_for_zoom: boolean;
end;

var
Form1: TForm1;
k: Real;

procedure TForm1.FormCreate (Sender: TObject);
begin
DoubleBuffered := True;
FormResize (Sender);
flag_for_zoom := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image2.Visible := True;
end;

Эксперт
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20

Цитата(ddd92 @ 24.5.2013, 22:45 Как сделать лупу в делфи)
У меня не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет

А не подскажите мне еще, почему не рисует спрей по Image2 ( в программе кнопка сперей,а рисовать должен как распылитей в Paint)

Присоединённый файл ( Кол-во скачиваний: 6 )
Как сделать лупу в делфи zoom.rar 299,28 Kb

Delphi developer
Как сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфиКак сделать лупу в делфи

Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133

Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи Как сделать лупу в делфи

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »

[ Время генерации скрипта: 0.1130 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Программное создание кнопок

Модераторы, не ругайте пжл 🙂

Теперь мы можем использовать кнопочки ).

Пример создания кнопок в данном случае будет основан на типе TBitBtn. В общем кнопок мы создадим 9 (это будут цифры от 1 до 9).

Все эти 9 кнопок мы будем создавать в цикле, причем они будут находится в массиве. Для этого нам понадобиться отдельная переменная типа TBitBtn, переменная для цикла и массив типа TBitBtn. Код:

Т.е. при вызове в этой процедуры в Edit1 будет дописываться заголовок кнопки, которая вызвала процедуру.

Вернемся к нашему циклу, где мы создавали сами кнопки. Перед строчкой «mass[i]:=but;» допишем строчку «but.OnClick:=butclick;». Запускаем приложение, тыкаем на наши кнопочки и видим, что они вписываются в Edit1 Как сделать лупу в делфи.

На этом «урок» окончен Как сделать лупу в делфи
P.S. больше писанины получилось, чем реального кода.

Программное создание exe
Доброго времени. Встал вопрос о программном создании exe в программе. Сразу пример: есть.

Программное создание событий для кнопок
есть главная форма, есть дочерняя. При запуске дочерней создаются программно кнопки и им.

Программное создание кнопок и событий
Имеется такой вод код создающий кнопки, как этим кнопкам, задать обработку клика по ним? void.

и у меня почему то не создаются кнопки при запуске.Как сделать лупу в делфи

Добавлено через 6 минут

Fatal Error, не, я это не использовал)))
я вообще пишу сапера в Delphi от скуки)))

Добавлено через 2 часа 35 минут
Need Help.
немного решил оптимизировать код, и сделать по своему. и как всегда в таких случаях не работает.
ошибок нет, есть то, что кнопки не появляются((( что здесь не так, подскажите

Доброго времени суток, господа программисты!
А можно как-то внутри цикла создания кнопок описать процедуры или функции? Т.е. как бы создать столько процедур, сколько создано кнопок.

Объясняю зачем мне это.
Программно создаю кучу эдитов по 4 штуки в ряд и рядом с каждым рядом также программно созданные 2 кнопки. Эдиты заполняются из БД Access. Кнопки служат для редактирования и удаления записи БД. Для редактирования хочу реализовать вызов другой формы. Вот тут-то и нужны мне дополнительно создающиеся процедуры или функции. Подскажите кто чем может, пожалуйста

Источник

Взлом Борландии: изящная декомпиляция Delphi

Содержание статьи

Начинающие хакеры обычно испытывают большие трудности при взломе программ, написанных на Delphi и Builder, поскольку классические трюки, типа бряка на GetWindowTextA, не работают. И чтобы не пилить серпом по яйцам, требуется учитывать особенности библиотеки VCL, которая только с виду кажется неприступной, а в действительности ломается даже проще, чем чистые Си-программы! Не веришь? Убедись сам!

Для начала.

Короче, надо хачить. Поехали!

Осваиваем DeDe

Как сделать лупу в делфи

Последняя известная мне версия DeDe носит порядковый номер 3.50.02 и датируется серединой 2003 года. Похоже, что DaFixer полностью утратил интерес к своему детищу, решив похоронить DeDe на свалке истории. Полные исходные тексты версии 3.10b выложены в публичный доступ, однако желающих продолжить благородное дело что-то не наблюдается, и потому DeDe обречен на медленное и мучительное вымирание. Программы, собранные новыми компиляторами от Багдада, DeDe либо вообще не переваривает, либо декомпилирует неправильно (вот потому чуть позже мы рассмотрим, как ломать Борландию своими руками без посторонней помощи).

Архив DeDe.3.10b.realy.complete.src.zip (который, в частности, можно скачать с www.wasm.ru/baixado.php?mode=tool&id=55) на самом деле не совсем полон, в нем отсутствует пара компонентов: RxLib_v2.75 плюс VCLZip. И прежде чем DeDe удастся собрать, их необходимо найти в интернете. Если же ты не собираешься заниматься доработкой DeDe, то лучше скачать с www.xakep.ru/post/18513/default.asp архив без исходных текстов, который на два метра короче.

В общем, значит, ставим мы DeDe и втыкаем в его философию. А философия эта такова, что декомпиляции подвергается не сам исполняемый файл, а образ запущенного процесса в памяти, за счет чего удается раздавить упаковщики, даже не почувствовав их присутствия. Впрочем, против крутых протекторов, шифрующих защищенную программу в памяти и динамически расшифровывающих ее по мере исполнения, DeDe оказывается бессилен, и вряд ли стоит объяснять почему. Однако крутые протекторы на практике встречаются не так уж часто, что очень радует.

Ладно, не будем впадать в депрессию. Ведь Новый год на дворе! И пока остальные рвут петарды, мы будем рвать себе задницу, декомпилируя интересные программы :). Все очень просто! Берем прогу, загружаем ее в DeDe, давим на кнопку «Процесс» и сидим себе в ожидании, пока DeDe распотрошит дамп памяти. Лучше всего это делать под VMware, а то среди защищенных программ есть всякие твари, начиненные AdWare и прочей малварью.

Честно говоря, я поубивал бы тех, кто придумал механизм идентификации типов в рантайме, благодаря которому названия классов не уничтожаются при компиляции (как в классическом Паскале и Си), а попадают непосредственно в исполняемый файл (как в Visual Basic’е). Взлом упрощается настолько, что ломать становится скучно. Никакого тебе интеллектуального поединка. Все равно что ломом добивать попавшую в капкан мышь.

Как сделать лупу в делфи

Как сделать лупу в делфи

Как сделать лупу в делфи

Техника ручного взлома

Ураганный артиллерийский огонь декомпилятора DeDe накрывает практически весь Багдад, ставя моджахедов по стойке смирно, а всех несогласных отправляет на север, где они рубят пихтовый лес и гонят драп, чтобы у всех плановых жителей было по елке. В смысле ПО «Елки», программное обеспечение то есть :).

Берем, значит, Иду, переходим в начало сегмента данных (View\Open subviews\Segments или ) и прокручиваем его вниз до тех пор, пока не встретим текстовые названия элементов управления с прилегающими к ним ссылками. Дизассемблерный текст должен выглядеть так, как показано ниже.

Названия методов класса формы в исполняемом файле прямым текстом:

Скажем сразу, это довольно сложный для взлома случай, поскольку программист использовал названия элементов по умолчанию, потому и получилось TForm1, Button1Click, Button2Click. Это не названия кнопок, это названия методов класса, отвечающих за обработку нажатий кнопок, а вот каким реально кнопкам они соответствуют, так сразу и не скажешь, поэтому придется хитрить.

Как сделать лупу в делфи

Запускаем программу, вызываем обозначенную форму и давим по очереди на все кнопки. Когда мы нажмем Button3, на экран выскочит системное сообщение о том, что у программы рвет крышу и она будет аварийно завершена в добровольно-принудительном порядке. Так и должно быть. В отсутствие отладчика команда INT 03h приводит к критической ошибке, что позволяет довольно быстро найти необходимые нам кнопки, после чего останется только хакнуть соответствующие им функции. Логично? Всенепременно!

Естественно, ручной просмотр секции данных непродуктивен и ненадежен. Так легко проглядеть нужные нам формы, особенно если программист обозвал методы классов короткими и невыразительными именами, особо не бросающимися в глаза, типа a, b, c. Как быть тогда? Очень просто! Указатель на вышеприведенную структуру передается библиотечной VCL-функции Forms::TApplication::CreateForm(System::TMetaClass *,void*) в качестве одного из аргументов. IDA распознает VCL-функции по сигнатурам, автоматически назначая им «неразмангленные» имена. Применительно к нашему случаю это будет @Forms@TApplication@CreateForm$qqrp17System@TMetaClasspv. Просто находим эту функцию и смотрим все перекрестные ссылки,
ведущие к местам ее вызова из программного кода. Ни одна форма не уйдет незамеченной!

Поиск указателя на структуру формы в hiew’e:

.0040193A: 8B0DE01F4100 mov ecx,[00411FE0]
.00401940: 8B15FCE54000 mov edx,[0040E5FC]
.00401946: E8B9BF0000 call @Forms@TApplication@CreateForm$qqrp17System@TMeta
.0040194B: A134B65900 mov eax,@Forms@Application ;vcl60

Разумеется, это работает только с неупакованными программами, использующими статическую линковку, коих большинство. Если программа упакована, то, прежде чем мы доберемся до таблицы импорта, ее предстоит распаковать, а если разработчик задействовал динамическую компоновку, то один или несколько вызовов __imp_@Forms@TApplication@CreateForm$qqrp17System@TMetaClasspv останутся незамеченными (что плохо). В таких случаях выгоднее прибегнуть к отладчику, установив точку останова на __imp_@Forms@TApplication@CreateForm$qqrp17System@TMetaClasspv, но об этом мы скажем позже, а пока разберемся с аргументами.
Главным образом нас интересует аргумент, загружаемый в регистр EDX и указывающий на структуру, по смещению 18h от начала которой расположен указатель на уже знакомую тебе вложенную структуру.

Вокруг точек останова

Как сделать лупу в делфи

Остается только выбрать подходящие функции для бряканья. Краткий перечень наиболее важных из них (с точки зрения хакера) представлен ниже:

Праздничное заключение

Как видно, во взломе программ из Багдада ничего сложного нет, и они хакаются со скоростью пробки, вылетающей из бутылки шампанского. Даже еще быстрее! Так что подарок к Новому году обеспечен!

Как сделать лупу в делфи
Полную версию статьи
читай в декабрьском номере Хакера! Последний релиз DeDe v. 3.50.02 ты можешь скачать с нашего сайта или взять на DVD

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *