在做MDI程序时,如果在主窗口上添加一个Panel,并把它的Align设置成Client,当打开子窗口时子窗口会被Panel给全部遮盖,如何使子窗口不被Panel面板遮盖,请问哪位高手知道如何解决这个问题??
解决方案 »
- delphi中有关ADOquery和while语句
- databridge access violation ...read of address ...
- 多线程问题?
- delphi有没有带check的treeview
- 关于位运算问题!在线等待!!
- 谁知道在大富翁论坛发贴后,怎么看别人的回复?
- !!!!!!散分!!!!!!
- 堆栈问题
- 用Sendmessage给外部程序发文本的问题
- 请教:kxy(手举穿肠毒药,怀抱刮骨钢刀):使form1的position总在desktop center?
- 如何使程序最前方。
- 我下载了一套FlatStyle的控件,但好象不能获得焦点,只能用鼠标点啊?有什么其它的办法获得焦点吗?
画图?
写字?
procedure TMainForm.FormPaint(Sender: TObject);
var
TempCanvas: TCanvas;
begin
TempCanvas := TCanvas.Create;
try
TempCanvas.Handle := GetDC(ClientHandle);
with TempCanvas do
begin
Rectangle(10, 10, 50, 50);
TextOut(200, 200, 'Lilor');
end;
finally
ReleaseDC(ClientHandle, TempCanvas.Handle);
TempCanvas.free;
end;
end;
MdiForm.BringtoFront;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
to: lxpbuaa(桂枝香在故国晚秋) ————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
妙,极妙!
我猜想的!?高手指点~~~
呵,好久不见
begin
if ( PfrmUIForm <> nil )
and Assigned(PfrmUIForm^) then
begin
PfrmUIForm^.Close;
if Assigned(PfrmUIForm^) then
begin
Result := False;
Exit;
end;
end;
Result := True;
PfrmUIForm := nil;
end;procedure TfrmJMMain.UIFormDock;
Var
DockPos : TRect;
begin
{注:停靠的窗体要比pnlUIfrm宽加8高加26}
if ( PfrmUIForm <> nil )
and Assigned(PfrmUIForm^) then
begin
DockPos.Top := 0;
DockPos.Left := 0;
DockPos.Right := pnlUIfrm.Width; //pnlUIfrm为Panel名称
DockPos.Bottom := pnlUIfrm.Height;
PfrmUIForm^.Dock(pnlUIfrm , DockPos);
PfrmUIForm^.Show;
end;
end;显示窗体时这样用
if Not Assigned(frmJMBasedProList) then
begin
FreeUIForm;
frmJMBasedProList := TfrmJMBasedProList.Create(application);
PfrmUIForm := @frmJMBasedProList;
UIFormDock;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls;type
TMainForm = class(TForm)
mm1: TMainMenu;
ileF1: TMenuItem;
ileN1: TMenuItem;
pnl1: TPanel;
procedure ileN1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;implementationuses Unit2;{$R *.dfm}procedure TMainForm.ileN1Click(Sender: TObject);
begin
Application.CreateForm(TChildForm, ChildForm);
end;procedure TMainForm.FormCreate(Sender: TObject);
begin
Windows.SetParent(pnl1.Handle, ClientHandle); //加上这句
end;end.
要多窗口其实也可以放在Panel里啊:-)