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

Вниз

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

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

Наверх




Память: 0.51 MB
Время: 0.009 c
14-54320
Morfey
2003-03-01 22:38
2003.03.17
HTML редактор


14-54309
Донской
2003-03-01 14:19
2003.03.17
Сервер БД


14-54253
Nimda2000
2003-02-28 13:06
2003.03.17
Кодеровка


8-54123
Alex
2002-12-04 12:39
2003.03.17
Графика в Stringgrid


1-54048
Demonist
2003-03-05 00:05
2003.03.17
Av





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