A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #1 我是新手,现在有这样一个问题,请帮帮忙!!:我在一个memo的onkeydown中编写了一些处理的代码,完成了一些功能,现在需要把这些做成一个过程,可以在别的memo调用这个过程,也实现功能。我该怎么办,清说详细点,谢谢了!!!(50分)<br />如题!!
我是新手,现在有这样一个问题,请帮帮忙!!:我在一个memo的onkeydown中编写了一些处理的代码,完成了一些功能,现在需要把这些做成一个过程,可以在别的memo调用这个过程,也实现功能。我该怎么办,清说详细点,谢谢了!!!(50分)<br />如题!!
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #2 最好把你的代码贴出来。 要不,把代码中所有涉及到这个memo的变量,如memo1等改为TMemo(Sender)来用就可以区分了。 如果做成过程的话,肯定要传个参数来区分是哪个memo正在执行这段代码。 如上,一个sender参数也行。 干说不太爽,你还是贴你的代码吧。
最好把你的代码贴出来。 要不,把代码中所有涉及到这个memo的变量,如memo1等改为TMemo(Sender)来用就可以区分了。 如果做成过程的话,肯定要传个参数来区分是哪个memo正在执行这段代码。 如上,一个sender参数也行。 干说不太爽,你还是贴你的代码吧。
A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #4 我也没写什么特别的,就是看书看到这里了,自己验证一些memo的属性值, selstart,caretpos之类的,我刚才想到要是做成过程怎么做,自己找书没找到, 就在这里求教大家了!!
秋 秋风 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #5 就跟shangshang贴的差不多 一、在Memo1的事件里面用TMemo(Sender)代替Memo1,这样其他的Memo控件的相同事件 就可以直接用Memo1的事件处理过程。 二、另外写一个过程,带一个TMemo类型的参数,就行了。
就跟shangshang贴的差不多 一、在Memo1的事件里面用TMemo(Sender)代替Memo1,这样其他的Memo控件的相同事件 就可以直接用Memo1的事件处理过程。 二、另外写一个过程,带一个TMemo类型的参数,就行了。
A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #6 还是不太明白,关键是我要怎么使用呢??还请赐教!! 比如:我有好多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,怎样使用这个过程呢???
还是不太明白,关键是我要怎么使用呢??还请赐教!! 比如:我有好多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,怎样使用这个过程呢???
A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #8 我最不明白的就是调用了!! 什么时候调用呢?? 比如说在Memo50上有按键,我该怎么办??
D duckstar Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #9 把Memo50的onclick事件选择原来写了过程的memo的onclick事件就可以了。
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #10 你就不能把你的代码贴出来吗?或者说情你的需求,我们来给你写代码都比跟你解释省事儿
C chenqh Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #11 具体做法如下: 先定义一个过程,把所需要处理的代码写在当中。 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事件中.
具体做法如下: 先定义一个过程,把所需要处理的代码写在当中。 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事件中.
A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #12 to shangshang: 谢谢你的热心!但是我没有代码呀!! 我只是在看书的时候想到的问题呀!!也没有什么需求!!
A aming46 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #13 谢谢大家!! 总算明白了!! 谢谢大家对新手的指点!!!!