AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf Frame-Objekte

Ein Thema von Dennis07 · begonnen am 16. Mai 2012 · letzter Beitrag vom 21. Mai 2012
Antwort Antwort
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Zugriff auf Frame-Objekte

  Alt 18. Mai 2012, 18:23
Hallo,
leider darf die Datei keine Auslagerungen verwenden.
Ist es möglich, die Captions innerhalb meiner Anwendung zu ändern, möglicher Weise beim Erstellen der Instanz?
Ich muss einen Set-Up erstellen, da kann ich keine äußeren Dateien zur Hilfe nehmen.

Ist das möglich (außer mit Pointern von außen)?
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#2

AW: Zugriff auf Frame-Objekte

  Alt 18. Mai 2012, 19:14
Ich muss einen Set-Up erstellen, da kann ich keine äußeren Dateien zur Hilfe nehmen.
Warum nimmst du dann nicht die vorhandenen Möglichkeiten wie Inno Setup, Windows Installer (MSI), Nullsoft Installer (NSIS) usw.?

MfG Dalai
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Zugriff auf Frame-Objekte

  Alt 18. Mai 2012, 19:28
leider darf die Datei keine Auslagerungen verwenden.
was bitte schön ist eine "Auslagerung"? Meinst Du damit dass irgend welche zusätzlichen Dateien zu deiner Software notwendig sind? Dann compilier die Ressourcen eben in die Exe mit rein - macht zwar wenig Sinn, weil die dann halt entsprechend größer wird aber das ist nicht das Problem.

Und klar: Du kannst jeden einzelnen Text manuell in deiner Software setzen. Viel Spaß dabei

Und wegen deiner ersten Frage: Wenn Du eine Komponente (z.b. Label) auf einem Frame hast, dann sprichst Du diese von einer anderen Unit so an, wie Du das bei Feldern einer Klasse eben machst: Objektname.Komponentenname.Text:='';

Bei einem Form wird schon eine entsprechende Objektvariable automatisch angelegt, bei einem Frame nicht, hier musst Du selbst nachschauen wie Du damit arbeitest, irgend wo musst Du das Frame ja aufrufen und darstellen (also ein Frame.Show machen).

Grüße
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zugriff auf Frame-Objekte

  Alt 18. Mai 2012, 20:46
Und wegen deiner ersten Frage: Wenn Du eine Komponente (z.b. Label) auf einem Frame hast, dann sprichst Du diese von einer anderen Unit so an, wie Du das bei Feldern einer Klasse eben machst: Objektname.Komponentenname.Text:='';
Grüße
Na das funktioniert ja eben nicht.
Wenn ich ein Objekt auf dem Frame ansprechen will, kommt die Fehlermeldung, dass dieses nicht gefunden werden könne. Ich habe nur Zugriff auf die Instanz des Frames selber (als Komponente), nicht aber auf die auf ihm befindlichen Objekte. Das ist ja mein Problem, und das wollte ich lösen, nur keine Ahrnung wie....

Dennis
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Zugriff auf Frame-Objekte

  Alt 18. Mai 2012, 23:37
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
Ralf Kaiser

Geändert von Ralf Kaiser (18. Mai 2012 um 23:44 Uhr)
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zugriff auf Frame-Objekte

  Alt 19. Mai 2012, 13:11
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? }
Dennis
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Zugriff auf Frame-Objekte

  Alt 19. Mai 2012, 17:18
Hi,

sagst Du uns auch noch was für eine Fehlermeldung kommt und wann und wo oder sollen wir raten anfangen?

Grüße
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zugriff auf Frame-Objekte

  Alt 19. Mai 2012, 18:36
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'
Dennis
  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 07:11 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