Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.52 MB
Время: 0.025 c
3-1191933250
Still Swamp
2007-10-09 16:34
2008.02.24
Проблема с блоб полем.


15-1200506129
TStas
2008-01-16 20:55
2008.02.24
Чем открывать файл электронной книги djvu?


2-1201684617
Washington
2008-01-30 12:16
2008.02.24
string <-> TColor


2-1201436104
kast
2008-01-27 15:15
2008.02.24
Поиск нескольких позиций в бд


2-1201629376
Ega23
2008-01-29 20:56
2008.02.24
Собственный Action