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

Вниз

Устаовка события для компонента   Найти похожие ветки 

 
Ezorcist   (2005-11-04 08:41) [0]

Создал компонет обычный, хочу установить для него обработчик события, например Comp.OnCLick:= А дальше чего написать? Если прото процедуру, то не подходит...

Заранееспасибо


 
злобная танька   (2005-11-04 09:56) [1]

в классе формы объяви
 procedure MyProcedure(Sender: TObject);

напиши реализацию,
а потом присваивай

Comp.OnCLick := MyProcedure;

Хотя можно и процедуру:

//вот какая-то процедура:
procedure p;
begin
 Halt;
end;

//тут мы будем её присваивать:
procedure Form1.Button1Click(Sender: TObject);
var
 M: TMethod;
begin
 M.Code := @p;  //превращаем её в метод
 M.Data := nil;  
 Comp.OnCLick := TNotifyEvent(M);  //и назначаем компоненту.
end;

TNotifyEvent это тип методов которые в качестве формального параметра используют Sender: TObject. К ним относятся клики и некоторые другие. ывают ещё TMouseEvent, TKeyPressEvent и другие. Описаны в модуле Controls.


 
Ezorcist   (2005-11-04 14:13) [2]

Спасибо, а еще вопрос как заставить консольное не закрываться? Бесконечный 1=0 забивает проц, а вот это

While GetMessage( Msg,0,0,0) do
begin
translatemessage(msg);
dispatchmessage(msg);
end;

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


 
злобная танька   (2005-11-05 10:39) [3]

Repeat
 //ввод с клавиатуры
 //вычисления
 //вывод
Until ExitFlag;

если пользователь ввёл например "exit", то присваиваем ExitFlag значение true, прога выходит из цикла и завершаеца.


 
Ezorcist   (2005-11-05 15:10) [4]

Неа, не работает так,
вроде бы програ останавливает свою деятельность и ждет, пока пользователь чего-нибудь ей не напишет. А у TServerSocket в это время событие, которое прога не выполняет.


 
злобная танька   (2005-11-05 19:12) [5]


> Ezorcist   (05.11.05 15:10) [4]

может я глупость скажу..
а ввод нельзя в отдельный поток засунуть? :)


 
Ezorcist   (2005-11-05 20:54) [6]

Точно, в потоке работает, но мне надо консоль убрать :) Теперь ReadLn пихать некуда (



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

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

Наверх




Память: 0.47 MB
Время: 0.059 c
4-1126897036
Dot
2005-09-16 22:57
2005.11.20
слушать порт WinSocks


14-1130239426
Жук
2005-10-25 15:23
2005.11.20
Школьная парта


4-1127117079
NightLord
2005-09-19 12:04
2005.11.20
PopupManu на WinApi


4-1127385325
Wistler
2005-09-22 14:35
2005.11.20
COM-порт и XP


1-1130335109
alex870
2005-10-26 17:58
2005.11.20
Поиск в TreeView