鎽樿嚜BCB鐨勪緥瀛?瓚婄湅瓚婃湁鐐硅糠緋?榪樿秺瑙夊緱niubility.鍍忚瀵熻呭張鑲畾涓嶆槸,瀹炲湪鏄墰...
Main.cpp:
//----------------------------------------------------------------------------
//Borland C++Builder
//Copyright (c) 1987, 1998-2002 Borland International Inc. All Rights Reserved.
//----------------------------------------------------------------------------
//-------------------------------------------------------------------------
// minicomp.cpp - uses the TCounter example component
//-------------------------------------------------------------------------
#include "minicomp.h"
#include <stdio.h>
#include <stdlib.h>
#include <condefs.h>
//-------------------------------------------------------------------------
USEUNIT("counter.cpp");
//---------------------------------------------------------------------------
main()
{
TExample example;
return 0;
}
//-------------------------------------------------------------------------
TExample::TExample()
{
TCounter Counter(7);
int i;
//鎶婃帶浠禖ounter鐨勬帴鍙Multiple鍜屽閮ㄥ疄鐜癕ultipleReached榪炴帴涓?/span>
Counter.OnMultiple = MultipleReached;
for (i=0; i < 100; i++)
Counter.Increment();
}
//-------------------------------------------------------------------------
void TExample::MultipleReached(TCounter *Sender)
{
printf("Multiple=%d reached with val=%d\n", Sender->Multiple, Sender->Val);
}
//-------------------------------------------------------------------------
minicomp.h:
//-------------------------------------------------------------------------
// minicomp.h - uses the TCounter example component
//-------------------------------------------------------------------------
#include "counter.h"
//-------------------------------------------------------------------------
class TExample
{
private:
void MultipleReached(TCounter *Sender);
public:
TExample();
};
//-------------------------------------------------------------------------
counter.h:
//-------------------------------------------------------------------------
// counter.h. - example of a small, non-visual counter component
//-------------------------------------------------------------------------
class TCounter; // forward
typedef void (__closure *TCounterEvent)(TCounter *Sender);
//-------------------------------------------------------------------------
class TCounter
{
private:
TCounterEvent FOnMultiple; //榪欏氨鏄釜鍑芥暟鎺ュ彛
int FVal;
int FMultiple;
public:
__property int Val = {read=FVal, write=FVal};
__property int Multiple = {read=FMultiple};
__property TCounterEvent OnMultiple = {read=FOnMultiple, write=FOnMultiple};
void Clear();
void Increment();
TCounter(int Multiple);
};
//-------------------------------------------------------------------------
counter.cpp:
//-------------------------------------------------------------------------
// counter.cpp - example of a small, non-visual counter component
//-------------------------------------------------------------------------
#include "counter.h"
//-------------------------------------------------------------------------
TCounter::TCounter(int Multiple)
{
FMultiple = Multiple;
}
//-------------------------------------------------------------------------
void TCounter::Clear()
{
FVal = 0;
}
//-------------------------------------------------------------------------
void TCounter::Increment()
{
//榪欏彞鎵ц鏃墮兘鏄閮ㄦ潵璋冪敤鐨?姝ゆ椂OnMultiple宸茬粡鍜屽闈㈤偅涓嚱鏁版帴鍙h繛鎺ヤ笂浜?br> //涔熷氨鏄皟鐢ㄧ殑鍏跺疄鏄闈㈣繘鏉ョ殑閭d釜鍑芥暟,鎶妕his浼犲嚭鍘?璁╁閮ㄩ偅涓嚱鏁版搷浣?br> //TExample::MultipleReached(this)
if (((++FVal) % FMultiple) == 0)
OnMultiple(this);
}
//-------------------------------------------------------------------------

]]>