Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Komponenten entwickeln (https://www.delphipraxis.net/162395-komponenten-entwickeln.html)

DelphiPeter 20. Aug 2011 20:19

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

Stevie 20. Aug 2011 20:40

AW: Komponenten entwickeln
 
Zitat:

Zitat von DelphiPeter (Beitrag 1118351)
Hat meine Komponente dann automatisch alle Eigenschaften und Propertys vom TEdit?

Genau das. Du leitest ja von TEdit ab.

himitsu 20. Aug 2011 20:42

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.

mezen 22. Aug 2011 07:54

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:
  TButton = class(StdCtrls.TButton)
  strict private
    FFoo: string;
  published
    property Foo: string read FFoo write FFoo;
  end;
hier mal am Beispiel vom Button. Dies solltest du im implementation-Bereich vor deiner Form schreiben.
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 00:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz