冥界3大法王 发表于 2024-2-13 22:59

心得体会:

procedure TForm4.PopupMenuItemsClick(Sender: TObject);
begin
clipboard.setTextBuf(PChar(NewItem.Caption));
//JamExplorerBrowser1.Path := NewItem.Caption;                   //这么写不行!虽然不报错吧,但实现运行后发现只能成功第一次
JamExplorerBrowser1.Path := TMenuItem(Sender).Caption;//这样写OK!就能转到动态生成的菜单项里对应的路径去了。。。
end;

也就是说 (Sender). 这个对象里存的东西得到的才是活的实际情况。

DEATHTOUCH 发表于 2024-2-13 23:11

Sender就是触发这个回调函数的对象本身,就像你可以把多个按钮绑到同一个OnButtonClick函数,通过Sender就可以判断。
你甚至可以把不同的对象都绑同一个函数,然后利用is运算符判断,或者在try块用as运算符转换,利用对象的名称或者tag判断不同的对象。
不得不说Object Pascal的RTTI还是做的很不错的,非常适合GUI。

冥界3大法王 发表于 2024-2-14 07:58

DEATHTOUCH 发表于 2024-2-13 23:11
Sender就是触发这个回调函数的对象本身,就像你可以把多个按钮绑到同一个OnButtonClick函数,通过Sender就 ...

专家说得太对了。我得弄相关成功案例50个加深巩固,入库提高。

WJayden 发表于 2024-2-14 09:31

学习经验

刘统宝 发表于 2024-2-14 10:06

节日期间不忘学习,佩服佩服{:1_893:}

dork 发表于 2024-2-14 10:41

不用delphi好多年{:301_994:}
页: [1]
查看完整版本: 心得体会: