AGB  ·  Datenschutz  ·  Impressum  







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

Komponente erstellen (TMyRadioGroup)

Ein Thema von MaBuSE · begonnen am 31. Mär 2014 · letzter Beitrag vom 3. Apr 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Komponente erstellen (TMyRadioGroup)

  Alt 2. Apr 2014, 14:58
Zitat:
//Eigenschaft im Objektinspektor
Im OI bringt die so erstmal nicht viel und das Beispiel würde auch ohne dieses Property funktionieren.

Wenn das OnClick via Event "ordentlich" extrern verfügbar sein soll, dann braucht man noch ein OnClickEvent in der Hauptkomponente, welches z.B. im ClearButtonClick aufgerufen wird.

Wenn der Button über den OI beinflussbar sein soll (z.B. Ändern der Caption),
dann muß diese Eigenschaft entweder ebenfalls als Property in die Hauptkomponente, wo die Getter und Setter den Wert dann an die Subkomponente weiterreicht (so kann man leicht und geziehlt nur einige Eigenschaften freigeben),
oder man muß dem OI sagen, daß er diese Komponente, welche er in dem Property vorfindet, ebenfalls verwalten soll (z.B. SetSubComponent).
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Apr 2014 um 15:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Komponente erstellen (TMyRadioGroup)

  Alt 3. Apr 2014, 10:01
Zitat:
//Eigenschaft im Objektinspektor
Im OI bringt die so erstmal nicht viel und das Beispiel würde auch ohne dieses Property funktionieren.
Jein. Das Beispiel funktioniert ohne die Zeile property ClearButton: TButton read FClearButton; .
Aber diese eine Zeile ist der einfachste Weg die Eigenschaften des Buttons zu ändern. z.B. Caption

Wenn der Button über den OI beinflussbar sein soll (z.B. Ändern der Caption),
dann muß diese Eigenschaft entweder ebenfalls als Property in die Hauptkomponente, wo die Getter und Setter den Wert dann an die Subkomponente weiterreicht (so kann man leicht und geziehlt nur einige Eigenschaften freigeben),
oder man muß dem OI sagen, daß er diese Komponente, welche er in dem Property vorfindet, ebenfalls verwalten soll (z.B. SetSubComponent).
Es gibt viele Wege nach Rom.

mit der Zeile property ClearButton: TButton read FClearButton; wird eine Eigenschaft ClearButton erzeugt. Diese enthält alle Eigenschaften des Buttons. Man kann sie mit dem + vor der Eigenschaft aufklappen. (siehe Screenshots im Anhang)

Das ist der schnellste Weg alle Eigenschaften zur Verfügung zu stellen.
Sicherlich nicht der beste, aber ein möglicher.
Wenn Du verhindern willst, z.B. MyRadioGroup1.ClearButton.Free; aufzurufen, kommst Du um "deinen" Weg nicht herum.
Aber dann hätte ich mehr als 10 Min. für das Beispiel gebraucht.

Wie das geht habe ich ja schon im Forum geschrieben:
http://www.delphipraxis.net/67231-ei...tml#post452312

Wenn das OnClick via Event "ordentlich" extrern verfügbar sein soll, dann braucht man noch ein OnClickEvent in der Hauptkomponente, welches z.B. im ClearButtonClick aufgerufen wird.
Stimmt.
Im Moment ist das OnClick Ereignis vorbelegt. Um es zu ändern müsste man im Quellcode z.B. folgendes schreiben:
Delphi-Quellcode:
...
  MyRadioGroup.ClearButton.OnClick := MeineNeueOnClickMethode;
...
Angehängte Grafiken
Dateityp: png Delphi_OI_01.png (3,2 KB, 7x aufgerufen)
Dateityp: png Delphi_OI_02.png (9,3 KB, 10x aufgerufen)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Komponente erstellen (TMyRadioGroup)

  Alt 3. Apr 2014, 10:11
Wie das geht habe ich ja schon im Forum geschrieben:
http://www.delphipraxis.net/67231-ei...tml#post452312
In dem Beitrag sind die Bilder falsch. Das ist wohl beim Umzug der DP auf das neue System passiert. Ist ja auch schon ein paar Jahre her. Ich habe die Moderatoren informiert und hoffe das sie die alten (richtigen) Bilder wieder einsetzen.

So sollte es aussehen:
...
Hier mal ein Beispiel zu einem "echtem" PropertyEditor:

Die Komponente TmyPersonComponent hat eine Eigenschaft Person die vom Typ TPerson ist.
Ich habe es mir einfach gemacht und TPerson vom Typ TPersistent abgeleitet. Im Prinzip geht auch TObject oder ein Record. Dann muß man aber die GetProperties Methode selbst implementieren, damit sich beim Drücken auf das [+] auch weitere Untereigenschaften öffnen.


Hier ist der Objektinspektor zu sehen.


Wenn man auf den [...] Button klickt öffnet sich der PropertyEditor.


Analog dazu kann man auch die Untereigenschaften von TPerson ändern
...
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  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 04: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