Tworzenie komponentu
//----------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "LED.h" #pragma package(smart_init) //----------------------------------------------------------------- static inline void ValidCtrCheck(TLED *) { new TLED(NULL); } //----------------------------------------------------------------- __fastcall TLED::TLED(TComponent* Owner) : TShape(Owner) { } //----------------------------------------------------------------- namespace Led { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(TLED)}; RegisterComponents("Samples", classes, 0); } } //-----------------------------------------------------------------Pierwsza funkcja, ValidCtrCheck, jest po to, żeby wykluczyć czysto wirtualne funkcje. Nie potrzebujesz tego zmieniać ani martwić się o to, ponieważ nie jest to w zasadzie częścią Twojego komponentu. Druga funkcja to konstruktor. Jest wywoływana w momencie umieszczenia komponentu na formie, więc wszelkie standardowe właściwości powinieneś ustawić właśnie tutaj. Trzecia funkcja rejestruje komponent. Przestrzenie nazw (Namespaces), pozwalają bibliotekom, a w tym przypadku komponentom, na używanie tej samej nazwy bez konfliktu (w zasadzie to trochę bardziej skomplikowane, ale nie musisz się wcale o to martwić). Klasa TComponentClass zawiera tablicę komponentów, które mają być zarejestrowane (w jednej funkcji Register możesz zarejestrować większą liczbę komponentów).
|