AGB  ·  Datenschutz  ·  Impressum  







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

FindComponent auch für property ???

Ein Thema von Martin K · begonnen am 29. Apr 2006 · letzter Beitrag vom 30. Apr 2006
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

FindComponent auch für property ???

  Alt 29. Apr 2006, 18:12
Hi Leute,

kann man irgendwie auf eine property einer Komponente zugreifen, von der man nur jeweils die Strings hat ?

Also so etwas z.B.:
Delphi-Quellcode:
//Zuordnung:
FindComponent('Form1.Caption') := 'Test';

//auslesen:
var s: string;

s := String(FindComponent('Form1.Caption'));
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:15
Nein. Du kannst aber Hier im Forum suchenGetPropInfo aus der Unit TypInfo Informationen zu einer Published Eigenschaft ermitteln und mit Hier im Forum suchenSetStrProp dann ändern.

Such mal im Forum nach RTTI oder den oben genannten Funktionsnamen. Das Objekt selbst, musst du vorher mit FindComponent oder wie auch immer selbst finden.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:32
Hmm...

Dieser Code wird zwar kompiliert, löst aber eine Exception aus:
Delphi-Quellcode:

GetPropInfo(FindComponent('Form1'),'Caption');
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:33
Zitat von Martin K:
Hmm...
IMHO:

Delphi-Quellcode:

GetPropInfo((FindComponent('Form1') as TForm),'Caption');
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:37
Zitat von Spider:
IMHO:

Delphi-Quellcode:

GetPropInfo((FindComponent('Form1') as TForm),'Caption');
Löst auch eine Exception aus...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:39
Zitat von Spider:
GetPropInfo((FindComponent('Form1') as TForm),'Caption')[/delphi]
Anders geschrieben:
GetPropInfo((Form1.FindComponent('Form1'){...} Form1 hat nur unwahrscheinlich eine Komponente, die auch wieder Form1 heisst
da geht das doch besser:
GetPropinfo(Form1, 'Caption'); btw, es waere im Sinne der OOP, auf Form1 zu verzichten, und auf self zurueckzugreifen. Wenn eine aussenstehende Klasse die Eigenschaften setzen soll, so sollte die Instanz per Parameter mitgegeben werden. Aber Form1.Irgendwas zu verwenden.... *uarghs*

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:46
Zitat von JasonDX:
GetPropInfo((Form1.FindComponent('Form1'){...} Form1 hat nur unwahrscheinlich eine Komponente, die auch wieder Form1 heisst
da geht das doch besser:
GetPropinfo(Form1, 'Caption'); btw, es waere im Sinne der OOP, auf Form1 zu verzichten, und auf self zurueckzugreifen. Wenn eine aussenstehende Klasse die Eigenschaften setzen soll, so sollte die Instanz per Parameter mitgegeben werden. Aber Form1.Irgendwas zu verwenden.... *uarghs*

greetz
Mike
Ja, das mit Form1 war ja auch nur ein Beispiel.

Es sollte z.B. auch so gehen können:
GetPropInfo(FindComponent('Label1'),'Caption');
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:47
kannst du uns auch sagen welche Exception kommt? mir ist es eigentlich neu das Form1.FindComponent das Form1 findet, denn ein Form hat sich nicht selbst in seiner eigenen liste. Man sollte schon sicherstellen ob FindComponent auch was gefunden hat. Und wie bereits erwähnt wäre es auch sinnvoll zu wissen welche Fehlermeldung du bekommst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:53
Naja, bei Label1 kommt keine Exception....

Gut, dass mit Form1 habe ich verstanden - daran lag's wohl

Aber wie bekomme ich jetzt den String (TCaption) von Label1.Caption zurück?

So:
GetPropInfo(FindComponent('Label1'),'Caption').Name bekomme ich dann logischerweise 'Caption' zurückgeliefert...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#10

Re: FindComponent auch für property ???

  Alt 29. Apr 2006, 18:58
Zitat von Martin K:
Aber wie bekomme ich jetzt den String (TCaption) von Label1.Caption zurück?
hmmmm....
Ein bisschen weiter oben steht geschrieben:
Zitat von jim_raynor:
Du kannst aber Hier im Forum suchenGetPropInfo aus der Unit TypInfo Informationen zu einer Published Eigenschaft ermitteln und mit Hier im Forum suchenSetStrProp dann ändern.
D.h. mit SetStrProp kannst du string-Properties setzen. Jetzt geben wir dem ganzen noch etwas Phantasie dazu und gucken, ob es etwa nicht GetStrProp gibt... tatsaechlich, sie existiert. Und rate mal, was die macht

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:19 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