Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Вниз

Понять не могу где ошибка   Найти похожие ветки 

 
Бук   (2003-01-16 14:06) [0]

Привет всем!
У меня вот какая проблемка. В 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;
) происходит ошибка. Понять не могу в чем дело. Может чего с кодом намудрил?


 
Chubais   (2003-01-16 14:19) [1]

>Понять не могу в чем дело
в том что Child_Window указывает не туда куда надо


 
Chubais   (2003-01-16 14:22) [2]

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) [3]

Вооружись лучше
TForm.MDIChildCount и TForm.ActiveMDIChild


 
Александр Спелицин   (2003-01-16 14:23) [4]

Надо так:
if Child_Window = nil then
begin
Child_Window:=TChild_Editor.Create(Self);
Child_Window.Editor.Lines.LoadFromFile(OpenDlg.FileName);
end;

а при закрытии окна:
Child_Window := nil ж


 
Бук   (2003-01-16 14:44) [5]

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 15:17) [6]

Вопрос решен. Тема закрыта. Всем спасибо! :))



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

Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-87062
Supreme
2003-01-05 20:44
2003.01.27
Vopros k LINUXOIDAM


14-87036
grab3
2003-01-10 16:39
2003.01.27
Help me please!!!


1-86885
Lexa
2003-01-13 00:06
2003.01.27
События


7-87156
Format
2002-10-26 22:08
2003.01.27
Вандальные юзеры


7-87161
Sindbad
2002-11-14 18:25
2003.01.27
Delphi in Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский