![]() |
FindComponent auch für property ???
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')); |
Re: FindComponent auch für property ???
Nein. Du kannst aber
![]() ![]() 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. |
Re: FindComponent auch für property ???
Hmm...
Dieser Code wird zwar kompiliert, löst aber eine Exception aus:
Delphi-Quellcode:
GetPropInfo(FindComponent('Form1'),'Caption'); |
Re: FindComponent auch für property ???
Zitat:
Delphi-Quellcode:
GetPropInfo((FindComponent('Form1') as TForm),'Caption'); |
Re: FindComponent auch für property ???
Zitat:
|
Re: FindComponent auch für property ???
Zitat:
Delphi-Quellcode:
Form1 hat nur unwahrscheinlich eine Komponente, die auch wieder Form1 heisst ;)
GetPropInfo((Form1.FindComponent('Form1'){...}
da geht das doch besser:
Delphi-Quellcode:
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*
GetPropinfo(Form1, 'Caption');
greetz Mike |
Re: FindComponent auch für property ???
Zitat:
Es sollte z.B. auch so gehen können:
Delphi-Quellcode:
GetPropInfo(FindComponent('Label1'),'Caption');
|
Re: FindComponent auch für property ???
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.
|
Re: FindComponent auch für property ???
Naja, bei Label1 kommt keine Exception....
Gut, dass mit Form1 habe ich verstanden - daran lag's wohl :wink: Aber wie bekomme ich jetzt den String (TCaption) von Label1.Caption zurück? So:
Delphi-Quellcode:
bekomme ich dann logischerweise 'Caption' zurückgeliefert...
GetPropInfo(FindComponent('Label1'),'Caption').Name
|
Re: FindComponent auch für property ???
Zitat:
Ein bisschen weiter oben steht geschrieben: Zitat:
greetz Mike |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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