线程代码中定义的tmemo,存不了文本。怪(50分)

  • 主题发起人 主题发起人 adrich
  • 开始时间 开始时间
A

adrich

Unregistered / Unconfirmed
GUEST, unregistred user!
一多线程代码中,需要用tmemo声明的变量做临时存贮多行文本用。结果运行下来,没有存上。是不是线程中不能这样使用Tmemo来存贮多行文本,到不一定用tmemo,这是我的习惯。这样处理有什么问题,请给出解决方案。谢谢!
procedure mythread.Execute;
var
tempmemo,magicmemo:Tmemo;
begin
tempmemo:=Tmemo.create(nil);
tempmemo.clear;
tempmemo.lines.add('abc');
tempmemo.lines.add('cdef');
for
//读tempmemo中特定内容。
end;
//for
end;
 
Tmemo是VCL对象,你还不如就用TStringList.
 
同一楼上的,TstringList不存在线程安全的问题,如果非要用
应加上 tempmemo.Parent:=.....
 
你的这个线程对像不能响应主线程消息自然什么都不能做
把他放在主线程中吧一样可以用的
 
线称同步
Synchronize
 
delphi中的控件vcl,都是进程级的!
 
感谢hfghfghfg,smj_9547,thx1180,wfzha,whtsuperant的热心帮助,中午我试试
 
谢谢各位大侠,
thx1180,wfzha是最先回答,也帮助我解决了问题
smj_9547让我学到新知识
并感谢hfghfghfg,whtsuperant的回答
 
后退
顶部