TO yostgxf 及所有高手DevExpress ExpressFlowCh控件使用 (50分)

  • 主题发起人 主题发起人 lhpgh
  • 开始时间 开始时间
L

lhpgh

Unregistered / Unconfirmed
GUEST, unregistred user!
TO yostgxf: 你好! 关于那个控件,我想再次向你请教一个问题:
如何在TdxFcItem类添加一个属性MyProperty:String; 就像其Text属性一样,可以自由定义并保存。因为TdxFcObject、TdxFcConnection为TdxFcItem的子类,所以它们也继承这个MyProperty属性。
我可以做到定义,并且可以写入,如下代码:
var
Ob:TdxFcObject;
begin
Ob:=chart.CreateObject(10,10,100,100,fcsRoundRect);
Ob.Text:='=你在他乡还好吗';
Ob.MyProperty:='lhp';
end;

可是当保存并退出来之时我想显示这个属性值,也就是说象Text属性一样仍可读出其值:
var
Ob:Tdxfcobject;
str,str1:string;
begin
Ob:=chart.SelectedObject;
if Ob<>nil then
begin
str:=Ob.text;
str1:=Ob.MyProperty;
end;
end;
可结果str='你在他乡还好吗' 而str1=null,不能正常读取。
为什么呢?如何在退出时正常保存其MyProperty属性值呢?
 
怎么没人回复呀,先顶一下了
 
不好意思,才看到。
我没明白你的意思,在TdxFcItem类添加一个属性MyProperty:String跟其它的组件没什么区别呀。
property MyProperty: string read GetProperty write SetProperty;
再做二个读/写处理的函数 GetProperty,SetProperty

这个组件本身就有Text属性的。
 
yostgxf,很高兴收到你的回复,谢谢。
我的意思就是:TdxFcItem的TdxFcObject、TdxFcConnection二个子类都继承了一个属性Text,其Text值在画图时生成并可随着图画一起通过流保存在数据库中,而我新增的那个MyProperty属性也想象TEXT属性一样添加其值并一起保存,以便下次打开时能像TEXT一样从数据库中读出并显示。也就是说,SetProperty的值该如何编写才能达到这样的效果。
在本例中我只是简单的地定义SetProperty的方法:
procedure TdxFcObject.SetLhp(value: string);
begin
if FMyProperty<>Value then
begin
FMyProperty:=value;
end;
end;
这个方法不能自动保存,那该如何写这个方法呢?
我的QQ:33234128 能否当面向你讨教?
 
呵呵,是这样的,你有没有发现它在过流保存时除了保存它的数据结构外,专门保存了Text的。例:1877行 WriteStr(Stream, Text);
所以,你要保存要么把你的属性放进它的结构中,要么在保存中自己保存
 
还有,我很少用QQ的
 
是的,我正是这个意思,想保存到属性到结构中,看到其方法如下:
procedure WriteStr(Stream: TStream; const S: string);
var
L: Integer;
begin
L := Length(S);
if L > $FFFF then L := $FFFF;
Stream.WriteBuffer(L, SizeOf(Word));
if L > 0 then Stream.WriteBuffer(S[1], L);
end;
不知是如何保存的,所以不知下手,那请问,我想保存到其结构中该如何写呢?
你有什么在线的联系方式吗?
 
跟这个函数没关系的,这个函数只是把文本写到流里面去。
1。直接调用这个函数写文本
2。把你的属性加到某一个结构中去,在结构变量赋值时的时候给它赋值,读结构变量时读它就行了。这样保存就跟其它的参数一起保存了。

对不起[:(],我现在在上班,要联系只能在晚上。如果还没解决晚上加你QQ
 
yostgxf, 真不好意思,我到现在还没有搞出来,看来晚上得耽误你一些时间了。
晚上没其它原因的话,我的QQ:33234128在线等待你的指教。谢谢
 
谢谢了,yostgxf 大侠
 
后退
顶部