Форум: "Основная";
Текущий архив: 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