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

Вниз

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

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

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1130738720
Loginov Dmitry
2005-10-31 09:05
2005.11.20
Глюк


4-1126843766
SergeyGood
2005-09-16 08:09
2005.11.20
Функция CreateProcessWithLogonW


2-1130956076
floxi
2005-11-02 21:27
2005.11.20
Умножение матриц


1-1130404652
leonon
2005-10-27 13:17
2005.11.20
Работа с TWebBrowser


2-1130499208
Yus
2005-10-28 15:33
2005.11.20
Работа с классами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский