![]() |
AW: Zugriff auf Frame-Objekte
Hi,
Wenn du in deiner Frame-Klasse z.B. einen Button Namens "Button1" hast dann kannst du mit einem Code wie diesem definitiv die Beschriftung setzen:
Delphi-Quellcode:
Falls das bei dir nicht funktioniert, dann zeigt doch bitte mal, wie du es versuchst (ohne den Code zu sehen, ist das ganze für die Leute hier bestenfalls ein Ratespiel)DeineFrameInstanz.Button1.Caption := 'Wuppdi'; // "DeineFrameInstanz" muss vom korrekten Datentyp sein! // Es darf sich also nicht nur um ein TFrame handeln, sondern // es muss ein TDeineFrameKlasse sein! Allerdings ist der direkte Zugriff auf die Komponenten kein guter Stil! Besser ist es, eine Methode in dem Frameobjekt zu erstellen die den gewünschten Sprachwechsel durchführt (diese Methode greift dann ganz normal auf die Komponenten zu). Von außen wird dann nur noch diese Methode aufgerufen, statt alle Komponenten von außen einzeln anzusprechen. Ciao, Ralf |
AW: Zugriff auf Frame-Objekte
Das habe ich auch vor, allerdings wollte ich euch nicht direkt mit der Sache so konfrontieren, weil es vom Prinzip her ja das selbe ist, ob ich eine Methode oder ein Objekt anspreche.
Also, hier die relevanten Teile des Codes:
Delphi-Quellcode:
{ Beim erstellen des Forms wird eine Instanz von frWelcome (dem Frame, das ich in der D.E. erstellt habe) erstellt }
Frame_Welcome := TfrWelcome.Create(fmUpdater); with Frame_Welcome do begin Parent := fmUpdater; Top := 40; Visible := False; end; { Selbstverständlich habe ich die Unit des Frames in die Uses-Klausel eingebunden } interface uses uWelcome, { Die Unit des Frames enthält folgende Prozedur, die es ermöglicht, die Captions zu ändern } procedure TfrWelcome.ChangeLanguage(Ger: Boolean); begin if Ger = True then begin laHeader.Caption := '...'; laText.Caption := '...'; end else begin laHeader.Caption := '...'; laText.Caption := '...'; end; end; { Logischer Weise muss die Prozedur also ansprechbar sein... } Frame_Welcome.ChangeLanguage(True); { ...ist sie aber nicht. Wieso? } |
AW: Zugriff auf Frame-Objekte
Hi,
sagst Du uns auch noch was für eine Fehlermeldung kommt und wann und wo oder sollen wir raten anfangen? ;-) Grüße |
AW: Zugriff auf Frame-Objekte
Zitat:
Code:
[Fehler] MeineHauptUnit.pas(108): Undefinierter Bezeichner: 'ChangeLanguage'
|
AW: Zugriff auf Frame-Objekte
OK, und wo wurde die Methode definiert? Public, private, published? Zeig mal den entsprechenden Teil der KLassendefinition des Frames...
|
AW: Zugriff auf Frame-Objekte
Hallo,
Ich habe es mit der Definition in der Klasse selber und in der Public-Sektion verusucht - Dasselbe Resultat... |
AW: Zugriff auf Frame-Objekte
Und wie ist die Variable Frame_Welcome deklariert?
|
AW: Zugriff auf Frame-Objekte
Das selbe....
Zur Zeit habe ich es unter 'Private' stehen, unter 'Public' kommt aber genau der selbe Fehler. |
AW: Zugriff auf Frame-Objekte
Man Dennis, das ist so banal. Zeig einfach den Code, dann sieht man es sofort.
Delphi-Quellcode:
Type
TMyFrame = Clas (TFrame) ... public Procedure ChangeLanguage(); ... end; |
AW: Zugriff auf Frame-Objekte
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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