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

Вниз

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

 
Chupa-chups ©   (2002-12-24 12:00) [0]

Свойство FormStyle формы многооконного приложения =fsMDIChild. При закрытии формы оно сворачивается. Если указать Action=caHide, то ошибка "Cannot hide an MDIChild form". Как спрятать форму??????


 
jee ©   (2002-12-24 12:05) [1]

в событии формы OnClose ставть Action := caFree;


 
Chupa-chups ©   (2002-12-24 12:17) [2]

Но как её создать , если она потом снова понадобится?


 
mrcat ©   (2002-12-24 12:21) [3]

File -> New -> Other... -> Projects -> MDI Application

подробный пример по MDI


 
Chupa-chups ©   (2002-12-24 12:28) [4]

Пояснение:В ходе реализации программы форма может вызываться не один раз и закрываться тоже.


 
myor ©   (2002-12-24 12:37) [5]

Action := caFree
потом show
потом опять
Action := caFree
потом опять show


 
jee ©   (2002-12-24 12:43) [6]

Я делал так:
При вызове формы
if PatientFormIsNotRunned then begin
PatientForm := TPatientForm.Create(MainForm);
****блабла***********
end
else PatientForm.Show();


 
Chupa-chups ©   (2002-12-24 12:49) [7]

На второе Show ошибка Access violation...


 
myor ©   (2002-12-24 13:47) [8]

посмотри (переделай под себя и используй) mdiapplication из репозитория file>new>other>projects>mdiapplication


 
Woolen ©   (2002-12-24 14:11) [9]

Блин, пишешь обычный CreateForm, и она у тебя генерится. Засунь в нажатие кнопки или еще меню какого-то. TChildWnd в данном случае класс окна, которое ты лепишиь в Delphi визуально (или невизуально)
Типа этого:
procedure TMainWnd.CreateNewForm;
var
NewChildWindow: TChildWnd;
begin
NewChildWindow := TChildWnd.Create(Application);
NewChildWindow.Caption := "Новый документ";
end;

А в обработчике события OnClose дочерней формы пишешь: Action := caFree, потому что по умолчанию форма сворачивается и с ней, кроме свертки еще что-то можно сделать по вызову закрытия, вот одно из этого "что-то" - это уничтожение формы. Присвоение переменной Action значения caFree означает, что ты хочешь форму уничтожить.

procedure TChildWnd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

Все будет работать безо всяких там Access Violation"ов.


 
MXA   (2002-12-24 14:41) [10]

в крайнем случае можно делать DoHide
но лучше как написал Woolen



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
3-14931
atmamont
2002-12-12 00:47
2003.01.06
Посоветуйте что использовать для отчетов


1-15132
Explorer
2002-12-23 10:30
2003.01.06
Работа с датой


1-15117
Semyon
2002-12-21 15:14
2003.01.06
Как сделать чтобы фокусом ввода обладало только моё окно?


14-15235
nick-from
2002-12-14 12:59
2003.01.06
---|Ветка была без названия|---


8-15174
Atoll
2002-04-24 17:22
2003.01.06
Как отловить нажатие клавиши с мультимедийной клавиатуры