AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten entwickeln

Ein Thema von DelphiPeter · begonnen am 20. Aug 2011 · letzter Beitrag vom 22. Aug 2011
Antwort Antwort
DelphiPeter

Registriert seit: 21. Dez 2007
Ort: Iserlohn
198 Beiträge
 
Delphi 2010 Professional
 
#1

Komponenten entwickeln

  Alt 20. Aug 2011, 21:19
Delphi-Version: 2007
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
Peter Majewski
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Komponenten entwickeln

  Alt 20. Aug 2011, 21:40
Hat meine Komponente dann automatisch alle Eigenschaften und Propertys vom TEdit?
Genau das. Du leitest ja von TEdit ab.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Komponenten entwickeln

  Alt 20. Aug 2011, 21:42
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mezen

Registriert seit: 13. Jul 2011
Ort: Lippstadt
30 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Komponenten entwickeln

  Alt 22. Aug 2011, 08:54
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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