Главная страница
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.028 c
5-1110285566
GuAV
2005-03-08 15:39
2005.11.20
procedure TCustomImageList.DefineProperties(Filer: TFiler);


8-1120145991
Radgar
2005-06-30 19:39
2005.11.20
Разбивание Timage на секции.


14-1130357222
LordOfRock
2005-10-27 00:07
2005.11.20
Muse


11-1111908939
Serr
2005-03-27 11:35
2005.11.20
Вопрос по базам


2-1130339360
ag0_
2005-10-26 19:09
2005.11.20
TEdit