Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
6-4023
alexdbases
2003-08-01 10:49
2003.10.02
Proxy - соеденение через HTTP прокси....


1-3951
GreySerg
2003-09-20 19:47
2003.10.02
Как изменить порядок расположения панелей ?


1-3906
killer
2003-09-20 19:47
2003.10.02
Как из Ini-файла считать поток?


14-4064
Ru
2003-09-15 16:21
2003.10.02
Energyser


3-3725
nik32
2003-09-13 06:45
2003.10.02
Замена DBNavigator





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский