我是新手,现在有这样一个问题,请帮帮忙!!:我在一个memo的onkeydown中编写了一些处理的代码,完成了一些功能,现在需要把这些做成一个过程,可以在别的m

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

aming46

Unregistered / Unconfirmed
GUEST, unregistred user!
我是新手,现在有这样一个问题,请帮帮忙!!:我在一个memo的onkeydown中编写了一些处理的代码,完成了一些功能,现在需要把这些做成一个过程,可以在别的memo调用这个过程,也实现功能。我该怎么办,清说详细点,谢谢了!!!(50分)<br />如题!!
 
最好把你的代码贴出来。

要不,把代码中所有涉及到这个memo的变量,如memo1等改为TMemo(Sender)来用就可以区分了。
如果做成过程的话,肯定要传个参数来区分是哪个memo正在执行这段代码。
如上,一个sender参数也行。

干说不太爽,你还是贴你的代码吧。
 
我也没写什么特别的,就是看书看到这里了,自己验证一些memo的属性值,
selstart,caretpos之类的,我刚才想到要是做成过程怎么做,自己找书没找到,
就在这里求教大家了!!
 
就跟shangshang贴的差不多
一、在Memo1的事件里面用TMemo(Sender)代替Memo1,这样其他的Memo控件的相同事件
就可以直接用Memo1的事件处理过程。
二、另外写一个过程,带一个TMemo类型的参数,就行了。
 
还是不太明白,关键是我要怎么使用呢??还请赐教!!
比如:我有好多TMemo类的控件,我在Memo1中使用了Onkeydown事件,指定了过程
procedure TForm1.Memo1KeyDown(sender:Tobject; var Key: Word;
Shift: TShiftState);
begin
...
i:=Memo1.caretpos.x;
...
end;
秋月的第一条我能理解,第二条不太明白!!
1,新写的过程是什么样的呢?是完成原来的事件过程的功能(里面的Memo1等实
例名用Tmemo(sender)代替;
2,这个TMemo类型的参数在那里加呢??是不是替代掉原过程参数里的sender:Tobject;
3,对于其他的memo,怎样使用这个过程呢???
 
写一个通用过程,然后调用时用Sender作参数就行了!
 
我最不明白的就是调用了!!
什么时候调用呢??
比如说在Memo50上有按键,我该怎么办??
 
把Memo50的onclick事件选择原来写了过程的memo的onclick事件就可以了。
 
你就不能把你的代码贴出来吗?或者说情你的需求,我们来给你写代码都比跟你解释省事儿
 
具体做法如下:
先定义一个过程,把所需要处理的代码写在当中。
procedure MemoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
....
//这里将不能直接使用类似于Memo1或者Memo2这样的控件名称,而要换成 Sender As TMemo处理.
end;

将该过程赋值给各个Memo控件:
Memo1.OnKeyDown := MemoKeyDown;
Memo2.OnKeyDown := MemoKeyDown;
那么Memo1,Memo2将作为参数Sender传入MemoKeyDown事件中.
 
to shangshang:
谢谢你的热心!但是我没有代码呀!!
我只是在看书的时候想到的问题呀!!也没有什么需求!!
 
谢谢大家!!

总算明白了!!

谢谢大家对新手的指点!!!!
 
多人接受答案了。
 
后退
顶部