怎样实现当我把光标(用鼠标)移动到一个EDIT上时EDIT的背景改变? 怎样实现当我把光标(用鼠标)移动到一个EDIT上时EDIT的背景改变? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可在edit组件的mousemove事件里编写edit1.backcolor:=你要的颜色;backcolor(这个属性我可能记错了) unit Unit1tmp;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TMainForm = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; private { Private declarations } FCurEdit: TEdit; procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE; public { Public declarations } end;var MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.CMMouseEnter(var Msg: TMessage);begin if TObject(Msg.LParam) is TEdit then begin FCurEdit := TEdit(Msg.LParam); FCurEdit.Color := clRed; end; end;procedure TMainForm.CMMouseLeave(var Msg: TMessage);begin if TObject(Msg.LParam) is TEdit then FCurEdit.Color := clWhite;end;end. 不用那么复杂吧,直接在中写就可以了。先判断一下,鼠标的坐标是不是在edit之内,如果是,再判断是否改过颜色,如果没有改,就改变颜色。如果鼠标不在edit之内,在判断是否改过颜色,如果改过,就改回来。 xzgyb(老达摩)的做法是正确的,是delphi处理类似问题的典型方案。还有就是可以写一个控件,从TEdit继承,增加MouseEnterColor属性、OnMouseEnter和OnMouseLeave事件,继承 procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;自己动手试试吧。这个帖子不要分。 delphi关闭并重新启动explorer.exe进程不影响打开的文件夹 delphi7的窗体最小化问题 怎么学delphi里的汇编啊? 高手帮忙看看!! 怎样在一篇文章里查找出现频率超过1次的词,并且统计出现次数 请问用TQuery获得的数据怎样转换到一个数组中去啊? dbgrid控件问题 多文档中子文档显示问题:如何使字窗体一打开就出现在主窗体中间紧挨工具栏,几积极机 WeekOfTheYear怎么用???急 TMemoryStream与BMP的问题 高分求Delphi开发的B/s结构的例子 谁有文件切割的代码?!
edit1.backcolor:=你要的颜色;
backcolor(这个属性我可能记错了)
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TMainForm = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
private
{ Private declarations }
FCurEdit: TEdit; procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
public
{ Public declarations }
end;var
MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.CMMouseEnter(var Msg: TMessage);
begin
if TObject(Msg.LParam) is TEdit then
begin
FCurEdit := TEdit(Msg.LParam);
FCurEdit.Color := clRed;
end;
end;procedure TMainForm.CMMouseLeave(var Msg: TMessage);
begin
if TObject(Msg.LParam) is TEdit then
FCurEdit.Color := clWhite;
end;end.
先判断一下,鼠标的坐标是不是在edit之内,如果是,再判断是否改过颜色,如果没有改,就改变颜色。
如果鼠标不在edit之内,在判断是否改过颜色,如果改过,就改回来。
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
自己动手试试吧。这个帖子不要分。