Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zugriff auf Frame-Objekte (https://www.delphipraxis.net/168343-zugriff-auf-frame-objekte.html)

Ralf Kaiser 18. Mai 2012 23:37

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:

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!
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)

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

Dennis07 19. Mai 2012 13:11

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? }

Lemmy 19. Mai 2012 17:18

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

Dennis07 19. Mai 2012 18:36

AW: Zugriff auf Frame-Objekte
 
Zitat:

Zitat von Dennis07 (Beitrag 1167190)
Wenn ich ein Objekt auf dem Frame ansprechen will, kommt die Fehlermeldung, dass dieses nicht gefunden werden könne.

Wenn dus genauer Wissen willst:
Code:
[Fehler] MeineHauptUnit.pas(108): Undefinierter Bezeichner: 'ChangeLanguage'

Lemmy 19. Mai 2012 19:28

AW: Zugriff auf Frame-Objekte
 
OK, und wo wurde die Methode definiert? Public, private, published? Zeig mal den entsprechenden Teil der KLassendefinition des Frames...

Dennis07 19. Mai 2012 20:42

AW: Zugriff auf Frame-Objekte
 
Hallo,
Ich habe es mit der Definition in der Klasse selber und in der Public-Sektion verusucht - Dasselbe Resultat...

himitsu 20. Mai 2012 03:05

AW: Zugriff auf Frame-Objekte
 
Und wie ist die Variable Frame_Welcome deklariert?

Dennis07 20. Mai 2012 10:21

AW: Zugriff auf Frame-Objekte
 
Das selbe....
Zur Zeit habe ich es unter 'Private' stehen, unter 'Public' kommt aber genau der selbe Fehler.

Furtbichler 20. Mai 2012 12:09

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;

himitsu 20. Mai 2012 13:51

AW: Zugriff auf Frame-Objekte
 
Zitat:

Zitat von himitsu (Beitrag 1167300)
Und wie ist die Variable Frame_Welcome deklariert?

Antwort?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.
Seite 2 von 3     12 3      

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