_CALI,
Cita:
Empezado por _CALI
Tal vez no fui muy claro, pero lo que quiero es que el panel se muestre siempre el ultimo sitio del Z orden.
|
Esta aplicación implementa tu requerimiento:
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Forms1: TMenuItem;
Form21: TMenuItem;
Form31: TMenuItem;
Form41: TMenuItem;
Exit1: TMenuItem;
Panel1: TPanel;
procedure Form21Click(Sender: TObject);
procedure Form31Click(Sender: TObject);
procedure Form41Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Exit1Click(Sender: TObject);
private
FPanelWndProc: TWndMethod;
procedure PanelWndProc(var M: TMessage);
public
end;
var
Form1: TForm1;
implementation
Uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Windows.SetParent(Panel1.Handle, ClientHandle);
FPanelWndProc := Panel1.WindowProc;
Panel1.WindowProc := PanelWndProc;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Panel1.WindowProc := FPanelWndProc;
end;
procedure TForm1.PanelWndProc(var M: TMessage);
var
P: ^WINDOWPOS;
begin
if M.Msg = WM_WINDOWPOSCHANGING then
begin
P := Pointer(M.LParam);
P.hwndInsertAfter := HWND_BOTTOM;
end;
FPanelWndProc(M);
end;
procedure TForm1.Form21Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Form31Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.Form41Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
El código anterior mantiene
el TPanel en el Orden Z mas inferior, permitiendo que el TPanel siempre este visible y nunca se superponga a un MDIChild.
Todo el código de control esta en el MDIForm, no hace falta colocar ningún código adicional en los MDIChild. Quizás esta solución pueda ser adaptada a tu proyecto.
La aplicación implementada esta en el siguiente link:
http://terawiki.clubdelphi.com/Delph...+MDI+Forms.rar
Espero sea útil
Nelson.