开发工具:Delphi 6
遇到的情况:form1上有一个image1(Align=alClient),有一个toolbar1,
一开始,form1.FormStyle=fsNormal,运行,窗体显示正常;但是,当我把form1.FormStyle设置为fsMDIForm后,运行,
iamge1与toolsbar1之间竟然空出一段距离,
据观察,宽度等于toolsbar1的Height。这是为什么呢?是否是Delphi 6的bug?要怎样解决呢?
遇到的情况:form1上有一个image1(Align=alClient),有一个toolbar1,
一开始,form1.FormStyle=fsNormal,运行,窗体显示正常;但是,当我把form1.FormStyle设置为fsMDIForm后,运行,
iamge1与toolsbar1之间竟然空出一段距离,
据观察,宽度等于toolsbar1的Height。这是为什么呢?是否是Delphi 6的bug?要怎样解决呢?
这方面的贴子很多的。
最上面
然后你在看看
怎么不去删没结帐的?
如果在Delphi3上用,那么连那个Image也出不来!你现在好歹还能看到个Image也真是运气够好的了!! :)
这种问题的解决你可以:
1、去找一个叫MDIBackground的控件,它可以用于在MDIForm上加背景图;
2、手工绘图。
!!真的?太夸张了吧!不过我发现了一个办法,就是加一个panel,问题可以解决,
但是,加panel后,所有的子窗体都显示不出来,有什么办法吗?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FClientInstance,
FPrevClientProc: TFarProc;
procedure ClientWndProc(var Message: TMessage); public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.ClientWndProc(var Message: TMessage);var
MyDC: hDC;
Ro, Co: Word;
begin
with Message do
case Msg of
WM_ERASEBKGND:
begin
MyDC := TWMEraseBkGnd(Message).DC;
for Ro := 0 to ClientHeight div Image1.Picture.Height do
for Co := 0 to ClientWIDTH div Image1.Picture.Width do
BitBlt(MyDC, Co * Image1.Picture.Width, Ro * Image1.Picture.Height,
Image1.Picture.Width, Image1.Picture.Height,
Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
Result := 1;
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;end.
但安你这么那么说的把Align=alTop就行呀
用panel不错,可是要怎么把子窗体显示出来呢?
在panel上放这个image align=alclient
就不会有缝隙了
我用过这个方法,确实不会有空隙,但是子窗体显示不了了。
要怎么办?
begin
Self.OnResize(Sender);
end;procedure TForm1.FormResize(Sender: TObject);
begin
image1.Left:=0;
image1.Width:=Self.ClientWidth;
image1.Top:=0;
image1.Height:=Self.ClientHeight;
end;