Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.02;
Скачать: CL | DM;

Вниз

Функция, ожидающая щелчка мыши на форме   Найти похожие ветки 

 
Romeo ©   (2003-09-20 09:15) [0]

В общем, такая проблема... Необходимо по щелчку мыши на форме создавать в щелкнутой точке какой-то свой графический объект. Что-то типа:
procedure CreateNewObject;
var
P: TPoint;
begin
P := GetMouseClickOnFormPoint;
NewObj := TMyObject.Create(P);
end;


Где при попадании в строку P := GetMouseClickOnFormPoint; выполнение проседуры CreateNewObject приостанавливалось бы до тех пор, пока пользователь не щелкнет на форме мышкой, а уж потом и создавался бы мой объект.

P.S. Подобную примочку видел в VisualLISP (Autocad), но, хоть убей, не пойму как она работает... А просто вешать всю кучу функций по созданию и редактированию своих объектов на TMyForm.FormMouseDown что-то не лежит душа. Хотя придется наверное, если никто не подскажет решения


 
KSergey ©   (2003-09-20 09:24) [1]

Что-то мне не ясна логика такого приложения.
Приложения виндовс - событийные. Мы хотим, чтобы по событию клика что-то происходило -прямая дорога к FormMouseDown. Что в этом предосудительного??
В конце консов "вешать" в обработчик много не обязательно - достаточно вызвать соотв. ф-цию создания элемента, например, если уж в обработчик писать ничего не хочется.
Вы же хотите странного дела: запустить процедуру, которая будет ждать действий пользователя - зачем?? С этим прекрасно справится виндовс и вовремя проинформирует ваше приложение о наступившем событии ;)
Либо я что-то не понял.

Советую так же прочитать
http://www.delphikingdom.com/helloworld/runtime_comp.htm


 
romeo ©   (2003-09-20 10:34) [2]

Поясню.
Предосудительного ничего я и не подразумевал. Имелось в виду динамическое создание и редактирование не стандартых VCL компонентов, а неких своих объектов отвечающих за отисовку разных графических примитивов (линий, дуг, сплайнов и т.д.) с возможностью их редакирования мышью (подвинуть, покрутить, перетащить отдельные вершины и т.п.), и чтобы в FormMouseDown разложить по полочкам все необходимые варианты действий при их созании и редактировании, то получится а-агромный кусок кода (такой же кусок получится и в FormMouseUp, и в FormMouseMove)...
А идея вопроса заключалась в создании некой функции-утилиты, уменьшающей объем моей работы "ручками" при программировании всего этого безобразия... Лень - великая вещь!



Страницы: 1 вся ветка

Текущий архив: 2003.10.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
1-3946
pum5a
2003-09-19 23:35
2003.10.02
Хитро завернутый проект с кучей dll-ок


1-3917
Dark Elf
2003-09-22 15:29
2003.10.02
F1


14-4135
чайник
2003-09-06 10:42
2003.10.02
Хочу писать игры


14-4048
Layner
2003-09-15 15:06
2003.10.02
1C 7.7+SQLserv-клиент не может загрузить программу, желтая


1-3956
Grig2004
2003-09-19 14:16
2003.10.02
Проблема с доступом к реестру