AGB  ·  Datenschutz  ·  Impressum  







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

TForm finden

Ein Thema von delphinia · begonnen am 17. Feb 2007 · letzter Beitrag vom 17. Feb 2007
Antwort Antwort
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

TForm finden

  Alt 17. Feb 2007, 19:16
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
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TForm finden

  Alt 17. Feb 2007, 19:24
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TForm finden

  Alt 17. Feb 2007, 19:26
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.
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: TForm finden

  Alt 17. Feb 2007, 19:27
TButton(TForm(Application.FindComponent(Lang_Sections.Strings[i2])).FindComponent('Button1')).Caption := 'lol'; Ich glaube so müsste das hinhauen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TForm finden

  Alt 17. Feb 2007, 19:32
OK danke hab es

AForm := TForm(Application.FindComponent(Lang_Sections.Stri ngs[i2]));


Zumidnest funktioniert das so Danke
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: TForm finden

  Alt 17. Feb 2007, 19:34
Der General war nah dran. Habe mal etwas gesucht und das gefunden :

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  showmessage (FindComponent('Button1').Name);
  TForm (FindComponent('Button1')).caption := 'sdfd';
end;
Neues Projekt -> 2 Buttons drauf und die 2 Zeilen einfügen. Hoffe mal, das geht in die richtige Richtung.

@roter Kasten : 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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: TForm finden

  Alt 17. Feb 2007, 19:38
Zitat:
@roter Kasten Mr. Green : Application würde ich nicht verwenden.
Ja aber delphinia weiß ja auch nicht auf welchem Formular sich der Button befindet.. Sie muss ja erstmal das Formular finden das den Namen trägt das sie in ihren Strings gespeichert hat...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TForm finden

  Alt 17. Feb 2007, 19:39
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.
Angehängte Dateien
Dateityp: zip translate2_463.zip (4,3 KB, 5x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: TForm finden

  Alt 17. Feb 2007, 19:54
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. Und nun ? Das nützt ja wohl nichts.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:13 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