Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in ini speichern (https://www.delphipraxis.net/5611-ini-speichern.html)

eleonora 13. Jun 2003 12:01

@Sakura:
Das mit dem Self hat nicht funktioniert! Könntest Du mir trotzdem erklären was es bedeutet!

@Christian:
Das mit den Methoden hört sich nicht schlecht an. Ich hab es auch schon mit der Delphi Hilfe probiert, allerdings klappt das nicht so. Das was Du meinst ist doch das mit Open und Close z.B. language_englisch.Open und language_english.Close?
Könntest Du mir dabei helfen? In der Zwischenzeit probiere ich es alleine weiter!

Danke!

Eleonora

Christian Seehase 13. Jun 2003 12:18

Moin Eleonora,

ich meine das so:

Delphi-Quellcode:
// Dieses für jedes Formular

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    //...
  public
    //...
    procedure InitEnglish;
    procedure InitGerman;
  end;

//...

implementation


procedure TForm1.InitEnglish;
begin
  // Die englischen Texte eintragen
end;

procedure TForm1.InitGerman;
begin
  // Die deutschen Texte eintragen
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Das INI Drumherum gehört noch mit dazu
  // hab' ich hier mal weggelassen
  if language = 'german' then begin
    InitGerman;
  end else begin
    InitEnglish;
  end;
end;

// Im Menüpunkt Englisch dann (Deutsch analog)

procedure language_englishClick(Sender: TObject);
begin
  Form1.InitEnglisch;
  Form2.InitEnglisch;
  //...
end;
So ist sichergestellt, dass nur dann Teile eines Formulares angefasst werden, wenn dieses vollständig erzeugt wurde.

Um nicht dauernd die Ini neu öffnen zu müssen, wäre es auch nicht verkehrt die einzustellende Sprache einmal im OnCreate des Hauptformulares in ein private Feld auszulesen, und dann mit einer neuen Eigenschaft des Hauptformulares allen anderen zur Verfügung zu stellen.

eleonora 13. Jun 2003 12:47

@Christian

Das Problem hätte ich weiterhin. Er bringt mir immer noch Zugriffsverletzung!

Vielleicht hab ich mich aber auch nicht richtig ausgedrückt, denn die 2 verschiedenen TForm1.InitEnglish und TForm2.InitEnglish, bringen mich etwas durcheinander!

Nur noch mal zum verständniss! Ich übersetzte alle Buttons, Menüs usw., die sich in Form2 befinden unter Form1!

Eleonora

Christian Seehase 13. Jun 2003 13:11

Moin Eleonora,

Zitat:

Zitat von eleonora
Ich übersetzte alle Buttons, Menüs usw., die sich in Form2 befinden unter Form1!

das kann nicht gehen, solange die Formulare noch nicht erzeugt wurden.

Meine Idee sieht vor, das jedes Formular sozusagen für seine Übersetzung selbst verantwortlich ist, und somit auch eine eigene Methode dafür hat, die dann im jeweiligen OnCreate bedenkenlos aufgerufen werden kann. Dadurch wird das Formular, als Objekt auch in sich geschlossener.

Die Menüpunkte die die Sprachen umstellen werden beim Programmstart überhaupt nicht berücksichtigt. In diesen werden die einzelnen Übersetzungmethoden der einzelnen Formulare eingetragen, um dann bei Bedarf (eben durch Auswahl des Menüpunktes) aufgerufen zu werden.

eleonora 13. Jun 2003 13:32

Hallo!

Ich habs jetzt verstanden und es funktioniert auch! Super, danke! :dancer2:

Danke noch mal für die ausführliche Erklärung und die schnelle Hilfe!

Gruss Eleonora


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Seite 2 von 2     12   

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