目的:在MEMO控件中显示结果,该行通过object存放进行下步处理所需数据.
问题:写入正常,但是,取出Tobject里的内容时出错,请问该怎么在这里取出数据?在combobox、treeview、checklistbox、listbox里用得很正常啊,到底错在哪了?请指教。
type
Pindustry = ^Tindustry;
Tindustry = record
indust_code:string;
end;
....procedure....
var
s:string;
indust:Pindustry;
begin
...
new(indust);
indust.indust_code:=s;
Memotest.Lines.AddObject('测试字串',Tobject(indust));
...
end;
end;//----------以上为写入,功能正常
showmessage(Pindustry(Memotest.Lines.Objects[0])^.indust_code);//到这里出错,取不出值来。PS:本想给500分的,可寒...最高只能给100:(((
问题:写入正常,但是,取出Tobject里的内容时出错,请问该怎么在这里取出数据?在combobox、treeview、checklistbox、listbox里用得很正常啊,到底错在哪了?请指教。
type
Pindustry = ^Tindustry;
Tindustry = record
indust_code:string;
end;
....procedure....
var
s:string;
indust:Pindustry;
begin
...
new(indust);
indust.indust_code:=s;
Memotest.Lines.AddObject('测试字串',Tobject(indust));
...
end;
end;//----------以上为写入,功能正常
showmessage(Pindustry(Memotest.Lines.Objects[0])^.indust_code);//到这里出错,取不出值来。PS:本想给500分的,可寒...最高只能给100:(((
解决方案 »
- 怎样是DBEdit变成和Edit一样?
- 关于cxGrid 列头上的"倒三角形"过滤按钮
- 请求帮助:我想写一个杀死进程的程序
- 一道面试题
- 请问常说的DELPHI语言是否指PASCAL语言?
- 如何屏蔽win2000信使服务的弹出信息,并且捕获信息
- 谁知道统计的那种图表怎么做出来的,就是我们经常看到的客户调查那种,熬了一个通宵都没搞定,谁能把这个问题给干了,分给谁。
- 串口API函数的使用问题
- ado/mts的olecheck(objectcontext.createinstance(....,..,..))
- 这样的文件是如何建立的?
- 哪位有关于TNCB的资料,或者给在下讲讲Netbios的作用?
- InterBase用户数问题
StrLst1.AddObject('测试字串',Tobject(indust));
Memotest.Lines.Assign(StrLst1);
showmessage(Pindustry(StrList1.Objects[0]).indust_code);
1、既然memo提供了addobject为什么不能正常使用呢?是我在使用的时候没用对吗?
2、为什么要通过Tstring这类东西来中转呢?
3、创建的StrLst1只有在调用完后才能释放,这样一来,感觉是memo中是一个花瓶来显示东西而已,不太爽。还有更好的方法吗?就死用memo提供的东西来做成不成?无论怎么样,还是先谢谢forgetter() 了,还有关注这个话题的朋友。分数不成问题,关键在解决问题还不算,还得弄清为什么。
Lines 正是 TStrings 类的,它并没有实现与 Object 有关的操作
实际调用过程是==>TStrings.AddObject==>TStrings.PutObject TStrings.PutObject(Index: Integer; AObject: TObject); virtual;
是个虚方法,它里面没有实现.TMemo里面使用的TStrings是TMemoStrings类
它既没有去实现AddObject也没有去实现PutObject.
你跟踪一下程序很容易看出来.
--------------------------------------------------------
其实代码可以改成这样 i:=Memo1.Lines.Add('测试字串');
Memo1.Lines.Objects[i]:=Tobject(indust);