Когато форма A е модална и показва втора модална форма B и модалният резултат за B е зададен и B след това се затваря, A също е затворена.
Как може да се предотврати това?
Когато форма A е модална и показва втора модална форма B и модалният резултат за B е зададен и B след това се затваря, A също е затворена.
Как може да се предотврати това?
Това не е вярно, трябва да има някакъв друг проблем във вашия код. Настройка ModalResult
ще засегне само текущата модална форма. Опитайте този много прост пример:
Създайте нов формуляр
Пуснете бутон върху него
В манипулатора на събитието бутон OnClick
добавете този код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm1.Create(Self) do begin
if ShowModal = mrCancel then
Self.Color := RGB(Random(256), Random(256), Random(256));
end;
end;
Ще забележите, че всяко натискане на бутон създава нова модална форма и можете да повтаряте това толкова често, колкото желаете. Затварянето на формуляр ще зададе ModalResult
на mrCancel
и ще активира отново родителския формуляр. За да излезете от приложението, ще трябва да затворите всички формуляри, един по един, в обратния ред на създаване.