AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Sprach Plugins für nonVCL Anwendungen
Thema durchsuchen
Ansicht
Themen-Optionen

Sprach Plugins für nonVCL Anwendungen

Ein Thema von Luckie · begonnen am 26. Jan 2006 · letzter Beitrag vom 26. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

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

Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 11:31
Ich habe eine DLL die nur die Resourcestrings für die entsprechende Sprache enthält und eine Funktion exportiert, die für die entsprechende Menücaption verantwortlich ist. Wie kann ich nun zur Laufzeit ermitteln, wenn man den Menüpunkt auswählt, von welcher DLL der Eintrag erzeugt wurde? Das Problem ist, dass ja auch die ID, die ich für die Nachricht WM_COMMAND brauche, des Menü Items dynamisch ist. Alles wa sich brauche ist der Name der DLL, weil dieser den Namen der Sprache enthält: de.dll für deutsch, en.dll für englisch und so weiter.

Hat da jemand von euch ein Idee?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#2

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 11:39
Ohne jetzt direkt auf dein Problem eingehn zu können, aber wäre es konzeptionell nicht besser statt .dll's Textfiles als Sprachdateien zu verwenden? So könnte man sie direkt bearbeiten, ggf. ohne weiteres neue Sprachdateien erstellen

Nur so als Anregung
David
~ Nichts ist wahr, alles ist erlaubt ~
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 11:42
Das Konzept mit den DLLs steht schon. Zur Zeit füge ich sie nur immer per Hand hinzu, was bedeutet, dass ich bei einer neuen Sprache DLL und eigentliche Anwendung neu ausliefern muss. Schön wäre es jetzt einfach neue Sprach DLLs zur Verfügung zu stellen, die man sich nach belieben runterladen kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:05
Über Compilerschalter $DESCRIPTION der DLL eine Idendifikation verpassen und per Description auslesen welche Dll verwendet wird wenn Sie geladen wrude?

Habe ich das so richtig verstanden was du möchtest?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:14
Das könnte helfen. Mal gucken. Aber die von dir verlinkte Version geht nicht über den Compilerschalter oder?

Aber nein geht auch nicht. Ich muss ja die entsprechende DLL laden und genau die kenne ich ja nicht, wenn der Menüpunkt angeklickt wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:31
Ach, geht doch auch einfacher "?", wenn in die DLL noch eine Versions oder Identificationsprocedure eingebaut wird die dir den Namen zurückgibt.

Delphi-Quellcode:
library EN;

// uses Windows;

{$R 'en.res' 'en.rc'}

type
  TDLLVerStr = Record
                 ID,
                 DLL_Version: Integer;
                 DLL_Language,
                 DLL_Name: string[12];
               end;

function GetDLLVersion: TDLLVerStr;
begin
  Result.DLL_Version := 100;
  Result.DLL_Language := 'Englisch';
  Result.DLL_Name := 'en.dll';
  Result.ID := 9901;
end;

procedure ExportFoo;
begin
end;

export
  GetDLLVersion;
  ExportFoo;

begin
end.

//Edit:

Du suchst die passende Version der DLL, die zu der Sprache passt, die aus dem Menue gewählt wurde ?
Ist das richtig ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:39
Ich glaube, wir reden aneinander vorbei.

Nhmen wir an ich habe die DLLs: de.dll, en.dll und it.dll. Bei Start suche ich mit FindFirstFile die DLLs und erstelle die Menüpunkte:

Code:
Sprachen
 "Deutsch" (ID 0)
 "Englisch (ID1)
 "Italienisch" (ID 2)
Das in Klammern sind nur die IDs, die für die Menüitems intern vergeben werden.

So, jetzt klicke ich auf einen Menüpunkt und erhalte als hightword des wParam BN_CLICK als Notification Code und im loword des wParam die ID des Menüitems. So weit so gut und jetzt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#8

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:47
Möglicherweise verstehe ich ja auch nicht was du meinst, aber wenn du die DLLs suchst und das Menu erstellst, warum speicherst du da die Filenamen nicht in ein array? In der Reihenfolge, wie du die Items erstellst. Dann ist Item-ID = Position im Array.
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:48
Zitat von Der Jan:
Möglicherweise verstehe ich ja auch nicht was du meinst, aber wenn du die DLLs suchst und das Menu erstellst, warum speicherst du da die Filenamen nicht in ein array? In der Reihenfolge, wie du die Items erstellst. Dann ist Item-ID = Position im Array.
Das habe ich mir jetzt auch schon überlegt. Mal sehen, ob das geht. Danke für eure Hilfe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: Sprach Plugins für nonVCL Anwendungen

  Alt 26. Jan 2006, 13:52
- Du liest mit FinFiles die Dll's ein
- beim einlesen ein DynArray aufbauen wobei aus der Dll die Version und Sprache gelesen wird
- aus dem Array dann das SprachMenue oder die Combobox aufbauen denen du den Index aus dem Array als ID zuweist

oder in die Dll eine Sprachversionsnummer verpassen die du dann als MenueID verwendest.

// kein roter Kasen !?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:26 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