Komponenten


TWindowSavePos TWorkDisplay TNetResource_Info TAutoStart
   
TStatusBarTimer TDigits TUniqueRandom TExtendedStringGrid
   
TChangeScreen
       
TChangeScreen THexEdit TNumericEdit TSelectDir
       
Special Folder
       
TCheckListBox TUserCombo TUserEdit TSpecialFolders
       
TFileVersionData TPing TLinkLabel TWatchDir

Komponeten sind eine feine Sache. Durch die Klassenstructur der VCL kann man seine eigenen Komponenten schnell und relativ problemlos erstellen. Will man z.B. das Edit-Eingabefeld seinen Bedürfnissen anpassen leitet man eine neue Komponente von der Klasse TCustomEdit ab, und kann dann die gewünschten Eigenschaften und Methoden hinzufügen.

Alle Komponeten entalten den Quellcode. Sie können somit problemlos eigenen Bedürfnissen angepasst werden oder Fehler können berichtigt werden (für Meldungen wäre ich dankbar).Auf den Seiten der Komponeten werden alle neuen Eigenschaften erläutert.

Installation der Komponenten

Die Installation kann auf zwei Arten erfolgen, je nach dem wie die Komponente ausgeliefert wird. Gundsätzlich kann die Komponente im Quelltext vorliegen, als *.obj compilierter Quelltext oder bereits fertig compiliert als sogenanntes Package. Eine Komponente muss immer in einem Package landen. Komponenten die mit Quelltext geliefert werden haben üblicherweise kein Package. Ein Package ist eine Datei mit der Endung *.bpl (siehe Quicky 20)

Installation mit Quelltext

Üblicherweise sollte der Autor bei mehreren Quelltextdateien mitteilen, welches die ist, die zu installieren ist. Ist nur eine Quelltextdatei vorhanden erübrigt es sich. Je nachdem woher man die Komponente hat, können *.cpp, *.c, *.pas Quelltextdateien sein. Letzteres sind Delphidateien, die auch installiert werden können, bei denen es aber zu Problemen bei compilieren kommen kann.

Nach dem download der Komponente sollte man diese auspacken und in einen Ordner ablegen. Wo spielt letztendlich keine Rolle, aber es hat sich bewährt, jede Komponente in einen eigenen Ordner zu legen und dort auch nur diese zu verwalten. Ist das geschehen, ist der Installationsdialog aufzurufen:

Komponente installieren

Wie bereits oben erwähnt muss jede Komponente in ein Package. Im C++Builder gibt es bereits ein "vorgefertigtes" Package. Es trägt den Namen dclusr.bpk und ist in dem Dialog bereit unter "Name des Package" eingetragen. Will man also kein neues Package anlegen belässt man diese Eintragung. Ansonsten wechselt man die Registerkarte auf "In neues Package" und erstellt ein Neues. Im Normalfall ist das aber nicht notwendig

Unter dem Eintrag "Name der Unit" geht man nun in den Ordner, wo die downgeloadede Komponente abgelegt ist, und gibt dort die Quelltextdatei vor. Nun sollte der C++Builder fragen, ob das Package neu kompiliert werden soll. Da sollte man "Ja" wählen

Compilieren

Tauchen jetzt Fehler auf, so liegen diese wohl an der Komponente. Das kann vielfältige Ursachen haben. Die Komponente ist mit einer anderen C++Builder Verion erstellt. Ist mit Delphi gemacht und nicht kompatibel u.v.m. Jedenfalls sollte ein Fenster wie das folgende auf dem Arbeitsbereich erscheinen.

Ergebnis

Hier sind die im Package vorhandenen Komponenten aufgeführt. Ist das Compilieren erfolgreich gewesen, so ist jetzt das Package über den Button "Installieren" zu installieren. Dann sollte die Komponente sichtbar werden. War das Compilieren nicht erfolgreich und auch Änderungen im Quelltext haben nichts gebracht, sollte die Komponente über "Entfernen" wieder aus dem Package entfernt werden. Dann das Package compilieren und installieren.

Unter welcher Registerkarte die Komponente erscheint, hängt ebenfalls vom Autor ab irgendwo im Quelltext sollte folgende Passage zu finden sein:

//---------------------------------------------------------------------------
namespace Changescreen
{
	void __fastcall PACKAGE Register()
	{
		TComponentClass classes[1] = {__classid(TChangeScreen)};
		RegisterComponents("User", classes, 0);
	}
}
//---------------------------------------------------------------------------

Der rot gekennzeichnete Teil gibt an wie die Registerkarte heisst, in der die Komponente angezeigt wird. Wenn man will kann man das abändern -> neu compilieren -> neu installieren.

Alle Komponenten von dieser Website mit Ausnahme des TExtendedStringGrid können so installiert werden.

Installation mit compiliertem Quelltext

Die Installation läuft genauso ab, jedoch wird unter dem Eintrag "Name der Unit" der Name der *.obj Datei vorgegeben. Manchmal kann eine Komponente nicht compiliert werden, aber der schon compilierte Quelltext läßt sich installieren. Aus diesem Grunde sind bei meinen Komponenten auch immer die *.obj Dateien dabei, obwohl das vielleicht nicht nötigt ist.

Installation als Package

Wenn die Komponente größer wird und sehr umfangreich wird, sollte man als Autor überlegen, ob man nicht ein Package liefert. Ein Package ist daran erkennbar, dass es eine *.bpl Datei hat. Über den folgenden Dialog ist dieses zu installieren:

Package

Über den Button "Hinzufügen" wird das Package ausgewählt und installiert. Die Liste in der Mitte zeigt bereits installierte Packages. Über "Entfernen" kann ein Package wieder entfernt werden.

Wer Fehler findet oder Verbesserungen vornimmt kann mir gerne die geänderte Version zumailen. .