Добрый день!
Люди подскажите пожалуйста, как ВЫЗВАТЬ дочернюю форму в Delphi. Форма создана, ее нужно просто вызвать.
Следующий метод мне совсем не подходит:
procedure TfrMain.CreateChildForm
(const childName : string);
var Child: TfrChild;
begin
Child := TfrChild.Create(Application);
Child.Caption := childName;
потому что этот метод при каждом щелчке новую форму создает а потом ее вызывает, а мне нужно вызвать Мою готовую форму.
uses
Forms,
Main in 'Main.pas' {fMainForm},
CHILDWIN in 'CHILDWIN.PAS' {MDIChild},
about in 'about.pas' {AboutBox},
dmConteiner in 'dmConteiner.pas' {DataModule1: TDataModule},
uProducts in 'uProducts.pas' {fTMC};
ldv: Если я его уберу ... он безпрепятственно открывает при запуске и модальное окно... а мне нужно чтоб оно не появлялось пока я его не вызову ))) Сможем решить эту проблему ?
procedure TfrMain.CreateChildForm
(const childName : string);
var Child: TfrChild;
begin
Child := TfrChild.Create(Application);
Child.Caption := childName;
Этот метод при каждом щелчке открывает мне аналогичные окна, 10 щелчков, 10 одинаковых окон, а мне нужно чтоб оно Один раз мне Это окно открыло и все и если он открыть чтоб вторую третью копии его не открывал... )))
animr: как я сказал, можете сменить стиль формы и использовать autocreated. Или оставить MDI Child и завести глобальную переменную, где считать кол-во открытых окон и ограничивать их количество
begin
if fTMC = nil then
fTMC := TfTMC.Create(Application);
end;
procedure TfTMC.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
fTMC := nil;
end;
ldv: Тут умные люди говорят что этот стиль уже не моден ? ))) мы с тобой совсем не модные получается ))) Но воспользуюсь твоим методом... СПАСИБО ОГРОМНОЕ!!!
Как ни странно, создать форму один раз. А затем…
Показать — Show.
Спрятать — Hide.
Сделать модальный запрос (остальные формы временно неуправляемы, из функции не выходим, пока окно не закроется) — ShowModal.
Модальное окно используется, когда есть некий диалог и его надо во что бы то ни стало пройти, чтобы программа работала дальше. Например, запрос: «Сохранить: да/нет?»
MDI Child — это дочернее окно многодокументного интерфейса. Сейчас он не в моде и используется только когда документы — это различные виды на один «мегадокумент» или «проект». Порядком переделанный многодокументный интерфейс был во вкладках Opera Presto.
Ну да, не рекомендую. Если нужно сделать программно-модальное окно (т.е. блокирующее всю программу), берёшь самую обычную форму и ей ShowModal. «Окно-модальности» в Windows нет, и её придётся реализовать самому по наитию; скорее всего, вклеить некий компонент в окно, которое хотим «замодалить».