AGB  ·  Datenschutz  ·  Impressum  







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

Delphi SprachDLL nutzen

Ein Thema von Luckie · begonnen am 4. Feb 2004 · letzter Beitrag vom 5. Feb 2004
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 13:59
Ich habe gerade versucht eine zweisprachige Anwendung zu erstellen mittels einer SprachDLL. Aber es klappt nicht. Und ich weiß nicht, wo der Fehler steckt.

Prinzip ist folgendes:
Strings werden im Quelltext als resiurcestrings deklariert. Dies hat zur Folge, dass sie in der Ressource der Exe aufgenommen werden. Dort stehen sie als StringTable mit ID's. Jetzt erstellt man sich eine leere DLL mit einer Ressourcen Datei mit einem identischen StringTable, nur eben in der Zielsprache. Wichtig ist, dass die ID's der Zeichenfolgen mit denen aus der Exe übereinstimmen. Dann benennt man die kompilierte DLL wie die Anwendung nur eben mit einer länderspezifischen Dateiendung. "en2 zum Beipsiel für Englisch.

Mit Hilfe der Unit reinit.pas aud dem RichEdit Demo sollte sich dann die Sprache umschalten lassen. Aber genau das geht nicht.

Wenn sich das mal bitte jemand ankucken könnte.
Angehängte Dateien
Dateityp: zip sprachdll.zip (12,8 KB, 23x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
chris

Registriert seit: 24. Mai 2003
Ort: Düsseldorf
196 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 15:24
hi,

sieht alles gut aus, bis auf die .rc

ich würde mal sagen das kann so nicht klappen, weil du eine rc selber erstellt hast.
im richedit demo erledigte das der delphieigene resource dll wizard.

entweder du benutzt den, oder du musst es über einen stringtable discardable anders (aber alles leider 'zu fuss') erledigen
Chris
D2009.4 | Vista SP2 x32
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 17:11
Wie ist das eigentlich, kann es ein, das man den Delphi-SprachManager braucht ?

Kann man seine Anwendung vielleicht "zwingen" eine bestimmte Sprache zu laden ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 17:19
Zitat von chris:
entweder du benutzt den, oder du musst es über einen stringtable discardable anders (aber alles leider 'zu fuss') erledigen
Das ist das Problem, ich habe ihn nicht in meiner Delphi Version. Was nun?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
chris

Registriert seit: 24. Mai 2003
Ort: Düsseldorf
196 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 18:08
hi,

auch kein problem.

dann könntest du es wie folgt machen:

resource (eng.rc):

Code:
STRINGTABLE
{
 1, "&Yes"
}
dll (lang_eng.dll):

Delphi-Quellcode:
library lang_eng;
 {$E dll}
begin
 {$R eng.res}
end.
aufruf:

Delphi-Quellcode:
var
  a: array[0..255] of char;
  h: hwnd;
begin
  h := loadlibrary('lang_eng.dll');
  try
    if h >= 32 then
      if loadstring(h, 1, a, sizeof(a)) > 0 then showmessage(strpas(a))
  finally
    freelibrary(h)
  end;
Chris
D2009.4 | Vista SP2 x32
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 18:12
Dann brauche ich keine DLL, dann definiere ich mir in einer Ressourcendatei einfach mehrere Stringtables. Dann habe ich es auch in der Exed rin. Das kenne ich ja schon, selber schon gemacht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
chris

Registriert seit: 24. Mai 2003
Ort: Düsseldorf
196 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 18:15
hi,

der resource dll wizard ist aber nichts anderes
Chris
D2009.4 | Vista SP2 x32
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Delphi SprachDLL nutzen

  Alt 4. Feb 2004, 19:53
Dass es nicht klappt, @chris, liegt IMHO nicht an der selbst erstellten RC-Datei. Ich habe bei einem Delphi5-Projekt auch auf den von dir angesprochenen Assistenten verzichtet und die Meldungen usw. per Hand übersetzt und die Sprachdatei auch manuell erstellt. Und es klappte trotzdem.

Allerdings habe ich von Chakotay damals gehört, dass er (ebenfalls mit D6) Probleme mit dieser Technik hatte. Evtl. liegt´s also an der Delphi-Version?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Delphi SprachDLL nutzen

  Alt 5. Feb 2004, 02:31
Ja geht es denn bei dir, was ich oben angehangen habe?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Delphi SprachDLL nutzen

  Alt 5. Feb 2004, 09:22
Äh, Nein. Aber das wollte ich bei Gelegenheit noch mal richtig ausprobieren.
  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 08:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz