![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MDIChild [D5]
Chupa-chups © (2002-12-24 12:00:00)Свойство FormStyle формы многооконного приложения =fsMDIChild. При закрытии формы оно сворачивается. Если указать Action=caHide, то ошибка "Cannot hide an MDIChild form". Как спрятать форму??????
MXA (2002-12-24 14:41:00) [1]в крайнем случае можно делать DoHide
но лучше как написал Woolen
Woolen (2002-12-24 14:11:00) [2]Блин, пишешь обычный 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"ов.
myor (2002-12-24 13:47:00) [3]посмотри (переделай под себя и используй) mdiapplication из репозитория file>new>other>projects>mdiapplication
Chupa-chups (2002-12-24 12:49:00) [4]На второе Show ошибка Access violation...
jee (2002-12-24 12:43:00) [5]Я делал так:
При вызове формы
if PatientFormIsNotRunned then begin
PatientForm := TPatientForm.Create(MainForm);
****блабла***********
end
else PatientForm.Show();
myor (2002-12-24 12:37:00) [6]Action := caFree
потом show
потом опять
Action := caFree
потом опять show
Chupa-chups (2002-12-24 12:28:00) [7]Пояснение:В ходе реализации программы форма может вызываться не один раз и закрываться тоже.
mrcat (2002-12-24 12:21:00) [8]File -> New -> Other... -> Projects -> MDI Application
подробный пример по MDI
Chupa-chups (2002-12-24 12:17:00) [9]Но как её создать , если она потом снова понадобится?
jee (2002-12-24 12:05:00) [10]в событии формы OnClose ставть Action := caFree;