Announcement

Collapse
No announcement yet.

VCL. net dll und ressourcen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VCL. net dll und ressourcen

    Hallo
    Unter D7 Pro
    Habe ich um mein Programm in verschiedene Sprachen weiterzugeben, dll's benutzt

    ein Texteditor
    1=öffnen
    2=schliessen usw

    bat gestartet um res zu erzeugen

    brcc32 Deutsch.rc
    PAUSE

    <PRE>
    library Deutsch;

    //################################################## ############################
    //
    //DEUTSCH
    //
    //################################################## ############################

    uses
    SysUtils,
    Classes;

    {$R *.res}
    {$R 'Deutsch.res' 'German.rc'}

    begin

    end.
    </PRE>

    in mein Programm dann so aufgerufen
    <PRE>
    //************************************************** ****************************
    //Element aus Sprachen.dll ausgeben
    Function Element_Ausgeben_GU(element_nr_s : String) : String;
    var
    lib_h : THandle;
    res_s : TResourceStream;
    elemente_sl : TStringList;
    i : Integer;
    pos_i : Integer;
    text_str_s : String;
    begin
    lib_h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + c_sprachen_path_s + v_sprache_s + '.dll'));

    elemente_sl := TStringList.Create;
    elemente_sl.Clear;
    text_str_s := '';
    res_s := NIL;
    Result := '';

    //Elemente aus Sprache laden
    if (lib_h <> 0) then
    begin
    try
    res_s := TResourceStream.Create(lib_h, 'Elemente', RT_RCDATA);
    elemente_sl.LoadFromStream(res_s);
    for i := 0 to elemente_sl.Count - 1 do
    begin
    if (Pos(element_nr_s + '=', elemente_sl.Strings[i]) = 1) then
    begin
    pos_i := Pos('=', elemente_sl.Strings[i]);
    text_str_s := Copy(elemente_sl.Strings[i], pos_i + 1, Length(elemente_sl.Strings[i]));
    end;
    end;
    finally
    res_s.Free;
    elemente_sl.Free;
    end;
    end;
    FreeLibrary(lib_h);

    //Platzhalter '#13#10' durch Steuerzeichen ersetzen
    Result := StringReplace(text_str_s, '#13#10', #13#10, [rfReplaceAll]);
    end;
    </PRE>

    wie mache ich das jetzt unter VCL Formanwendung für delphi.net ?
    Assembly?
    Ein Beispiel wäre sehr hilfreich

    Raimund

  • #2
    Vom Prinzip geht dieser Weg auch unter VCL.NET.
    (Auch wenn es evtl. bessere Möglichkeiten gibt.

    Wahrscheinlich mußt Du die Aufrufparameter der WIN32-API-Aufrufe anpassen

    Comment


    • #3
      bessere Möglichkeiten?
      Bin für jedere verbesserung dankbar
      Können sie die mir erläutern?

      Raimun

      Comment

      Working...
      X