>1
一个控件a里面包含有一个TMonthCalendar控件,我想在TMonthCalendar显示时能够显示在最前端,即能够全部显示,现在的问题是有部分被其他控件挡住了(不是控件a),如何使其能够全部显示出来,我用了bringtofront没有效果>2
如何在鼠标离开TMonthCalendar时TMonthCalendar控件自动隐藏,烦请写句代码
一个控件a里面包含有一个TMonthCalendar控件,我想在TMonthCalendar显示时能够显示在最前端,即能够全部显示,现在的问题是有部分被其他控件挡住了(不是控件a),如何使其能够全部显示出来,我用了bringtofront没有效果>2
如何在鼠标离开TMonthCalendar时TMonthCalendar控件自动隐藏,烦请写句代码
解决方案 »
- 一个关于quickrep的问题
- 如果使bit类型的数据在DBGrid中显示表面字串,在线等!!!
- 非常感谢您能在百忙之中帮我解决几个问题!
- 哪位哥能指导一下,用quickreport做报表,怎样能作成横着的,
- 我制作的安装文件安装后运行正常,但是调用帮助文件.hlp时总是提示找不到文件,为什么?
- Mediaplayer1与TrackBar1
- 关于MDI窗口的一点小问题
- 请问怎样用Animate 控件调用AVI 文件,谢谢
- 请教GlobalSCAPE中的那个队列框是如何实现的???
- delphi 用流文件读取bmp到数组后,怎么把数组的值打印出来?
- 求獲取一個從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.上面多人说了,隐藏是没问题,不过你要考虑什么条件下恢复