![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Большое спасибо теперь понял
|