AGB  ·  Datenschutz  ·  Impressum  







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

Objekteigenschaft übergeben?

Ein Thema von moelski · begonnen am 30. Nov 2009 · letzter Beitrag vom 7. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:18
Moin !

Gibt es eigentlich die Möglichkeit eine Objekteigenschaft direkt zu übergeben?

Wenn ich z.B. eine Procedure aufrufe mit HalloWelt(Edit1.text) dann kommt in der procedure nur der Text an den das Edit1 bereitstellt bzw. wird das wohl ein Zeiger sein
Anyway ... Besteht auch die Möglichkeit die Objekteigenschaft zu übertragen so das ich in der Procedure auch die zugehörige Klasse (TEdit) ermitteln kann und auch den Typ der Eigenschaft (in dem Fall String)? Und natürlich auch darüber den Wert auslesen ...
Wobei im Prinzip der Eigenschaftstyp und der Wert reichen würden.

Hoffe (mal wieder) ich habs einigermassen verständlich umschrieben
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:22
Du kannst deiner procedure einen Parameter vom Typ TComponent verpassen:

Delphi-Quellcode:
procdure HalloWelt(AComponent: TComponent);
begin
  if AComponent is TEdit then
    TEdit(AComponent).Text := 'Hallo, Welt!'
  else
    ShowMessage('Kein TEdit übergeben sondern folgende Klasse: ' + AComponent.ClassName);
end;

....
....


HalloWelt(Edit1);
HalloWelt(Button1);
etc...
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:36
Moin !

Zitat:
Du kannst deiner procedure einen Parameter vom Typ TComponent verpassen
Ok das würde auch funktionieren. Aber damit habe ich noch nicht den richtigen Eigenschaftswert. Den könnte man evtl. als String mitgeben und dann über RTTI (TypInfo) auslesen ob a) der Wert existiert, b) welcher Typ es ist und c) den Wert auslesen.

Hmm erscheint mir etwas kompliziert. Geht das nicht noch einfacher ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:42
Wie erkennst du einen "richtigen" Eigenschaftswert?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:49
Moin !

Zitat:
Wie erkennst du einen "richtigen" Eigenschaftswert?
Gute Frage. Über RTTI und eine Typbestimmung?

Aber da ich noch nichtmal weiss ob das mit den Eigenschaften so überhaupt irgendwie klappen könnte kann ich das nicht wirklich beantworten.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:50
Was du willst, das geht nicht

und der Trick mit den RTTI geht auch standardmäßig nur mit published Properties.

Zitat:
Gute Frage. Über RTTI und eine Typbestimmung?
die RTTI gibt den Pointer zur Setter- und Getter-Prozedur raus, soweit vorhanden,
den Namen des Property und dessen Typ.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:55
Moin himitsu,

ich habs ja schon fast befürchtet

Anyway danke für die Aufklärung

Zitat:
und der Trick mit den RTTI geht auch standardmäßig nur mit published Properties.
Ok das wäre gegeben. Naja mal sehen wie ich das nun löse.

Prinzipiell geht es um das "Problem" aus diesem Thread:
http://www.delphipraxis.net/internal...t.php?t=169459
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 21:55
Meine Frage zielte eher darauf ab, was du als die richtige ansiehst. Klar, über die RTTI kannst du einen übergebenen String mit den Namen der published Properties vergleichen, und selbst den Typ kann man glaube ich als String da raus holen. Für mich klang es erst so, als wolltest du irgend einen Automatismus haben, der eine (wozu auch immer) passende Eigenschaft automatisch ermittelt, deren Name bei Übergabe u.U. unbekannt ist.


Edit: Dein Vorhaben sieht diesem hier ziemlich ähnlich scheint mir.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 22:06
Moin Medium,

was ich ja im Grunde erreichen möchte ist folgendes:
ich möchte vom User erstallbare Verknüpfungen zwischen 2 Objekteigenschaften erreichen.

Bsp: wie auch im anderen Fred:
2 Edits. Das was in Edit 1 eingetragen wurde soll nach Enter in Edit 2 erscheinen.

In Code wäre das ein einfacher Aufruf von "Edit1.text := Edit2.text".
Aber das möchte ich eben für den User editierbar haben. Er soll also aus einer Art "Eingangsliste" Eigenschaften auswählen können die er dann anderen Objekten (bzw. deren Eigenschaften) zuordnen kann.
Und das sollte eben recht universell funktionieren also z.B. auch mit Integer werten.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Objekteigenschaft übergeben?

  Alt 30. Nov 2009, 22:18
Das würde ich mit einer nicht-visuellen Komponente lösen, die einen kleinen eigenen Property-Editor mit bringt. Ich hatte da die Tage so ein Ding in der Hand, dass alle auf dem Formular liegende Kompos hat auflisten können, sowie ihre published Properties. Das war Teil einer OPC-Komponentensammlung, wo Eigenschaften direkt angebunden wurden, so dass man selbst kein Polling betreiben muss um die Werte zu aktualisieren. Bei dir wäre die Quelle dann nicht ein OPC Unterbau, sondern eine andere Komponente.

Dieser Editor + Auflistung der Kompos und Eigenschaften ist aber nur die halbe Miete. In dem verlinkten Thread ging es schon darum, wie man nun generisch die Änderung einer beliebigen Eigenschaft einer prinzipiell unbekannten Komponente erkennen kann, und DA liegt dann auch der Hund begraben.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:52 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