如何为自动创建的控件写事件?(100)

  • 主题发起人 主题发起人 tom12345
  • 开始时间 开始时间
T

tom12345

Unregistered / Unconfirmed
GUEST, unregistred user!
如何为自动创建的控件写事件?
 
举例声明部分procedure PriorButtonClick(Sender: TObject);实现部分procedure TLabelControl.PriorButtonClick(Sender: TObject);begin if FFirstLabelIndexOnShow <= 0 then Exit; Dec(FFirstLabelIndexOnShow); RefreshLabels;end;调用部分FPriorButton := TButton.Create(Self);FPriorButton.OnClick := PriorButtonClick;
 
楼上的可以。
 
unit U_CreateShop;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,ExtCtrls,StdCtrls,Math,U_public,ComCtrls,Buttons;type TCB=class public constructor create_shop(namestr,enamestr,picstr,actionstr,pricestr,typestr:string;N_ScrollBox:TScrollBox); procedure MyClick(Sender: TObject);end;constructor TCB.create_shop(namestr,enamestr,picstr,actionstr,pricestr,typestr:string;N_ScrollBox:TScrollBox);var ima:Timage; bt:Timage; lbname:TLabel; lbaction:TLabel; lbprice:TLabel;begin if imacount=0 then //创建第一列的全部控件 begin //创建物品图片 ima := TImage.Create(N_ScrollBox); ima.Parent := N_ScrollBox; ima.left := 20; ima.Top:=imatop+ 8; ima.Width:= 66; ima.Height:= 66; ima.Picture.LoadFromFile(picstr); ima.onclick:=MyClick; //重点在这里~! end;procedure TCB.MyClick(Sender: TObject);begin showmessage(TImage(sender).name);end;有些细微改下
 
芙蓉弟弟,可以通过,但有一个问题,我把自动创建控件写在 Timer1Timer 事件中时,双击 Image 控件,有时会显示出错信息: Access violation at address 004034BC in module ......如何解决?
 
你的Timer 在創建完了以後有沒有關閉掉啊~~~
 
nolliman,Timer 是一直打开的。
 
我暈,你創完以後要把它關閉掉啊~~~~~你這樣一直打開,就一直在那裡運行啦,那肯定報錯啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
nolliman,你别暈,我要施时监控的!
 
我靠,說告訴你實時監控一定要用到timer 的啦~~~~~你直接用windows 的消息處理不就可以了!
 
你把你那段創建的代碼貼出來!!
 
nolliman, 如何用windows 的消息處理?
 
[:(]定義一個消息:const wmMyFirstMSG = WM_USER+$188;定義一個接收事件:procedure ShowmyMSG(var MSG :TMessage); message wmMyFirstMSG;當啟動該事件時要實現的代碼:procedure TForm1.ShowmyMSG(var MSG: TMessage);begin……end;調用改事件:SendMessage(form1.Handle,wmMyFirstMSG,555,222)ok ,完成啦~~~~~~~其餘的工作交給windows 的消息處理機制來處理~~~~~~~~~~~~~~~
 
多人接受答案了。
 
后退
顶部