Текущий архив: 2009.05.03;
Скачать: CL | DM;
Вниз
Закрытие формы. Найти похожие ветки
← →
Cep (2009-02-10 14:18) [40]Да, коллеги, это нетленка :)))
← →
Dennis I. Komarov © (2009-02-10 15:09) [41]А тут ничего не изменилось :)
← →
MsGuns © (2009-02-10 15:50) [42]Так седому ветерану и не объяснили зачем точить шашку :)
← →
AlexDan © (2009-02-10 18:42) [43]Господа, вы меня поражаете своей наивностью, код:
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TForm2.Button1Click(Sender: TObject);
begin
form2.Close;
OnClose := FormClose;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
end.
написанный полностью от руки, т.е. без применения инспектора обьектов и клавишь Ctrl+Shift+C (при создании процедур, если это делается вручную) в делфи 7 игнорируется (не выполняется).
← →
{RASkov} © (2009-02-10 18:48) [44]> [43] AlexDan © (10.02.09 18:42)
Что ты хотел этим сказать?
Показать как не нужно делать и свою тупость? Это и так было ясно :) сорри...
← →
{RASkov} © (2009-02-10 18:56) [45]Разжую:
при старте программы у формы2 нет обработчика OnClose.
Далее при нажатии кнопки форма2 закрывается, (по умолчанию в делфи формы не закрываются, а прячутся при Close(это не касается MDI)) и потом ей назначается обработчик OnClose. Но при первом нажатии метод FormClose не вызывается(не выполняется)....
При втором нажатии форма опять закрывается, но уже выполняется метод FormClose.... где она и убивается совсем.
А вот при третьем нажатии уже АВ....
> AlexDan
Хоть чего-нибудь понял?
:о)
← →
{RASkov} © (2009-02-10 19:02) [46]> А вот при третьем нажатии уже АВ....
Я говорил про нажатия кнопки, это - метод TForm2.Button1Click...
но последней строчкой в [45] - ошибся.... ибо до нее(а точнее до метода TForm2.Button1Click) дело не дойдет...
АВ будет при очередном Form2.Show; Или при любом обращении к Form2....
← →
AlexDan © (2009-02-10 19:31) [47]> {RASkov} © (10.02.09 18:56) [45]
> При втором нажатии форма опять закрывается, но уже выполняется
> метод FormClose....
Вот этого наверное я не был в курсе..ссори.
← →
Servy © (2009-02-10 19:32) [48]> [45], [46] {RASkov} ©
Есть мнение, что если автор написал все "полностью" (как он выразился) от руки, и инспектор объектов не трогал, то при нажатии кнопки не будет ничего. Ну прям совсем ничего :).
> AlexDan
Видимо, для вас открытием будет тот факт, что можно целой горе кнопок, форм, лабелей назначить один обработчик OnClick, и назвать его можно как угодно, а не только Button1Click. Связь между событием и обработчиком события должен установить программист, либо в Design Time в инспекторе объектов, либо в Run Time, упомянутым в [38] способом.
← →
AlexDan © (2009-02-10 22:25) [49]> Servy © (10.02.09 19:32) [48]
> Есть мнение, что если автор написал все "полностью" (как
> он выразился) от руки, и инспектор объектов не трогал, то
> при нажатии кнопки не будет ничего. Ну прям совсем ничего
> :).
Если проект(юнит) написать в "блокноте", потом перекинуть его(через буфер обмена, например) в юнит созданной формы с уже готовым "лицом" (кнопки и т.п.) и не трогать инспектор обьектов то не будет ничего, совсем ничего.. Именно это я и пытался всю ветку обьяснить..
← →
Сергей М. © (2009-02-10 22:32) [50]
> Именно это я и пытался всю ветку обьяснить
Кому ? Самому себе ?
Чьей "дикости" в таком случае ты поражался ?
И в чем все-таки виноват компилятор ?)
← →
AlexDan © (2009-02-10 22:40) [51]> Сергей М. © (10.02.09 22:32) [50]
> И в чем все-таки виноват компилятор ?)
В том, что я перебросил код (процедуру onClose) из одного проекта в другой, и пока я не прописал её в инспекторе обьектов она не инициализировалась, даже после указания FormClose из другой процедуры (ButtonClick)..
← →
AlexDan © (2009-02-10 22:43) [52]Ну да ладно, мать его так).
← →
Сергей М. © (2009-02-10 22:47) [53]Мда ..
Тяжелый случай)
← →
TAX (2009-02-10 23:03) [54]чем-то напоминает
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=60356
← →
Anatoly Podgoretsky © (2009-02-10 23:05) [55]> AlexDan (10.02.2009 22:40:51) [51]
onClose не процедура, а свойство
← →
AlexDan © (2009-02-10 23:20) [56]> TAX (10.02.09 23:03) [54]
Вот, спасибо, помоему да.
← →
AlexDan © (2009-02-10 23:26) [57]> TAX (10.02.09 23:03) [54]
И я видимо замечаю такие нестыковки, т.к. перешёл на делфи с турбопаскаля..).
← →
AlexDan © (2009-02-10 23:42) [58]Замечательная ветка, это оттуда:
"И совершенно правильно делаете. Боясь показаться скучной, могу попытаться пояснить, откуда взялась такая постановка вопроса. До вчерашнего дня я была уверена, что файл с расширением .pas -- это таки старый добрый честный Pascal, а все остальные файлы относятся к графической надстройке. К визуальной среде. Отсюда вывод: это от лукавого, а pas просто по-любому обязан компилиться. Но мир всегда сложнее нашего представления о нём."
← →
sniknik © (2009-02-10 23:44) [59]> И я видимо замечаю такие нестыковки
нестыковки????
-----------
купил колеса, положил в гараж, утром на работу ехать и не могу, колес на автомобиле нет...
ну их в общем то и не было, но почему новые, купленные на автомобиль не "наделись"? нестыковка однако. плохие автомобили еще делают...
← →
AlexDan © (2009-02-10 23:47) [60]> sniknik © (10.02.09 23:44) [59]
Вот именно, я ставил колёса какие надо, а кампиллятор сказал что их нет..
← →
AlexDan © (2009-02-10 23:49) [61]Прочтите внимательно ветку
> http://www.delphikingdom.com/asp/answer.asp?IDAnswer=60356
но и она лишь отчасти затрагивает тот вопрос, который я ставил.
← →
sniknik © (2009-02-10 23:55) [62]> Вот именно
не надо перевирать, другое написано.
ты их не ставил, ты их в гараж положил, а после сделал удивленное лицо - "а оказывается колеса принесенные в гараж вручную, а не привезенные своим ходом прикрученные к автомобилю, на автомобиль сами не надеваются!!! ааааа да что это делается на белом свете, ведь всем должно быть понятно купленные колеса должны там оказаться иначе зачем я их покупал?"
ты придуриваешься, или на самом деле ...?
← →
sniknik © (2009-02-10 23:58) [63]> Прочтите внимательно ветку
видишь там ягодки рядом с датой? знаешь что значат? это вопрос над которым все ржут... в разделе чтобы поржать, т.к. он настолько ламерский, что ни для чего другого годен.
← →
sniknik © (2009-02-10 23:59) [64]не годен.
← →
Сергей М. © (2009-02-10 23:59) [65]
> перешёл на делфи с турбопаскаля
Со времен ТрубоПаскаля многое, конечно, изменилось, но по-прежнему неизменно одно - для того чтобы подпрограмма получила управление, ее надо вызвать.
Дельфийский Инспектор Объектов всего лишь вуалирует вызовы.
← →
AlexDan © (2009-02-11 00:14) [66]Пример: Проект
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.show;
end;
end.
Копируем в буфер, закрываем проект без сохранения. Делаем новый точно такой-же проект (т.е. кнопка на первой форме открывает вторую). Стираем юнит один полностью. Вставляем на его место вышепреведенный кусок (из буфера). Компилируем - кнопка 1 не работает, форма 2 не вызывается.
← →
sniknik © (2009-02-11 00:16) [67]> Копируем в буфер
а dfm? почему копируем половину модуля?
← →
Сергей М. © (2009-02-11 00:17) [68]
> Компилируем - кнопка 1 не работает, форма 2 не вызывается
И что ?
Отсутствует вызов метода Button1Click, потому "не работает..не вызывается"
← →
AlexDan © (2009-02-11 00:18) [69]> sniknik © (11.02.09 00:16) [67]
Вот именно, об этом как говориться и бодались..).
← →
AlexDan © (2009-02-11 00:31) [70]до одури.).
← →
sniknik © (2009-02-11 00:31) [71]> Вот именно, об этом как говориться и бодались..).
бодались не с этим, бодались с ТОБОЙ, с твоим "умением" ставить вопросы (вот прочитай [0] и сравни с [66]), и понимать ответы (вот почему опять "вот именно"? у меня не подтверждение твоему посту, а указание о твоем упущении. и если ты даеш понять что понял должен был бы написать "да, был дурак, не понимал что копировал половинку от целого и все коверкал, а восстановить исковерканное не догадался, теперь исправлюсь, больше не буду.").
← →
sniknik © (2009-02-11 00:32) [72]> до одури.).
ну так веди себя адекватнее, и все наладится...
← →
{RASkov} © (2009-02-11 00:38) [73]> [66] AlexDan © (11.02.09 00:14)
> Копируем в буфер, закрываем проект без сохранения.
Причем тут буфер, при чем тут блокнот, при чем тут ИО и т.д......?
Ты так и не понял ничего :( Завязывай с программированием, это не твое :)
← →
AlexDan © (2009-02-11 00:41) [74]> sniknik © (11.02.09 00:31) [71]
Вообщем то да, просто перейдя с турбо паскаля, я не учитывал (точнее не обращал внимание) на такие вещи.
← →
AlexDan © (2009-02-11 00:43) [75]> {RASkov} © (11.02.09 00:38) [73]
Что же тут непонятного?)
← →
{RASkov} © (2009-02-11 00:49) [76]> [75] AlexDan © (11.02.09 00:43)
Судя по [66](!) посту(не малое кол-во :)) ты так и не понял "кухню" Делфи)
← →
AlexDan © (2009-02-11 00:51) [77]> {RASkov} © (11.02.09 00:49) [76]
То я привёл именно для примера, а понимаю всё прекрасно.).
← →
sniknik © (2009-02-11 00:59) [78]> а понимаю всё прекрасно.).
ну тогда ты это тщательно скрываешь... ну а так как это ты задал вопрос, и это тебе все пытаются объяснить, а ты все не показываешь, что хоть что то понял, вот и получается что "упирашся", с чем все и бодаются.
пока не надоело... а после будут тебя игнорировать.
← →
sniknik © (2009-02-11 01:00) [79]упирашся - упираешься
← →
Германн © (2009-02-11 01:00) [80]
> {RASkov} © (11.02.09 00:49) [76]
>
> > [75] AlexDan © (11.02.09 00:43)
>
> Судя по [66](!) посту(не малое кол-во :)) ты так и не понял
> "кухню" Делфи)
> AlexDan © (11.02.09 00:51) [77]
>
> > {RASkov} © (11.02.09 00:49) [76]
> То я привёл именно для примера, а понимаю всё прекрасно.
> ).
Вот мои любимые собачки тоже "понимают всё прекрасно". Но ...
:)
Страницы: 1 2 3 вся ветка
Текущий архив: 2009.05.03;
Скачать: CL | DM;
Память: 0.63 MB
Время: 0.022 c