![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Устаовка события для компонента [D3, D5, WinXP]
Ezorcist © (2005-11-04 08:41:00)Создал компонет обычный, хочу установить для него обработчик события, например Comp.OnCLick:= А дальше чего написать? Если прото процедуру, то не подходит...
Заранееспасибо
Ezorcist (2005-11-05 20:54:00) [1]Точно, в потоке работает, но мне надо консоль убрать :) Теперь ReadLn пихать некуда (
злобная танька (2005-11-05 19:12:00) [2]
> Ezorcist (05.11.05 15:10) [4]
может я глупость скажу..
а ввод нельзя в отдельный поток засунуть? :)
Ezorcist (2005-11-05 15:10:00) [3]Неа, не работает так,
вроде бы програ останавливает свою деятельность и ждет, пока пользователь чего-нибудь ей не напишет. А у TServerSocket в это время событие, которое прога не выполняет.
злобная танька (2005-11-05 10:39:00) [4]Repeat
//ввод с клавиатуры
//вычисления
//вывод
Until ExitFlag;
если пользователь ввёл например 'exit', то присваиваем ExitFlag значение true, прога выходит из цикла и завершаеца.
Ezorcist (2005-11-04 14:13:00) [5]Спасибо, а еще вопрос как заставить консольное не закрываться? Бесконечный 1=0 забивает проц, а вот это
While GetMessage( Msg,0,0,0) do
begin
translatemessage(msg);
dispatchmessage(msg);
end;
из книги, вызывает ошибку, когда консольное приложение получает текст по сокету...
злобная танька (2005-11-04 09:56:00) [6]в классе формы объяви
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.