![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по определению формы MDI приложения и про расширение файла [D7, 95/98, XP]
Andrnow © (2009-01-05 04:42:00)Имеется программа с интерфейсом MDI (стандартный шаблон). В ней сначала через Главное меню-->файл-->Открыть открывается основной текстовый файл, а потом несколько дополнительных (т.е. первый открытый файл - основной, а все остальные - дополнительные). Как мне сделать так, чтобы основной файл нельзя было закрыть до закрытия всех дополнительных файлов?
Пытаюсь сделать это так:
procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (????????????????????????????) and (MDIChildCount<2) then
begin
MessageDlg('Закрыть основной файл можно только после закрытия всех дополнительных’,[mbOk],0);
Action:=caNone;
end;
end;
Вот только вместо вопросов нужно поставить условие на то, что в закрываемое дочернее окно был открыт основной файл. Подскажите, что туда написать.
И еще вопрос. Как сделать так, чтобы когда сохраняешь файл (через SaveDialog) к названию файла автоматически дописывалось расширение, выбранное из списка типа файла (что ниже поля, в которое нужно писать название файла)?
Andrnow (2009-01-05 21:00:00) [1]Спасибо. Сделал.
KilkennyCat (2009-01-05 06:18:00) [2]только, наверное, правильнее (MDIChildCount > 1)
KilkennyCat (2009-01-05 06:17:00) [3]1. можно еще воспользоваться свойством Tag, тогда:
.....
procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;
begin
.....
if создается основной then Child.Tag := 111 else Child.Tag := 0;
.....
end;
....
if ((Sender as TMDIChild).tag = 111) and (MDIChildCount<2) then
KilkennyCat (2009-01-05 06:08:00) [4]1. Я бы основному при создании добавил бы событие OnCloseQuery
2. Присвоить необходимое расширение свойству SaveDialog DefaultExt, при инициализации, а также при выборе типа файла в событии SaveDialog onTypeChange