AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Eigene Komponete mit Feldern für Livebinding anzeigen?

Eigene Komponete mit Feldern für Livebinding anzeigen?

Ein Thema von Mavarik · begonnen am 7. Jan 2015 · letzter Beitrag vom 7. Jan 2015
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.024 Beiträge
 
Delphi 10.3 Rio
 
#1

Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 15:08
Hallo Zusammen!

Ich habe eine eigene Komponente (FMX) erzeugt.

Delphi-Quellcode:
type
  TMyEdit = class(TEdit)
    private
     FC : string;
    public
      property CoolesFeld : String read FC write FC;
  end;
Der Livebinding Designer hat ja die Felder von TEdit (Text) sofort sichtbar.
Wie bringe ich es Ihm bei, sofort mein Feld auch darzustellen ohne jedes mal mein Feld über den Dialog erst sichtbar zu schalten?

Mavarik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.794 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 15:27
Das Zauberwort heisst RTTI

http://blogs.embarcadero.com/jimtier...12/10/01/31653
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 15:44
Delphi-Quellcode:
  Data.Bind.Components.RegisterObservableMember(
    TArray<TClass>.Create(TMyEdit), 'CoolesFeld', 'FMX');
Allerdings kann man nur eine Property angeben, du überschreibst also damit die Text Property von TEdit.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.024 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 15:54
Ahh genau...

Danke... Das hatte ich schon in einer anderen Komponente verwendet...

Was ist nicht so ganz verstehe ist das TAG

[ObservableMember('Position')]

den ein   Data.Bind.Components.RegisterObservableMember(TArray<TClass>.Create(TMyEdit), 'CooleFeld', 'FMX');
Reicht schon um es im VisialLiveBinder sofort zu zeigen.. und ein TEdit hat ja die Observer Geschichte schon dabei...

Oder?

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.024 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 15:55
Delphi-Quellcode:
  Data.Bind.Components.RegisterObservableMember(
    TArray<TClass>.Create(TMyEdit), 'CoolesFeld', 'FMX');
Allerdings kann man nur eine Property angeben, du überschreibst also damit die Text Property von TEdit.
OK und wenn ich 10 Property's habe?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 16:26
Properties

ObservableMemberAttribute über der Klasse sollte dir den Code ersparen, richtig.

Aber wie gesagt, ist das so implementiert, dass das dann die DefaultProperty fürs Binding ist, welche afaik vom VLB Designer genutzt wird.
Zumindest darüber kannst du ihm nicht mehr als eine Eigenschaft mitgeben. Meine Vermutung ist, dass das nur über explizites ... anklicken geht, mehr als eine Eigenschaft anzuzeigen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.024 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 18:02
Properties

ObservableMemberAttribute über der Klasse sollte dir den Code ersparen, richtig.

Aber wie gesagt, ist das so implementiert, dass das dann die DefaultProperty fürs Binding ist, welche afaik vom VLB Designer genutzt wird.
Zumindest darüber kannst du ihm nicht mehr als eine Eigenschaft mitgeben. Meine Vermutung ist, dass das nur über explizites ... anklicken geht, mehr als eine Eigenschaft anzuzeigen.
Naja die PrototypeBindSource kann es sogar on the fly, wenn Du ein neues Feld erzeugst ist es sofort da!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Eigene Komponete mit Feldern für Livebinding anzeigen?

  Alt 7. Jan 2015, 20:13
Properties

ObservableMemberAttribute über der Klasse sollte dir den Code ersparen, richtig.

Aber wie gesagt, ist das so implementiert, dass das dann die DefaultProperty fürs Binding ist, welche afaik vom VLB Designer genutzt wird.
Zumindest darüber kannst du ihm nicht mehr als eine Eigenschaft mitgeben. Meine Vermutung ist, dass das nur über explizites ... anklicken geht, mehr als eine Eigenschaft anzuzeigen.
Naja die PrototypeBindSource kann es sogar on the fly, wenn Du ein neues Feld erzeugst ist es sofort da!
Dann schau doch selber in die Sourcen der PrototypeBindSource
Aber ich vermute eher, dass es im Designer Code steckt, ob er dort eine Eigenschaft anzeigt oder mehrere.

Edit: Hab mal in den VLB Designer geschaut. Die Einträge, die man bei ner PBS sieht, sind TGeneratorFieldDef Instanzen der PBS (sieht man auch im OI, wenn man sie anklickt).
Die werden etwas anders gehandhabt, als simple Eigenschaften von nem TEdit.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 7. Jan 2015 um 20:59 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 08:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf