我写了一个控件,部分代码形式如下:
TMyControl=class(TWinControl)
private
FFreshhotkey: string;
published
property Freshhotkey string read FFreshhotkey write FFreshhotkey;
end;
我在create方法中写了一句话:FFreshhotkey:='F5'。
我写好控件后,建了一个工程,使用这个控件,Freshhotkey的值一开始是'F5',有一次我把值擦空,出现了一个我意想不到的结果,我运行程序,Freshhotkey的值是'F5',而不是空(我希望是空)。我保存工程,下次打开时,Freshhotkey的值也是'F5'。
我开始不知道怎么回事,后来知道,原来delphi在dfm窗体文件中不保存空值的属性。我把在属性的定义后加了一个default 'F5',delphi编译通不过,default不支持string类型。
请问各位高手如何解决这个问题?
TMyControl=class(TWinControl)
private
FFreshhotkey: string;
published
property Freshhotkey string read FFreshhotkey write FFreshhotkey;
end;
我在create方法中写了一句话:FFreshhotkey:='F5'。
我写好控件后,建了一个工程,使用这个控件,Freshhotkey的值一开始是'F5',有一次我把值擦空,出现了一个我意想不到的结果,我运行程序,Freshhotkey的值是'F5',而不是空(我希望是空)。我保存工程,下次打开时,Freshhotkey的值也是'F5'。
我开始不知道怎么回事,后来知道,原来delphi在dfm窗体文件中不保存空值的属性。我把在属性的定义后加了一个default 'F5',delphi编译通不过,default不支持string类型。
请问各位高手如何解决这个问题?
解决方案 »
- delphi操作数据库问题
- 请问该如何访问一个web上的mdb文件,急
- 郁闷了,Delphi怎么创建一个VPN连接?
- 12天11通宵!1次初试3次面试。临走时居然都不说让我等通知!!!极度悲伤!散分!!!
- apache服务器的调试
- 生成安装程序后BDE错误?????
- 求delphi7开发corba的详细步骤
- 麻烦大家一个问题,我编的一个程序,为什么在数据量小的时候,没有出错,而数据量超过20000的时候会出错呢?
- 除ado外,怎样不通过bde来访问数据库呢
- 哪里有DELPHI5企业级解决方案及应用剖析的配套光盘下载。
- 我怎么找不到TSpinEdit组件?
- 如何提高打开数据库的速度?(ADO方式,具体版)
constructor create(aowner:Tcomponent);override;
property Freshhotkey string read FFreshhotkey write FFreshhotkey stored False;
我的意思是给用户一个初始值,用户不改,属性值是初始值;
用户把它改为'F6',属性值是'F6';
用户把它改为空,属性值是空。
谢谢回复。
这个控件有一个缺省值,是‘F5’。使用控件的人,不需要这个值,而是要求为空,所以在delphi IDE环境下设计时把‘F5’擦掉,但是运行程序这个属性又变成'F5'了。
我开始担心大家不明白,所以我写的很详细,想不到还是没有写好。抱歉抱歉。
如果你不把它定义成string类型,我想这个问题是可以解决的,另外你这是个快捷键用string好像不太合适吧?
函数试试
private
FFreshhotkey: string;
published
property Freshhotkey string read FFreshhotkey write FFreshhotkey default 'F5';
end;
你还是在构建函数里写吧。
要不就定义一个热键集合,就像 dxBar 中定义热键那样做。
使用SetFreshHotKey,我没有试出来,你是如何实现的?