![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение всех открытых документов в MDI приложении одним кликом [D7, XP]
Andrnow © (2009-01-05 21:18:00)Имеется программа с интерфейсом MDI (стандартный шаблон). В ней открывается несколько текстовых файлов. Как сделать так, чтобы при нажатии кнопки все измененные файлы сохранялись (ну или чтобы просто все файлы сохранялись не зависимо от того был файл изменен или нет)?
MsGuns (2009-01-13 15:28:00) [1]Худая мода - заставлять маму работать за дочек. У которых вполне достаточно своих средств для корректного завершения работы.
Например такая. При начале правки дочка поднимает некий свой флажок, а при попытке закрыть ее (хотя бы в CloseQuery) проверять его и пищать соотетственно.
При закрытии же мамаши посылать из нее же широковещательное сообщение дочкам, после чего проверять осталась ли хоть одна из них и , если да, то не закрываться.
И вообще - "правильный" интерфейс это когда главная форма ничего (или почти) ничего не знает обо все остальных :)
clickmaker (2009-01-13 14:59:00) [2]> [11] Andrnow (13.01.09 14:51)
так MDIChildren[i] типа TForm
надо приводить к реальному типу
Andrnow (2009-01-13 14:51:00) [3]
> А если так:
> ...
> {TTwayFormWithMemo}(MDIChildren[I]).Memo1.Lines.SaveToFile(MDIChildren[I].
> Captio n)
Undiclared identifier: 'Memo1'
{RASkov} (2009-01-13 11:48:00) [4]> Так не работает:
> for I := MDIChildCount-1 downto 0 do
> MDIChildren[I].Memo1.Lines.SaveToFile(MDIChildren[I].Caption)
> ;
А если так:
...
{TTwayFormWithMemo}(MDIChildren[I]).Memo1.Lines.SaveToFile(MDIChildren[I].Captio n)
Плохиш (2009-01-13 10:57:00) [5]
> Так не работает:
>
Это, что, новое сообщение об ошибке? В какой версии введено?
Andrnow (2009-01-13 05:02:00) [6]
> KilkennyCat © (06.01.09 00:26) [5]
Ну и как???
Так не работает:
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Memo1.Lines.SaveToFile(MDIChildren[I].Caption);
AndreyV (2009-01-06 07:27:00) [7]> [2] Andrnow (05.01.09 21:33)
> С одним проблем нет. Активное окно сохраняю вот так.
Пусть окно сохраняет свои данные само.
И
> [5] KilkennyCat © (06.01.09 00:26)
Плохиш (2009-01-06 01:26:00) [8]
> У тебя появилась английская справка ?
Подсунули вражескую bds2006.
KilkennyCat (2009-01-06 00:26:00) [9]var
I: Integer;
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
MDIChildren[I]. ...;
end;
Игорь Шевченко (2009-01-05 22:59:00) [10]Плохиш © (05.01.09 22:44) [3]
> Для этого надо в справке по ActiveMDIChild нажать на "see
> also..."
У тебя появилась английская справка ?
Плохиш (2009-01-05 22:44:00) [11]
> Но этот код сохраняет содержимое активного окна. А как
> сохранить содержимое неактивного окна?
>
Для этого надо в справке по ActiveMDIChild нажать на "see also..."
Andrnow (2009-01-05 21:33:00) [12]С одним проблем нет. Активное окно сохраняю вот так.
if not (ActiveMDIChild = Nil) then
if ActiveMDIChild is TMDIChild then
begin
TMDIChild(ActiveMDIChild).Memo1.Lines.SaveToFile(TMDIChild(ActiveMDIChild).Capti on);
end;
end;
Но этот код сохраняет содержимое активного окна. А как сохранить содержимое неактивного окна?
Хорошо, спрошу по другому: Как обратиться к компоненту Memo НЕактивного дочернего окна?
И еще тогда вопрос. Предположим в модуле дочернего окна у меня есть переменная. Как мне считать/изменить эту переменную из модуля основного окна?
Сергей М. (2009-01-05 21:20:00) [13]
> Как сделать так, чтобы .. все
Т.е. с каким-то одниму тебя проблем нет ?