![]() |
Delphi-Version: 2007
Komponenten entwickeln
Hallo Freunde!
Ich würde gerne mal Komponenten selber entwickeln. Ich denke im Moment an - für meinen Sinn - etwas einfaches: Ein TEdit das einfach beim Focus einen gelben Hintergrund hat, ist der Focus wieder weg, soll er wieder normal sein. Das selber ist auch kein Problem. Wie ist denn das nun, ich erstelle eine neue Komponente, und wähle als Basis TEdit aus. Hat meine Komponente dann automatisch alle Eigenschaften und Propertys vom TEdit? Oder muss man das alles von Hand nachprogrammieren? Wäre super, wenn mir jemand von euch auf die Beine helfen könnte Grüß Peter |
AW: Komponenten entwickeln
Zitat:
|
AW: Komponenten entwickeln
Wenn du von TEdit ableitest, dann ist natürlich alles vom TEdit auch enthalten.
Wobei man auch von TCustomEdit ableiten kann ... dort ist ebenfalls alles enthalten, aber noch nicht alle Eigenschaften im OI sichtbar. (vieles nur Public und noch nicht Published) PS: Viele Ereignisse haben eine überschreibbare Methode (Virtual). Wie z.B. OnClick sich oftmals hinter einer Methode ala Click oder DoClick versteckt, wo man dann seinen Code einbauen kann, ohne das Ereignis OnClick belegen zu müssen. |
AW: Komponenten entwickeln
Damit die aber zur Designtime überhaupt sichtbar wird, musst du die neue Komponente im Delphi registrieren.
Als kleiner Hack geht aber auch sowas:
Delphi-Quellcode:
hier mal am Beispiel vom Button. Dies solltest du im implementation-Bereich vor deiner Form schreiben.
TButton = class(StdCtrls.TButton)
strict private FFoo: string; published property Foo: string read FFoo write FFoo; end; Damit kannst du im Quellcode jederzeit auf die neuen Funktionalitäten zugreifen, hast aber zur Designtime immer noch den normalen TButton aus StdCtrls zum positionieren und grundlegendem einstellen. Dies ist hilfreich, wenn man mit paar dutzend Mann an ner Oberfläche entwickelt und man eben eine eigenen Komponente braucht, aber nicht jedesmal für alle dutzende die Komponente in Delphi auszutauschen, falls mal doch nen Bug drin ist. //EDIT: muss natürlich nicht zwingend strict private sein ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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-2025 by Thomas Breitkreuz