Текущий архив: 2008.02.24;
Скачать: CL | DM;
Вниз
Вопрос про Close Найти похожие ветки
← →
kiber-pilot © (2008-01-29 23:25) [0]Что будет, если у модальной формы в методе Close написать close?
← →
Плохиш © (2008-01-29 23:34) [1]А слабо самому проверить?
← →
homm © (2008-01-29 23:38) [2]Переполнение стека?
← →
Washington © (2008-01-30 11:11) [3]Подозреваю, что будет close )
← →
Ega23 © (2008-01-30 11:15) [4]вот интересно, а как ты собираешься у класса TForm в методе Close вызвать Close?
Чисто технически?
Генофонд полезешь править?
← →
Washington © (2008-01-30 11:24) [5]
> Ega23 © (30.01.08 11:15) [4]
+1
будет жесть, рекурсия :)
Не заметил сразу
← →
clickmaker © (2008-01-30 12:05) [6]
> kiber-pilot © (29.01.08 23:25)
> Что будет, если у модальной формы в методе Close написать
> close?
твой кибер-самолет войдет в штопор
← →
Anatoly Podgoretsky © (2008-01-30 12:18) [7]> clickmaker (30.01.2008 12:05:06) [6]
Наверно полез править генофонд, чтобы увидеть это.
← →
Washington © (2008-01-30 13:41) [8]
> Наверно полез править генофонд, чтобы увидеть это.
Бог ему в помощь
← →
homm © (2008-01-30 13:43) [9]> [8] Washington © (30.01.08 13:41)
> Бог ему в помощь
Сам то не далеко от горша ушел :(
← →
Washington © (2008-01-30 13:57) [10]
> homm © (30.01.08 13:43) [9]
не спорю, но до такого у меня не доходило :)
← →
{RASkov} © (2008-01-30 14:01) [11]> [10] Washington © (30.01.08 13:57)
> но до такого у меня не доходило :)
еще не вечер :)
← →
Washington © (2008-01-30 14:14) [12]
> но до такого у меня не доходило :)
...и, надеюсь, не дойдёт :)
← →
homm © (2008-01-30 14:41) [13]> [10] Washington © (30.01.08 13:57)
> не спорю, но до такого у меня не доходило :)
У тебя еще хуже.
← →
Washington © (2008-01-30 14:52) [14]
> homm © (30.01.08 14:41) [13]
обоснуй
← →
homm © (2008-01-30 15:00) [15]> [14] Washington © (30.01.08 14:52)
Уже обосновал.
http://delphimaster.net/view/2-1200477368/
← →
Washington © (2008-01-30 15:14) [16]А я обосновал, что не хуже
← →
kiber-pilot © (2008-01-30 20:22) [17]Самое интересное, что ничего не происходило, работало как и должно работать. Я случайно заметил эту ошибку.
← →
Loginov Dmitry © (2008-01-31 07:58) [18]> Я случайно заметил эту ошибку.
А где здесь ошибка? При вызове Close всего-навсего повторно изменяется переменная ModalResult:if fsModal in FFormState then
ModalResult := mrCancel
а уж потом значение переменной проверяется в цикле обработки сообщений данного окнаif ModalResult <> 0
приведет к выходу из цикла и закрытию окна. Никакой рекурсии.
← →
KSergey © (2008-01-31 09:49) [19]> Loginov Dmitry © (31.01.08 07:58) [18]
> А где здесь ошибка? При вызове Close всего-навсего
А при вызове Close из Close?
← →
Ega23 © (2008-01-31 10:06) [20]
> А при вызове Close из Close?
Всё ещё не понимаю, каким образом можно вызвать Close из Close без вмешательства в генофонд.
← →
Anatoly Podgoretsky © (2008-01-31 10:17) [21]Вполне если владеть ООП
← →
Ega23 © (2008-01-31 10:44) [22]
> Вполне если владеть ООП
Как???
← →
Ega23 © (2008-01-31 10:45) [23]
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure Close;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.Close;
begin
inherited Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
Всё равно 1 раз "тот самый Close" вызовется.
← →
Anatoly Podgoretsky © (2008-01-31 12:03) [24]> Ega23 (31.01.2008 10:45:23) [23]
Не так
TF1 = class(TForm)
public
procedure Close; reintroduce; virtual
end;
TF2 = class(TF1)
public
procedure Close; override
end;
procedure TF1.Close;
begin
Inherited;
end;
procedure TF2.Close;
begin
Close; <- вот оно
end;
← →
Ega23 © (2008-01-31 13:55) [25]
> Anatoly Podgoretsky © (31.01.08 12:03) [24]
да-а-а...
Снимаю шляпу. До этого не додумался...
← →
Anatoly Podgoretsky © (2008-01-31 14:36) [26]> Ega23 (31.01.2008 13:55:25) [25]
Я спас генофонд!!!
Страницы: 1 вся ветка
Текущий архив: 2008.02.24;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.04 c