AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

Ein Thema von paule32.jk · begonnen am 25. Jul 2023 · letzter Beitrag vom 30. Jul 2023
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 26. Jul 2023, 11:18
Hallo,

nachdem nun das Lader der .DLL / .DEU Datei(en) funktioniert, bleibt eine nächste Frage offen:
Wie kann man die Controls so umwuscheln, als hätte man eine .DEU Datei gerade geladen ?

Also: Das die nachträglichen Änderungen Wirkung zeigen.

Oder muss dazu die Anwendung immer neu gestartet werden?

Gruß, paule
Frag doch einfach
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 26. Jul 2023, 11:35
Hallo,

nachdem nun das Lader der .DLL / .DEU Datei(en) funktioniert, bleibt eine nächste Frage offen:
Wie kann man die Controls so umwuscheln, als hätte man eine .DEU Datei gerade geladen ?

Also: Das die nachträglichen Änderungen Wirkung zeigen.

Oder muss dazu die Anwendung immer neu gestartet werden?

Gruß, paule
D7, das ist Jahrzehnte her... So weit ich mich entsinne gab es da eine Beispielanwendung für Multilanguage im Lieferumfang die auch den Wechsel der UI-Sprache in der laufenden Anwendung demonstriert hat. Ansonsten such mal auf Codenews Fast, das Archiv enthält die alten Borland und Emba Newsgroups, da findet sich viel zu alten Delphi-Versionen.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 26. Jul 2023, 12:17
In der D7 Hilfe ist dazu folgendes zu finden:
Zitat:
Eine Ressourcen-DLL kann nicht nur beim Start einer Anwendung geladen werden, sondern es ist auch möglich, die verwendete Ressourcen-Datei zur Laufzeit zu wechseln. Wenn Sie Ihre Anwendung mit dieser Funktionalität versehen wollen, nehmen Sie in die uses-Anweisung die Unit ReInit auf. (Diese Unit befindet sich im Verzeichnis Demos im Richedit-Beispiel.) Um die verwendete Sprache zu wechseln, übergeben Sie in einem Aufruf von LoadResourceModule die LCID für die neue Sprache und rufen anschließend ReinitializeForms auf.

Mit den folgenden Anweisungen können Sie die Sprache der Benutzeroberfläche in Französisch ändern:

Delphi-Quellcode:
const
  FRENCH = (SUBLANG_FRENCH shl 10) or LANG_FRENCH;
if LoadNewResourceModule(FRENCH) <> 0 then
  ReinitializeForms;
Dieses Vorgehen hat den Vorteil, dass die aktuelle Instanz der Anwendung mit allen zugehörigen Formularen verwendet werden kann. Dabei ist weder eine Aktualisierung von Registrierungseinstellungen mit anschließendem Neustart der Anwendung noch die erneute Anforderung von benötigten Ressourcen (z.B. das Anmelden bei einem Datenbank-Server) erforderlich.

Bei einem Wechsel der Ressourcen-DLL werden die Eigenschaftswerte in den laufenden Instanzen der Formulare durch die entsprechenden Eigenschaftswerte der neuen DLL ersetzt.

Hinweis

Änderungen, die zur Laufzeit an den Formulareigenschaften vorgenommen wurden, gehen verloren. Nach dem Laden der neuen DLL werden keine Standardwerte zurückgesetzt. Sie dürfen deshalb im Quelltext nie davon ausgehen, dass die Formularobjekte automatisch mit ihrem Anfangsstatus neu initialisiert werden.
Die entsprechende Unit reinit.pas habe ich mal angehängt.
Angehängte Dateien
Dateityp: pas reinit.pas (3,5 KB, 6x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 28. Jul 2023, 16:04
[QUOTE=Uwe Raabe;1524914]
Zitat:
Die entsprechende Unit reinit.pas habe ich mal angehängt.
Danke !

Ich habe bemerkt, dass, wenn ich eine Komponente in Delphi 7 auf die TForm ändere (löschen z.B.)
dann ändert sich doch auch die Ressourcen-DLL (wenn man über Project->Languages->DLL ein update
durchführt).

Kommischerweise habe ich dann das Problem, das immer die erste Unit/Module vom Projekt in der
Projekt .DPR hinzugefügt wird - also doppelt dann vorkommt.

Ist das ein bekannter Bug von Delphi 7 ?
Wurde der bereits mit dem Nachfolger behoben ?

Gruß, paule
Frag doch einfach
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 28. Jul 2023, 18:10
Hallo,

ich habe die reinit.pas in das Projekt aufgenommen.
Weiters habe ich unten stehenden Quellcode.
Leider bekomme ich beim aufrufen der Prozedur eine Ausnahme: "Ancestor for '' not found."
Ist da vielleicht ein Fehler in der reinit.pas ?

Gruß, paule

Code:
procedure TForm1.PopupMenu_Tools_Language_GermanClick(Sender: TObject);
const
  GERMAN = (SUBLANG_GERMAN shl 10) or LANG_GERMAN ;
begin
  try
    if LoadNewResourceModule(GERMAN) <> 0 then
    ReinitializeForms;
  except
    on E: Exception do
    begin
      ShowMessage('Exception occur:' + #13#10 + E.Message);
    end;
  end;
end;
Frag doch einfach
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 28. Jul 2023, 22:34
Dass es einen Fehler gab, weiß man auch so.
Und ohne dieses nutzlose Try-Except, sogar mit Fehler-Icon im Dialog.

In einem nicht-englischsprachigem Delphi/Windows ergibt das hier auch noch einen unnötigen Sprachmischmasch.

PS: Delphi-Referenz durchsuchensLineBreak
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (28. Jul 2023 um 22:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Delphi 7 32-Bit unter Windows 10/11 64-Bit Pro (.DEU und .ENU Dateien) CRASH

  Alt 29. Jul 2023, 08:22
heißt also, dass man schon beim Laden/Starten die Sprache festsetzen sollte,
da ein Englisher Mensch ja eigentlich kein Deutsch im Normalfall kann...

klingnlogisch...
Frag doch einfach
  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 18:24 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