![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Понять не могу где ошибка [D7, WinXP]
Бук © (2003-01-16 14:06:00)Привет всем!
У меня вот какая проблемка. В MDI приложении мне необходимо проверить активно ли окно. Если активно и в RichEdit ничего нет, то загружает в активный RichEdit файл. Если же нет активных окон, то создаем оное и загружаем в него файл
Я пишу вот такой код:
procedure TElantra_frm.OpenFileACTNExecute(Sender: TObject);
begin
if OpenDlg.Execute then
begin
if Child_Window.Showing and (Child_Window.Editor.Lines.Text="") then
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
if not Child_Window.Showing then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
end;
end;
Но при попытке загрузить код в несуществующие окно
(строки:
) происходит ошибка. Понять не могу в чем дело. Может чего с кодом намудрил?
if not Child_Window.Showing then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
Бук (2003-01-16 15:17:00) [1]Вопрос решен. Тема закрыта. Всем спасибо! :))
Бук (2003-01-16 14:44:00) [2]To: Александр Спелицин
не, не.. Я окно создаю в меню "New". Еще раз привожу код (немного модифицирован) с более
подробными комментариями:
procedure TElantra_frm.OpenFileACTNExecute(Sender: TObject);
begin
if OpenDlg.Execute then
begin
Тут я смотрю создано ли окно по выбору пункта меню "New". Если окно создано, но в RichEdit нет текста, то загружаем файл в текущее окно
if Child_Window.Showing and (Child_Window.Editor.Lines.Text="") then
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
Тут я смотрю создано ли окно по выбору пункта меню "New". Если окно создано, но в RichEdit есть текст, то создаем новое окно и загружаем текст сюда
if Child_Window.Showing and (Child_Window.Editor.Lines.Text<>"") then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
Впринципе, это начало работы программы, когда ни одно из дочерних окон не открыто. Создаем новое окно, и загружаем в RichEdit файл
if not Child_Window.Showing then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
end;
end;
Этот код более-менее работает. Отрабатываются два последних условия. Но при попытке загрузить файл вактивное окно с "пустым" RichEdit создается ноое окно и файл загружается туда.
Почему это условие не срабатывает не могу понять
Александр Спелицин (2003-01-16 14:23:00) [3]Надо так:
if Child_Window = nil then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
а при закрытии окна:
Child_Window := nil ж
Chubais (2003-01-16 14:22:00) [4]if not Child_Window.Showing тута ты еще не создал окно, а уже к нему обращаешьсяthen
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;
Skier (2003-01-16 14:22:00) [5]Вооружись лучше
TForm.MDIChildCount и TForm.ActiveMDIChild
Chubais (2003-01-16 14:19:00) [6]>Понять не могу в чем дело
в том что Child_Window указывает не туда куда надо