![]() |
TForm finden
Hallo,,
Der Compiler schimpft nicht über
Delphi-Quellcode:
var
AComponent: Tcomponent; AComponent := TForm(Lang_Sections.Strings[i2]).findcomponent('button1'); Aber dann beim ausführen hagelt es eine Zugrifsverletzung. Was habe ich vor. Auf einer mir erst zur laufzeit bekannten Form eine mir auch nur zur Laufzeit bekanten Componente ansprechen. Sowas wie findcomponent('MeineForm' as TForm) kennt der Compiler nicht. Bitte Helfen ;-) |
Re: TForm finden
Hai delphinia,
auf "die Form" könntest Du eventuell zugreifen indem Du aus dem Code der Form diese als Parameter vom Type TForm mit dem Wert self an eine Funktion übergibst. Was genau möchtest Du denn machen? Evntuell gibt es ja einen anderen Ansatz für dein Problem. |
Re: TForm finden
Ich möchte zur Laufzeit zB.: die Caption einer Label componente ändern. Von der ich erst aus einer LanguageFile den Namen und dessen Platz auf einer mir auch erst aus der languageFile bekannten TForm erfahre.
|
Re: TForm finden
Delphi-Quellcode:
Ich glaube so müsste das hinhauen :freak:
TButton(TForm(Application.FindComponent(Lang_Sections.Strings[i2])).FindComponent('Button1')).Caption := 'lol';
|
Re: TForm finden
OK danke hab es ;-)
AForm := TForm(Application.FindComponent(Lang_Sections.Stri ngs[i2])); Zumidnest funktioniert das so ;-) Danke |
Re: TForm finden
Der General war nah dran. Habe mal etwas gesucht und das gefunden :
Delphi-Quellcode:
Neues Projekt -> 2 Buttons drauf und die 2 Zeilen einfügen. Hoffe mal, das geht in die richtige Richtung. :-D
procedure TForm1.Button2Click(Sender: TObject);
begin showmessage (FindComponent('Button1').Name); TForm (FindComponent('Button1')).caption := 'sdfd'; end; @roter Kasten :mrgreen: : Application würde ich nicht verwenden. Edit : der Button heißt erst mal "Button1". Die Beschriftung (Caption) ist auch "Button1". Den suche ich und ändere das eben zur Laufzeit ab. :stupid: |
Re: TForm finden
Zitat:
|
Re: TForm finden
Liste der Anhänge anzeigen (Anzahl: 1)
Hai,
ich habe auch mal damit gespiel die Captions in meinen Programm für verschiedene Sprachen zu setzten. Mein Lösungsweg war allerdings ein anderer. Ich habe den Componententyp und das (String)Property angegeben das ich setzen möchte. Den Namen der Componente habe ich dann einfach aus der "INI" mit den Übersetzungen geholt. Ich hänge mal ein Beispiel an. Ändere in der "dafault.lng" einfach mal den Text und schaue was passiert wenn Du das Programm startest. |
Re: TForm finden
Sharkys Beispiel schau ich mir mal später an. Aber habe mal aus Spaß in das Projekt eine neue Form reingemacht. Mit einem Button. Wie vorher bereits geahnt : so gehts nicht. Das ergibt ja nur 2 mal "Button1", jeweils auf Form1 und Form2. :shock: Und nun ? Das nützt ja wohl nichts. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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