![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Драствуйте !
Подскажите пожалуйста как узнать какое mdi окно активно? Заранее спасибо. |
#2
|
|||
|
|||
![]() 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
|
||||
|
||||
![]() Не моогу понять какая имено переменная мне возращает значение(имя, тег) активного окна
|
#4
|
|||
|
|||
![]() Цитата:
Значение этого свойства - ссылка на соотв. объект (активное дочернее окно). А поскольку дочернее окно имеет свои свойства и методы, то к ним можно обращаться, используя эту сылку: (ActiveMDIChild as TMDIChild).ЗдесьСвойство(или_метод) |
#5
|
|||
|
|||
![]() Примерно так:
Код:
//================================================ //Модуль-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
|
||||
|
||||
![]() Большое спасибо теперь понял
![]() |