>1
一个控件a里面包含有一个TMonthCalendar控件,我想在TMonthCalendar显示时能够显示在最前端,即能够全部显示,现在的问题是有部分被其他控件挡住了(不是控件a),如何使其能够全部显示出来,我用了bringtofront没有效果>2
如何在鼠标离开TMonthCalendar时TMonthCalendar控件自动隐藏,烦请写句代码
一个控件a里面包含有一个TMonthCalendar控件,我想在TMonthCalendar显示时能够显示在最前端,即能够全部显示,现在的问题是有部分被其他控件挡住了(不是控件a),如何使其能够全部显示出来,我用了bringtofront没有效果>2
如何在鼠标离开TMonthCalendar时TMonthCalendar控件自动隐藏,烦请写句代码
解决方案 »
- 关于DevExpress问题:为什么菜单上的图标都被拉大,影响美观?
- 44分求delphi对SQL2000数据库做备份
- 动态链接库里能否放个时钟用来一直监控某些事情
- 100分!锁屏代码引发的背景图严重闪烁问题!!!!
- 急! !急! !急! !关于文件夹拷贝
- 如何响应TWebBrowser.OnBeforeNavigate2事件令网页重定向?
- 各位不好意思,前段时间大紧,所以有的贴没有及时结,请大家原谅。现在全结散分100
- 关于stringgrid使用?
- 这里有谁是上海大学的吗?
- 十万火急,关于拖动控件时的闪烁问题
- 求獲取一個從DLL裡面SHOW出來的窗體的圖標(只知道該窗體的Handle)
- 如何按回车键触发按钮的CLICK事件
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, AppEvnts, StdCtrls;type
tdd=class(TMonthCalendar)
private
procedure MouseLevel(var msg : TMessage);message CM_MOUSELEAVE;
end;
TForm1 = class(TForm)
MonthCalendar1: TMonthCalendar;
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
mc : tdd;
{ Private declarations }
public end;
var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
mc := tdd.Create(Self);
mc.Parent := Form1;
mc.Left := 100;
mc.Top := 100; // Application.OnMessage := Mymessage;
end;{ tdd }procedure tdd.MouseLevel(var msg: TMessage);
begin // if msg.Msg = CM_MOUSELEAVE then
Self.Visible := false;;
inherited;
end;
end.
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
OldProc:TWndMethod;
procedure NewProc(var Message:TMessage);
procedure ShowPos(X,Y:Integer);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.NewProc(var Message: TMessage);
var
NX,NY:Integer;
begin
if Assigned(OldProc) then
OldProc(Message);
if Message.Msg = WM_MOUSEMOVE then
begin
NX:=Message.LParamLo;
NY:=Message.LParamHi;
ShowPos(NX,NY);
end;
end;procedure TForm1.ShowPos(X,Y:Integer);
begin
Label1.Caption:=IntToStr(X);
Label2.Caption:=IntToStr(Y);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
OldProc:=Image1.WindowProc;
Image1.WindowProc:=NewProc;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(OldProc) then
Image1.WindowProc:=OldProc;
end;
用逆向思维,在移开的时候,也就是进入其它控件或者窗体的时候,因此,在这个控件四周之外的控件(一个或多个,视实际情况)里写MOUSEOVER事件,在事件里令这个TMonthCalendar隐藏即可。
2.上面多人说了,隐藏是没问题,不过你要考虑什么条件下恢复