再次求救!在BCB中,动态建立的Timer如何定义其OnTime事件?(100分)

  • 主题发起人 主题发起人 Fairys
  • 开始时间 开始时间
F

Fairys

Unregistered / Unconfirmed
GUEST, unregistred user!
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TTimer *Timer1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TForm1::ShowCode()
{
ShowMessage("OK!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer1 = new TTimer(this);
Timer1->OnTimer() = ShowCode();
}
//---------------------------------------------------------------------------
 
procedure TForm1.MyTimerProc(Sender: TObject);
begin
ShowMessage('True');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FTimer := TTimer.Create(Self);
FTimer.OnTimer := MyTimerProc;
FTimer.Interval := 1000;
FTimer.Enabled := True;
end;
 
这是DELPHI的代码,我在DELPHI上都是这样做的,现在是在BCB中按着做就不行了!
 
补充一句,错误出以这一句中。
Timer1->OnTimer() = ShowCode();
 
Fairys:
你可以建立一个函数比如:
void __fastcall TForm1::Operatation(TObject *Sender)
{
// 代码在此
}
然后创建一个新的Timer1.如你上面所写:
Timer1 = new TTimer(this);
Timer1->OnTimer = Operation;
注意函数后面没有括号。
总结:
对于动态创建的控件,其响应函数比如鼠标响应等,可以创建一个函数和该控件本来的相应函数的
参数一样就可以了。
 
按beachboy的方法问题解决,多谢各位!
 
后退
顶部