Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

Активация MDI окна   Найти похожие ветки 

 
ikos ©   (2002-09-26 09:14) [0]

Доброе утро!
Суть проблемы : при повторном открытии MDI-child нужно, если оно уже открыто, активировать его.
Есть сообщение WM_MDICHILDACTIVE которое должно это делать, но что-то оно не так делает или я не так его юзаю. Если кто-то сталкивался с подобной проблемой помогите!


 
KSergey ©   (2002-09-27 11:05) [1]

Подробнстей как делал не помню - но вроде работает.
Ну и конечно переделать под свои нужды...

{******************************************************************************
* Создание дочернего MDI-окна
* Проверяет, создано ли уже окно указанного класса, если нет - создает, если
* да - активизирует ранее созданное.
* Вход:
* FormType - класс создаваемого MDI окна
* Title - заголовок окна
* Возвращает ссылку на созданное/активизированное окно.
******************************************************************************}

function CreateMDIChild(const FormType: TMDIChildClass): TMDIChild;
var
i: Integer;
flFound: Boolean;
begin
Result := nil;
flFound := False;
for i := 0 to MainForm.MDIChildCount-1 do
if MainForm.MDIChildren[i].ClassType = FormType then
begin
Result := (MainForm.MDIChildren[i] as TMDIChild);
Result.Show;
flFound := True;
end;
if NOT flFound then Result := FormType.Create(MainForm);
end;



 
KSergey ©   (2002-09-27 11:09) [2]

Поглядел внимательнее - однако продолжение/уточнение наверное требуется, если интересно (про TMDIChild)

////////////////////////////////////////////////////////////////////////////////
//
// Базовый класс для MDI Chaild окна
//
////////////////////////////////////////////////////////////////////////////////

unit Childwin;

interface

uses Windows, Classes, Graphics, Forms, Controls, StdCtrls, ComCtrls,
ToolWin, ExtCtrls, ActnList, ImgList;

type
TMDIChild = class(TForm)
ToolBar1: TToolBar;
ImageList1: TImageList;
ActionList1: TActionList;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

type
TMDIChildClass = class of TMDIChild;

implementation

{$R *.DFM}

{******************************************************************************
* При закрытии уничтожить окно
******************************************************************************}

procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

end.



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

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-21763
^Sanya
2002-10-07 21:41
2002.11.07
Кто-нить пробовал свою анкету редактировать?


14-21816
Igorek
2002-10-16 12:29
2002.11.07
А может программистам к власти прийти? ;-)


1-21665
Inan61
2002-10-26 21:26
2002.11.07
TListBox-сравнение и выделение


1-21555
Demon[DZ]
2002-10-29 16:26
2002.11.07
компонент!


6-21712
samson
2002-09-04 19:48
2002.11.07
Модемное соединение