Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

i need help ... дочерные окна [D6, Win95/98]


:) ©   (2002-10-24 12:09:00) 

допустим есть процедура кнопки которая создаёт дочерное окно внутрях главного окна

procedure TForm1.SpeedButton1Click(Sender: TObject);
var NewForm: TForm;
begin
NewForm := TForm.Create(Form1);
NewForm.Parent := TWinControl(Form1);
NewForm.Visible := True;
end;

Как перехватывать события у этого окна ?
допустим как сделать так, что бы при получении этим окном фокуса, оно вызывало какую нибудь процедуру с нужными параметрами ?
... к примеру myProcedure(Индекс_этого_окна, "focus")
чё нить в этом роде ... и как оращаться с свойствам и методам этого окна ?


Игорь Шевченко   (2002-10-24 12:39:00) [1]

Ключевые слова: CreateParams, Loaded, CreateParented. Эта форма встраивается, как дочерняя, в другую форму. В качестве Parent"а очень удобно указывать панель. Я делал это для имитации Microsoft Management Console, где в зависимости от выбранного узла в TreeView слева, справа открывается нужная форма.


:)   (2002-10-24 12:24:00) [2]

ооо .. намутил маньяк :) ... бум разбираться чё тут :) ... спасибо


Игорь Шевченко   (2002-10-24 12:21:00) [3]

:) (24.10.02 12:15)

Всем некогда :-)

unit Applet1Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;

type
TfAppletMain = class(TForm)
Label1: TLabel;
ListView1: TListView;
private
FTempParent : TWinControl;
protected
procedure CreateParams (var Params : TCreateParams); override;
procedure Loaded; override;
public
constructor CreateParented (AOwner : TComponent; AParent : TWinControl);
end;

var
fAppletMain: TfAppletMain;

function CreateForm (AParent : TWinControl) : TCustomForm; stdcall;

procedure InitDll (AAppHandle : THandle); stdcall;

procedure ExitDll;

implementation

{$R *.DFM}

function CreateForm (AParent : TWinControl) : TCustomForm;
begin
fAppletMain := TfAppletMain.CreateParented (Application, AParent);
Result := fAppletMain;
Result.Show();
// Result.BringToFront();
end;

procedure InitDll (AAppHandle : THandle);
begin
Application.Handle := AAppHandle;
end;

procedure ExitDll;
begin
if Assigned(fAppletMain) then
fAppletMain.Release();
end;

{ TfAppletMain }

procedure TfAppletMain.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style OR WS_CHILD;
end;

constructor TfAppletMain.CreateParented(AOwner: TComponent;
AParent: TWinControl);
begin
FTempParent := AParent;
inherited Create (AOwner);
end;

procedure TfAppletMain.Loaded;
begin
inherited;
Align := alClient;
BorderStyle := bsNone;
BorderIcons := [];
Parent := FTempParent;
Position := poDefault;
end;

end.


Разбирайся


:)   (2002-10-24 12:15:00) [4]

спасибо за совет, но некогда :))
что их надо читать я и сам бы мог догадаться, мне ответ на мой вопрос надобен


Игорь Шевченко   (2002-10-24 12:13:00) [5]

Эта...книжки читать...Пачеко, Тейксейра - там как раз этот случай описан


Наверх

Титульная страница Поиск, карта сайта Написать письмо