![]() |
SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Test')
Hi,
ich erzeuge zur Laufzeit auf einem Panel unter anderem eine TEdit Componente mit dem Namen STATUS_1 und möchte in einem DataSourceDataChangeEvent einen String zuweisen, hier erstmal zum Test nur 'Hallo Test'.
Delphi-Quellcode:
Statt 'Hallo Test' gibt aber nur eine AV Exception.
SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Test');
|
Re: SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Tes
Kann es sein, daß die Komponente beim DataSourceDataChangeEvent noch gar nicht erzeugt wurde?
Mit diesem Code kannst du das umgehen:
Delphi-Quellcode:
var
edit: TEdit; begin edit := FindComponent('STATUS_1') as TEdit; if edit <> nil then edit.Text := 'Hallo Test'; end; |
Re: SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Tes
Hallo Uwe,
ich habe es mal so versucht
Delphi-Quellcode:
und dabei festgestellt, daß die Komponente nicht gefunden wird.
var
edit: TEdit; begin edit := FindComponent('STATUS_1') as TEdit; if edit <> nil then begin debugStr('status_1 gefunden'); edit.Text := 'Hallo Test'; end; end; Da sie aber auf dem Formular ist und auch der Name status_1 ist(a) stellt sich die Frage, in welchem Context FindComponent sucht. (a) bei der Erstellung wird der Name als Text eingesetzt.
Delphi-Quellcode:
Gruß Uwe
xEdit := TEdit.create(formular);
with xEdit do begin parent := formular; name := x_q.fields[i].fieldname+'_1'; text := name; end; |
Re: SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Tes
FindComponent muss im Owner der gesuchten Komponente aufgerufen werden. So wie die Komponente erzeugt wird
Delphi-Quellcode:
müsste man sie mit
xEdit := TEdit.create(formular);
Delphi-Quellcode:
wiederfinden.
formular.FindComponent('STATUS_1');
|
Re: SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Tes
Hallo,
wäre es nicht sinnvoller, beim Erzeugen des Eingabefelds eine (dauerhafte) Referenz darauf in einer Variablen zu speichern anstatt immer wieder das Feld suchen? Gruß Hawkeye |
Re: SetStrProp(FindComponent('STATUS_1'), 'TEXT', 'Hallo Tes
Das war der entscheidende Hinweis, über Formular.findComponent wird sie gefunden.
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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