我是指在封装基于 TEdit 的组件的时候.
目前它只会把其中的文字变成灰色,背景仍是白色的. 如果里面没有文字,那么看起来跟 Enabled=True 时没有两样,不便于提示用户.
谢谢指教!
目前它只会把其中的文字变成灰色,背景仍是白色的. 如果里面没有文字,那么看起来跟 Enabled=True 时没有两样,不便于提示用户.
谢谢指教!
解决方案 »
- webbrowser 关闭问题
- 关于Tchart画图的问题?急
- 讨论:怎么使界面更美化,更简洁,不用第3方主件
- 调用WINDOWS下应用程序的问题!
- 请问NMUDP组件中用到的TMemory中流的操作方法?
- idhttp ssl Connection Closed Gracefully困扰好几天了
- dao是什么?怎么通过他连接sql数据库啊!!
- delphi如何实现IObjectSafety接口让自己写的控件相对IE为安全控件
- 关于FormulaOne的sheetname使用问题
- 在delphi中如何繁简互换?
- 关于DBCOMBOBOX与表的一致性问题?求教
- 关于自定义属性在MDI窗体中的使用问题。
edit1.Color := clgray;
edit1.Enabled := false; 是在实例的代码中写edit1.Color := clgray; 是在封装阶段写. 我的意思是,对这个新的组件,它自己能够根据其Enabled的状态来自动设置color.
edit1.color := clgray
procedure TmyEdit.SetEnabled(Value:Boolean);
begin
Enabled:=Value;
if Enabled then
Color:=clGray
else
Color:=clWhite;
Repaint;
end;
property Enabled: Boolean read FEnabled write SetEnabled;编译到上面的第二行时出错,说:
[Error] myEdit.pas(60): Field or method identifier expected
procedure也不缺呀,不知总是在哪?
你可以定义一个新的名字
比如NewEnabled
然后在读写操作里更改控件本身的enabled属性
不过,不能直接操纵Enabled,还是有点遗憾。
wParam
Specifies whether the window has been enabled or disabled. This parameter is TRUE if the window has been enabled or FALSE if the window has been disabled.
lParam
This parameter is not used.
...
procedure SetEnabled(Value: Boolean); override;
...
end;procedure TMyEdit.SetEnabled;
begin
inherited; if Value then
Color := clWhite
else
Color := clGray;
end;
谢谢大家.结帖!