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

Вниз

Как событию присвоить действия?   Найти похожие ветки 

 
X3coder   (2003-03-06 14:56) [0]

Ну типа того Form2.OnClick:=free;


 
Anatoly Podgoretsky ©   (2003-03-06 15:02) [1]

Ну типа этого и делай


 
X3coder   (2003-03-06 15:34) [2]

[Error] Unit1.pas(44): Incompatible types: "Parameter lists differ"
[Fatal Error] Project2.dpr(5): Could not compile used unit "Unit1.pas"
Вот что пишит в таком случае!


 
anbezr   (2003-03-06 15:35) [3]

тогда пиши
Form2.OnClick:= nil;


 
X3coder   (2003-03-06 15:41) [4]

невыходит....
нету ошибок, но ворма не уничтожается на онклик


 
Smithson ©   (2003-03-06 15:43) [5]

Есть такая весчь, называется книжка. Читать не пробывал? Любую, не обязательно по делфи. Можно по кулинарии - там точно будет ответ на этот вопрос!


 
anbezr   (2003-03-06 15:45) [6]

предыдущий ответ для того, чтобы обрать обработчик
а для установки
Form2.OnClick := @MyClickHandler;
и MyClickHandler должна быть описана:
procedure MyClickHandler(Sender: TObject);


 
X3coder   (2003-03-06 15:46) [7]

anbezr, огромное человеческое СПАСИБО


 
X3coder   (2003-03-06 15:58) [8]

блин, немогу ничего сделать......
у меня форма динамически создаются...
а когда пытаешься закрыть её, она сварачивается...
вот я и хочу засунуть free в OnClick.....
тока ничё не выходит :"(


 
Dms   (2003-03-06 16:02) [9]

так сделай в OnClose Action:=caFree и всего делов


 
Roma ©   (2003-03-06 16:04) [10]

> X3coder (06.03.03 15:46)

Типа, хочешь сказать, оно ( anbezr (06.03.03 15:45)) работает?... ;)

1. F11
2. Выбираешь Form2: TForm2
3. Заходишь на закладку Events
4. Дважды кликаешь на OnClick (да не в левой, а в правой колонке!)
5. Пишешь Free;

;)


 
X3coder   (2003-03-06 16:07) [11]

КАК?? у мя формы нету.... она патом создаётся... в процессе работы программы!! :((
В том то и стоит вопрос: как засунуть в OnClose эту Action:=caFree


 
Smithson ©   (2003-03-06 16:09) [12]

Братцы, да вы что! О;№%:;%:№;%№ели что ли?
Обработчик любого события есть процедура. Более того, объектная процедура. Пишешь такую процедуру в форме, в ней пишешь caFree и присваиваешь ее обработчику формы после создания, но до использования.

Говорю же я - книжка по кулинарии вам поможет!


 
X3coder   (2003-03-06 16:14) [13]

ОК чтобы быть более понятным:
---------------------------------------
procedure closeformzz(Sender: TObject);
begin
Action:=caFree;
end;

procedure TForm1.New1Click(Sender: TObject);
begin
formarray[i]:=TForm.Create(nil);
formarray[i].FormStyle:=fsMDIChild;
formarray[i].OnClose:=closeformzz;
formarray[i].Visible:=true;
i:=i+1;
end;
--------------------------------
Это есть то самое, что меня волнует...
Что тут неправильно?? неработает....


 
anbezr   (2003-03-06 16:18) [14]

обработчик ОnClose
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
приведи список параметров в соответствие примеру


 
anbezr   (2003-03-06 16:21) [15]

2 Roma © (06.03.03 16:04)
да загнался, "@" там лишнее


 
X3coder   (2003-03-06 16:24) [16]

Incompatible types: "method pointer and regular procedure"
:(
Я пошёл застрелюсь лучше...


 
Anatoly Podgoretsky ©   (2003-03-06 16:26) [17]

Книги, книги и еще раз книги, до этого к компьютеру не подходи.


 
anbezr   (2003-03-06 16:27) [18]

ты хочешь, чтобы по клику на форму она закрывалась?


 
NAlexey ©   (2003-03-06 16:27) [19]

to anbezr а причем здесь OnClose привести в порядок? Ему надо OnClick привести в порядок:
formarray[i].OnClose:=closeformzz; - Ты тут видимо хотел сказать:
formarray[i].OnClick:=closeformzz;.
Называется заблудился в 3х соснах. Ты не торопись, большинство нелепых ошибок от этого...


 
X3coder   (2003-03-06 16:29) [20]

2Anatoly Podgoretsky
это форум или как?
если бы у мя были все нужные мне книги и у каждого юзера они были бы, тода форум бы несуществовал!
Ну мож кто-нибудь оставит примерчик? а то вообще руки опустились :(


 
Anatoly Podgoretsky ©   (2003-03-06 16:31) [21]

Книгами забит Интернет, без них с твоим уровнем удачи не видать. У тебя полный нуль.


 
NAlexey ©   (2003-03-06 16:34) [22]

to X3coder - Не кипятись... Сделай как я тебе сказал, и твоя форма будет закрываться по клику.


 
anbezr   (2003-03-06 16:42) [23]

что заработает? Action:=caFree;?


 
Roma ©   (2003-03-06 16:48) [24]

> anbezr (06.03.03 16:21)

Кое-что лишнее, кое-чего не хватает...

> X3coder (06.03.03 16:29)

interface

type

TForm1 = class(TForm)
...
protected
procedure MyClick(Sender: TObject);
procedure MyClose(Sender: TObject; var Action: TCloseAction);
...
end; // TForm = class(TForm)


implementation

...

procedure TForm1.MyClick(Sender: TObject);
begin
(Sender as TForm).Close;
end;

procedure TForm1.MyClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Form: TForm;
begin
Form := TForm.Create(Self);
Form.OnClick := MyClick;
Form.OnClose := MyClose;
Form.Show;
end;

...

end.


Ты все таки хоть что-нибудь почитай, чтоб хотя бы понимать ответы на свои вопросы...


 
X3coder   (2003-03-06 16:49) [25]

Люди, я вам говорю: "Них*ненормативная лексика*уя у меня не получается, оставте мне рабочий пример и вы меня сегодня больше не увидите :)"


 
Dms   (2003-03-06 16:52) [26]


> procedure closeformzz(Sender: TObject);
> begin
> Action:=caFree;
> end;
>
> procedure TForm1.New1Click(Sender: TObject);
> begin
> formarray[i]:=TForm.Create(nil);
> formarray[i].FormStyle:=fsMDIChild;
> formarray[i].OnClose:=closeformzz;
> formarray[i].Visible:=true;
> i:=i+1;
> end;


так и не должно работать. ошибки есть и конкретные.
1. closeformzz должен быть методом класса окна (вообще TForm ты зачем используешь ?)
2. closeformzz должен иметь тип TCloseNotify (глянь параметры)

ps совет - тут вообще неправильный в корне подход, так что читай книжки про MDI. время сэкономишь.


 
Roma ©   (2003-03-06 16:54) [27]

Вдогонку. OnClick, OnClose и т.п. определены как TNotifyEvent, а TNotifyEvent - это procedure (Sender: TObject) of object, поэтому никакие просто procedure closeformzz(Sender: TObject) не канают... Нет книг, ну так хелп и исходники-то есть...


 
Roma ©   (2003-03-06 16:55) [28]

Т.е. OnClose имеет другой тип, сорри, но это уже не суть важно...


 
X3coder   (2003-03-06 16:56) [29]

ВСЕМ СПАСИБО ЗА ИНТЕРЕСНУЮ И ПОЗНАВАТЕЛЬНУЮ ДИСКУССИЮ
p.s.
так у него ничего и неполучилось. И забил он на всё это дело! И решил он, что ему без этого *нецензурная брань* будет спокойнее...


 
Lucefer   (2003-03-06 16:59) [30]

Читал.
Смеялся.

Это разводка?


 
Anatoly Podgoretsky ©   (2003-03-06 17:05) [31]

Lucefer (06.03.03 16:59)
Не похоже, вроде бы на самом деле так.


 
Переяслов Григорий ©   (2003-03-06 18:05) [32]

Form1.Button1.OnClick := MyOnClick;
...
end;

Procedure TForm1.MyOnClick(Sender: TObject);
Begin
Close;
end;



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

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

Наверх




Память: 0.53 MB
Время: 0.022 c
4-54377
Tahion
2003-01-11 02:38
2003.03.17
Сохранение иконки


1-54053
StarCon
2003-03-05 08:11
2003.03.17
DOA


1-53978
msoftware
2003-03-06 09:47
2003.03.17
Как сделать чтобы ImageList сохранял 16-битные значки?


3-53948
Ed
2003-02-24 18:39
2003.03.17
Delphi&FoxPro


14-54245
Puper!
2003-02-27 18:51
2003.03.17
Help!