过程中的值引用问题,问过3遍了,还没解决

rcom10002 2003-11-26 03:14:55
过程:Memoreturn
目的:引用Memoo内容,并进行修改,把结果赋给Memon,但Memoo中的内容不改变。修改内容把"Lines[0]"替换成"REPLACETEXT"。

procedure TForm1.Memoreturn(var Memoo,Memon:TMemo);
var i,j,count: integer;
Memotemp: TMemo;
begin
Memotemp := TMemo.Create(self);
Memotemp.Assign(Memoo);//这里有问题,我开始使用的是Memotemp := Memoo;
//后来有人告诉我这样写,可系统提示can not assign a TMemo to a TMemo
count := 0;
for i := 0 to Memotemp.Lines.Count do
begin
for j := 1 to Length(Memotemp.Lines[i]) do
begin
if pos('Lines[0]',Memotemp.Lines[i]) <> 0 then
begin
Memotemp.SetFocus;
Memotemp.SelStart := pos('Lines[0]',Memotemp.Lines[i]) + count - 1;
Memotemp.SelLength := Length('Lines[0]');
Memotemp.SelText := 'REPLACETEXT';//进行替换
end;
end;
count := Length(Memotemp.Lines[i]) + count + 2;
end;
Memon.Lines.Text := Memotemp.Lines.Text;
end;
...全文
48 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiirii 2003-11-26
  • 打赏
  • 举报
回复
引用Memoo内容
Memotemp.Assign(Memoo);
修改為:
Memotemp.Text := Memoo.Text;

最後:
Memoo.Text := Memotemp.Text;
sundayboysII 2003-11-26
  • 打赏
  • 举报
回复
没有必要那么大费周章的,不用var就可用直接对memo操作,以为类是引用类型。
另外:Memon.Lines := Memoo.Lines,再接着修改Memon的Line就行了阿;
rockswj 2003-11-26
  • 打赏
  • 举报
回复
不用var就可以,因为是引用类型。
procedure TForm1.Memoreturn(Memon:TMemo);
直接操作Memon就可以了。传递参数的时候把你想操作的memo穿给Memon就可以了。
算法俺没看。:)
jhwh 2003-11-26
  • 打赏
  • 举报
回复
1、使用Memotemp.Assign(Memoo.Lines),把其中得内容拷贝到Memotemp中。
2、把修改后得Memotemp的lines assign 回 memoo

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧