Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Окна   Найти похожие ветки 

 
rimd   (2004-01-03 19:10) [0]

Друзья! Допустим у меня в проекте есть несколько форм, когда из одной формы вызываю другую надо чтоб первая была недоступна, т.е. аналог когда появляется МессагеБокс (т.е. Мессаге бокс выступает в роле второй формы).


 
Sphinx   (2004-01-03 19:18) [1]

Я не профессионал, но делаю так:

if FindWindow("TSecondForm", nil)=0 then
SecondForm:=TSecondForm.Create(Self);
SecondForm.ShowModal

при это в свойствах проекта SecondForm перемещаю в Available Form, что несколько экономит на мой взгляд память


 
rimd   (2004-01-03 19:47) [2]

Все дело в том, что мне ненадо создавать форму динамически, я просто открываю ее(Форм.Шоу), а иначе все виснет


 
mike-d ©   (2004-01-03 20:02) [3]

MessageBox - модальное окно. Вызывается примерно так: MsgBox.ShowModal - пока его не закроешь, вызывающая форма недоступна...


 
rimd   (2004-01-03 20:09) [4]

Не все так просто! Почему когда я закрываю модальное окно, то нужно два раза нажимать на крестик?


 
DDA ©   (2004-01-03 20:15) [5]

rimd (03.01.04 20:09) [4]
значит появилось два окна - одно на другом


 
rimd   (2004-01-03 20:26) [6]

И что делать если у меня три окна, первое вызывает модальное второе, а модальное второе вызывает модальное третье!?


 
mike-d ©   (2004-01-03 20:43) [7]


> И что делать если у меня три окна, первое вызывает модальное
> второе, а модальное второе вызывает модальное третье!?

Закрывай их в обратном порядке :)


 
Cash ©   (2004-01-04 01:25) [8]


// там, где надо вызвать
Var
SecondForm: TSecondForm;
begin
SecondForm:=TSecondForm.Create(Self);
// щас можно ввести нужные изменения дочерней формы, ТиПА OnCreate событие
// в дочерней форме предусмотри кнопку с ModalResult=mrOk
if SecondForm.ShowModal=mrOk then SecondForm.Free;
end;


 
Юрий Зотов ©   (2004-01-04 02:08) [9]

> Cash © (04.01.04 01:25) [8]

А если юзер нажал на "Отмену" и ModalResult получился равным mrCancel, то, значит, форму уже не нужно уничтожать, что ли?

И получаем утечку памяти...

Вот стандартная схема модального показа:

with TSecondForm.Create(nil) do
try
if ShowModal = mrOk then
begin
... // Что-то делаем (причем форма еще существует).
end
finally
Free // А здесь форма уже убита, причем при всех вариантах.
end;



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-49566
Denis
2004-01-06 14:40
2004.01.16
Как установить цвет RadioGroup.Caption отличным от Items


14-49762
PVOzerski
2003-12-24 10:23
2004.01.16
Федорино горе, или о забавных нелепостях в названиях программ


11-49473
Olgerd
2003-05-04 02:42
2004.01.16
Вопрос по MHFontDialog


3-49457
Layner
2003-12-11 12:17
2004.01.16
Может ли MS SQL Server 2000 (хр. процедура и т.п.) рассылать


3-49386
Patrick
2003-12-22 09:21
2004.01.16
Настройка Oracle.