Avatar billede fun22 Nybegynder
02. februar 2003 - 09:50 Der er 5 kommentarer og
2 løsninger

Sprog fra en dll

Hej

Hvordan hiver jeg f.eks. adresse fra den danske kolonne ind i en caption på en knap?

library Language;

uses
  SysUtils;

function GetLang(LangID : Byte; TextID : Integer) : PChar; stdcall;
Var
  Tekst : String;
  Buffer : Array[0..355] of Char;
begin
Tekst:='';
Buffer:='';
Case LangID of
  1 : Begin {DANISH}
        Case TextID of
          1 : Tekst:=' Firmasøgning ';
          2 : Tekst:='Udfyld ét eller flere felter';
          3 : Tekst:='Dobbeltklik for detaljer';
          4 : Tekst:='Firmanavn';
          5 : Tekst:='Adresse';
          6 : Tekst:='Postnr./By';
          7 : Tekst:='Land';
          8 : Tekst:='Tlf.';
        end;{END CASE}
      End;
  2 : Begin {ENGLISH}
        Case TextID of
          1 : Tekst:=' Company Search ';
          2 : Tekst:='Fill in one or more fields';
          3 : Tekst:='Doubleclick for details';
          4 : Tekst:='Company';
          5 : Tekst:='Address';
          6 : Tekst:='Postal Code/City';
          7 : Tekst:='Country';
          8 : Tekst:='Phone';
        end;{END CASE}
      End;
  3 : Begin {GERMAN}
        Case TextID of
          1 : Tekst:=' Firmensuche ';
          2 : Tekst:='Ein oder mehrere Felder ausfüllen';
          3 : Tekst:='Doppeltklick für Details';
          4 : Tekst:='Name';
          5 : Tekst:='Anschrift';
          6 : Tekst:='Ort';
          7 : Tekst:='Land';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
  4 : Begin {FRENCH}
        Case TextID of
          1 : Tekst:=' Recherche d´entreprises ';
          2 : Tekst:='Remplissez un ou plusieurs champs';
          3 : Tekst:='géminéclaquer pour détail';
          4 : Tekst:='Nom';
          5 : Tekst:='Adresse';
          6 : Tekst:='Ville';
          7 : Tekst:='Pays';
          8 : Tekst:='Tél.';
        end;{END CASE}
      End;

  5 : Begin {SPANISH}
        Case TextID of
          1 : Tekst:=' Buscar empresas ';
          2 : Tekst:='Completar uno o más campos';
          3 : Tekst:='Reduplicar apresurar pues menudencias';
          4 : Tekst:='Nombre';
          5 : Tekst:='Dirección';
          6 : Tekst:='Ciudad';
          7 : Tekst:='País';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
  6 : Begin {ITALIAN}
        Case TextID of
          1 : Tekst:=' Ricerca ditte ';
          2 : Tekst:='Compilare uno o più campi';
          3 : Tekst:='Doppio per dettaglio';
          4 : Tekst:='Nome';
          5 : Tekst:='Indirizzo';
          6 : Tekst:='Città';
          7 : Tekst:='Nazione';
          8 : Tekst:='Tel.';
        end;{END CASE}
      End;
end;{END CASE}
GetLang:=StrCopy(Buffer,PChar(Tekst));
end;

exports
GetLang;

begin
end.

Det er en dll fil som jeg har sprogene i.

Det jeg vil det er at jeg har en knap. Hvis jeg så vælger sprog id 1 så skal der stå adresse. Håber i forstår...

Mvh
Jesper
Avatar billede nop Nybegynder
03. februar 2003 - 16:14 #1
button1.caption:=getLang(1,5);
Avatar billede fun22 Nybegynder
03. februar 2003 - 16:34 #2
Fejl:

too many actual parameters
Avatar billede fun22 Nybegynder
04. februar 2003 - 16:24 #3
halllooooo
Avatar billede nop Nybegynder
04. februar 2003 - 16:35 #4
Øh... Er functionen skrevet som den du har i dit spørgsmål, for der vil den da have to stk.: en byte, og en integer.
Prøv dig lidt frem, debug linjevis og se hvor det går galt.
Avatar billede fun22 Nybegynder
04. februar 2003 - 16:43 #5
det er i den linie hvor button1.caption:=getLang(1,5); står
Avatar billede nop Nybegynder
06. februar 2003 - 08:55 #6
Prøv det her, det virker. (på en form med en enkelt knap; name=button1)

function getLang(l: byte; id: integer): pchar;
var
        t:      string;
begin
        case l of
        1: case id of
                5: t:='Adresse';
          end;
        2: case id of
                5: t:='Address';
          end;
        end;
        result:=pchar(t);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
        button1.Caption:=getLang(1,5);
end;
Avatar billede fun22 Nybegynder
06. februar 2003 - 10:11 #7
Har selv fået det til at virke, ved at kigge her: http://www.eksperten.dk/spm/183402

Det er ham som har lavet den dll fil som står i toppen som svarer.

Mvh
Jesper
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester