![]() |
Eigene Komponente in KomponentenPalette aufnehmen
Für eine umfangreiche Datenbank-Anwendung wurde eine eigene DB-Grid-Komponente gebastelt.
Nennen wir sie mal "TDBEigenbauGrid". "TDBEigenbauGrid" hat alle Eigenschaften von "TDBGrid" geerbt und noch einige dazu erhalten. Soweit hätte man das auch erwartet. :) Mein Problem besteht jetzt aber darin, daß die Komponente nur in nicht-visueller Form genutzt wird. - Hm, wie erklär' ich das? Also: Immer wenn ein Formular, mit den sich darauf befindlichen visuellen Komponenten, dynamsich aufgebaut wird, dann findet auch "TDBEigenbauGrid" Verwendung. (Was auch einwandfrei tut). Jetzt will ich aber an anderen Stellen, da wo das Formular schon zur Entwicklungszeit fertig ist, die verwendete "TDBGrid" durch die eigene "TDBEigenbauGrid" ersetzen. Und da liegt mein Problem, denn es gibt in der Tool-Palette keine visuelle Komponente für "TDBEigenbauGrid" die ich auf das Formular ziehen könnte. Der Versuch, mir das Formular als Text anzeigen zu lassen und an der entsprechenden Stelle TDBGrid durch "TDBEigenbauGrid" zu erstzen scheiterte ebenfalls. --> ("object dbgErrorData: TDBGrid" wird zu "object dbgErrorData: TDBEigenbauGrid") Meine Frage: Wie weise ich der vorhanden Komponente noch eine visuelle Entsprechung zu? |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Damit die Komponente auch in der Komponentenpalette erscheint, benötigst du die Prozedur Register:
Delphi-Quellcode:
Procedure Register;
Begin RegisterComponents('MeineKomponenten',[TDBEigenbauGrid]); End; |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Danke.
Ähm, wo muß ich diese Procedure hinschreiben? |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Na in die Unit deiner abgeleiteten Komponente :zwinker:
|
Re: Eigene Komponente in KomponentenPalette aufnehmen
Ok. Das hat der Schätzer einwandfrei gemacht.
Leider wird meine "TDBEigenbauGrid" aber immer noch nicht in der Komponenten-Palette angezeigt. Was muß ich denn noch machen? |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Hast du ein Package erstellt (Entwurf- und Laufzeit) und installiert?
Frank |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Die Antworten sind etwas zu kurz. Zumindest für einen ohne Plan. :mrgreen: Also :
1. Neu -> weitere -> Package (hier schon auf richtigen Namen achten) 2. Hinzufügen (eigene Unit auswählen) 3. Compilieren 4. Installieren Zu beachten sind Punkt 3. und 4. Fehler beim Compilieren : klar. 4. Ist die Register-Prozedur vorhanden ist das Teil auch in der Komponentenpalette. Am besten gleich eigenen Reiter in die PageControl-Tabs reinmachen :
Delphi-Quellcode:
procedure Register;
begin RegisterComponents('Eigene', [TMyComp1,TMyComp2,TMyComp3]); end; |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Vielen Dank für die Ausführliche Antwort, Hansa.
Doch leider scheitere ich bereits an Punkt 1: Wenn mein Projekt offen ist, in dem ich den Code für die neue Komponente habe dann führt Neu -> weitere -> Package zu einer Zugriffsverletzung. Habe ich hingegen kein Projekt offen und mache Neu -> weitere -> Package dann passiert nichts. Gar nichts. Woran liegt das? |
Re: Eigene Komponente in KomponentenPalette aufnehmen
Die Komponente hat mit dem Projekt direkt nichts zu tun ! Also 1. alles schließen 2. neu -> weitere aber der Rest steht ja schon alles hier.
|
Re: Eigene Komponente in KomponentenPalette aufnehmen
:?:
Fühle mich allmählich e weng b'schränkt.... ICH starte D2005 und sehe die WillkomensSeite. Klicke Datei - Neu - Weitere dann unter Delphi-Projekte Package - ok. Die Reaktion der EntwicklungsUmgebung: In der Caption steht Package1 - Borland Delphi 2005 - Welcome Page SONST NICHTS! Ein Hinzufügen-Button gibt es nicht (jedenfalls nicht da, wo ich suche). Und von wegen Zitat:
ich bekomme gar keine Gelegenheit einen Namen einzugeben... Bin ich blöd? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz