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

Вниз

Активация 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-21579
Semion
2002-10-30 07:16
2002.11.07
набор


4-21891
vinni2000
2002-09-24 12:05
2002.11.07
Как узнать занят ли файл другим приложением


1-21641
TarantuL
2002-10-27 15:19
2002.11.07
Можно ли послать ProcessMessages от имени другого преложения?


7-21832
natalinka
2002-09-06 09:18
2002.11.07
выключить компьютер


4-21861
Diamond Cat
2002-09-24 18:55
2002.11.07
куда исчезают ресурсы?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский