Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.12.2010, 21:59
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Вопрос Как узнать какое mdi окно активно?

Драствуйте !
Подскажите пожалуйста как узнать какое mdi окно активно?
Заранее спасибо.
Ответить с цитированием
  #2  
Старый 05.12.2010, 00:45
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

ActiveMDIChild - свойство у TForm
TMDIChild - это Ваша MDI-форма -> TMDIChild = class(TForm)
Код:
if ActiveMDIChild<>NIL then begin
  if (ActiveMDIChild is TMDIChild) then begin
   (ActiveMDIChild as TMDIChild).Set_SyntaxType(tf,true);
   //и т.д.
  end;
end;
Ответить с цитированием
  #3  
Старый 05.12.2010, 20:52
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Вопрос

Не моогу понять какая имено переменная мне возращает значение(имя, тег) активного окна
Ответить с цитированием
  #4  
Старый 06.12.2010, 19:30
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Цитата:
Не моогу понять какая имено переменная мне возращает значение(имя, тег) активного окна
ActiveMDIChild (но это не переменная, а свойство).
Значение этого свойства - ссылка на соотв. объект (активное дочернее окно).
А поскольку дочернее окно имеет свои свойства и методы, то к ним можно обращаться, используя эту сылку:

(ActiveMDIChild as TMDIChild).ЗдесьСвойство(или_метод)
Ответить с цитированием
  #5  
Старый 06.12.2010, 19:51
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Примерно так:
Код:
//================================================               
//Модуль-1                    
type
  TMDIChild = class(TForm) //дочернее окно
  ...      
  public
    fFileName  : string;
  ...      
  end;
//================================================                                                                                                                                                                      
  

//================================================                                                                                                                                                                      
//Модуль-2                      
  type
  TMainForm = class(TForm)
  ...      
  private
  ...      
    procedure CreateMDIChild(const FileName: string); //Метод создания дочернего окна                                                                              
  end;
    
    
procedure TMainForm.CreateMDIChild(const FileName: string);
//Метод создания дочернего окна  
var
  Child: TMDIChild;
begin
  { create a new MDI child window }
  Child := TMDIChild.Create(Application);
  Application.ProcessMessages;
  ...      
  Child.fFileName := FileName;
  if FileExists(FileName) then begin
     Child.Caption := ExtractFileName(FileName);
  end
  else begin
     Child.Caption := FileName+'  - файл НЕ найден';
  end;            
  ...      
end;


//Кликнули по менюшке "Выбрать файл" (или что-то вроде этого)                                                                                                                         
procedure TMainForm.FileNew1Execute(Sender: TObject);
begin
  if OpenDialog1.Execute then begin //нашли файл (текстовый)                                                     
     CreateMDIChild(IntToStr(MDIChildCount+1)+'. '+OpenDialog1.FileName); //создали дочернее окно                                                     
     if ActiveMDIChild<>NIL then begin //проверили, что мы его создали и оно активно                                                                                                       
        if (ActiveMDIChild is TMDIChild) then begin //смотрим - это точно оно (дочерние окна могут ведь быть разные)                                                                                                              
           //----------------------------------------                                                                                               
           //Здесь делаем что-то еще, если надо                                                                                        
           (ActiveMDIChild as TMDIChild).Memo1.LoadFromFile(OpenDialog1.FileName); //загружаем текстовый файл в Memo1                                                                           
           ...                                    
           //----------------------------------------                                                                                               
        end;
     end;
  end;
end;

//================================================               
Ответить с цитированием
  #6  
Старый 06.12.2010, 21:27
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Радость

Большое спасибо теперь понял
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025