为什么动态指定事件处理程序不好使?(100分)

  • 主题发起人 主题发起人 Soar
  • 开始时间 开始时间
S

Soar

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TF_Connect.Button1Click(Sender: TObject);
var
MyDDEClientConv: TDDEClientConv;
MyDDEClientItem: TDDEClientItem;
begin
MyDDEClientConv:=TDDEClientConv.Create(F_connect);
MyDDEClientItem:=TDDEClientItem.Create(F_connect);
MyDDEClientConv.ConnectMode:=ddeManual;
MyDDEClientConv.SetLink('Excel','[Book1]Sheet1');
MyDDEClientItem.DdeConv:=MyDDEClientConv;
MyDDEClientItem.DdeItem:='R1C1';
MyDDEClientItem.OnChange:=MyOnChange;
if not MyDDEClientConv.OpenLink then MessageDlg('DDe error',mtconfirmation,[mbOk],0);
end;

Procedure TF_Connect.MyOnChange(Sender: TObject);
begin
MessageDlg('我现在好使了:)我叫做DDEItem-'+TDDEClientItem(Sender).DdeItem,mtconfirmation,[mbOk],0);
end;

其中:F_Connect(TF_Connect)是我的窗体!
------------------------------------
不知道为什么连接的时候明明好使,因为看到了我设置的提示,但当我在Excel中改变R1C1
的数据时,却一点反映也没有。
但类似的代码用在Text1控件中却好使。都是动态生成的控件,怎么会这样?
 
补充一下,整个程序的其他窗体上有非动态创建的控件。
不知道我的代码是不是受它的影响?
(我想不会吧,哎,这时候佛能帮我我就信佛了。实在是奇怪啊)
 
DDE最好配上粘贴板才好使!?
 
Soar:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
没办法,看来大家对DDE都没什么好的办法!算我花钱打水瓢了
 
后退
顶部