Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Вниз

как обработать событие 


ДмитрийВ   (2002-02-09 18:07) [0]

есть процедура
procedure TForm1.Button1Click(Sender: TObject);
var
Window : TForm;
Button2 : TButton;

begin
Window:=TForm.Create(Form1);
Button2:=TButton.Create(Window);
Button2.Parent:=Window;
Window.Height:=600;
Window.Width:=600;
Window.Caption:="Проба";
Button2.Width:=100;
Button2.Height:=20;
Button2.Top:=100;
Button2.Left:=300;
Button2.Caption:="Жопа";
Button2.TabStop:=True;
Button2.TabOrder:=0;
Button2.Tag:=0;
Window.Show;
end;

как для button2, например, нажатие(OnClick) описать?



Song   (2002-02-09 18:12) [1]

Создаёшь процедру, которая должна будет обрабатывать твоё нажатие
а к твоему тексту выше добавляешь Button2.OnClick:=имя_процедуры;



ДмитрийВ   (2002-02-09 18:23) [2]

изменил на так

procedure TForm1.Button1Click(Sender: TObject);
var
Window : TForm;
Button2 : TButton;

procedure ButtonOnClick;
begin
Window.Free;
end;

begin
Window:=TForm.Create(Form1);
Button2:=TButton.Create(Window);
Button2.Parent:=Window;
Window.Height:=600;
Window.Width:=600;
Window.Caption:="Проба";
Button2.Width:=100;
Button2.Height:=20;
Button2.Top:=100;
Button2.Left:=300;
Button2.Caption:="Жопа";
Button2.TabStop:=True;
Button2.TabOrder:=0;
Button2.Tag:=0;
Window.Show;
Button2.OnClick:=ButtonOnClick;
end;

делафя пишет что incompatible type "method pointer and regular procedure"



Song   (2002-02-09 20:45) [3]

А ты попробуй создай для события onClick любой кнопки процедуру и сразу увидишь свою ошибку.
А ошибка твоя именно том, что ты забыл в процедуру передать Sender

Procedure TForm1.Button1Click(Sender:TObject);

Именно так Дельфи генерирует процедуру при добавлении её на событие. Поэтому чтобы твоё событие работало нужно передавать туда все параметры, которые предусмотрены для такого события. В данном случае это Sender



Dimk   (2002-02-10 01:05) [4]

И еще: OnClick -у надо присваивать метод а не регулярную процедуру. Так что в самом деле можно просто сделать

procedure Form1.ButtonOnClick(Sender: TObject);
begin
Window.Free;
end;

и конечно в объявление формы дописать

Form1 = class(TForm)
.....
procedure ButtonOnClick(Sender: TObject);
....
end;





Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.02 c
1-90622           irz                   2002-02-13 06:12  2002.02.28  
TreeView


3-90515           СергейМНК             2002-02-04 06:15  2002.02.28  
Как сделать чтобы выскакивал LoockUp список при начале набора текста в DBGrid в LoockUp поле


7-90673           NUC                   2001-11-24 19:01  2002.02.28  
Как закодить дрова для джойстика


1-90599           Mr.Fox                2002-02-12 05:38  2002.02.28  
Как скрыть форму ???


1-90578           TAN                   2002-02-12 11:01  2002.02.28  
DateTimePicker