begin process at 2008 05 13 05:20:24
1 170 850 membres
45 nouveaux aujourd'hui
13 959 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHANGER LA LANGUE DU CLAVIER PAR PROGRAMMATION


Information sur la source

Description

Quand vous vous deplacez d'un control la langue de saisie change par programmation

Source

  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  • StdCtrls;
  • type
  • TForm1 = class(TForm)
  • Edit1: TEdit;
  • Edit2: TEdit;
  • Edit3: TEdit;
  • procedure Edit1Exit(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.DFM}
  • procedure TForm1.Edit1Exit(Sender: TObject);
  • begin
  • if (sender is TEdit) then
  • case (sender as tedit).Tag of
  • 2:
  • begin
  • LoadKeyboardLayout('0000040c', KLF_ACTIVATE);
  • Application.BiDiKeyboard := '0000040c';
  • end;
  • 1,3:
  • begin
  • LoadKeyboardLayout('00000401', KLF_ACTIVATE);
  • Application.BiDiKeyboard := '00000401';
  • end;
  • end;
  • end;
  • end.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Edit1Exit(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Edit1Exit(Sender: TObject);
 begin
if (sender is TEdit) then
   case (sender as tedit).Tag of

   2:
   begin
   LoadKeyboardLayout('0000040c', KLF_ACTIVATE);
   Application.BiDiKeyboard := '0000040c';
   end;
   1,3:
   begin
   LoadKeyboardLayout('00000401', KLF_ACTIVATE);
   Application.BiDiKeyboard := '00000401';
   end;
   end;
 end;
end.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de florenth le 18/01/2006 18:44:57

    Sympa mais ce le serait encore plus si tu nous disais d'ou proviennent ces constantes :
    '0000040c'
    '00000401'

    Et si je veux le mettre en japonais, je fais comment ?
    日本語 の 楽しみ ("nihongo no tanoshimi": le plaisir de la langue japonaise - voir le site du meme nom)

    Très utile dans certains cas mais il manque un peu de documentation.
    ++

  • signaler à un administrateur
    Commentaire de florenth le 18/01/2006 18:47:30

    Bon, ma belle écriture japonaise n'est pas passée je vois ...
    Voici un lien sympa pour ce que ça interesse : http://www.nihongosensei.org/

  • signaler à un administrateur
    Commentaire de JulioDelphi le 18/01/2006 18:57:29 administrateur CS

    Je n'ai pas testé le code (je n'ai pas delphi sous la main) mais il me semble que cela change la langue SEULEMENT pour le programme en cours, je veux dire, celui qui "lance" ce code. Fait le test en le modifiant ici puis ouvre Notepad et enfin, tape "azerty" =)
    Si le but recherché est celui de modifier le layout du clavier pour le pc complet, quel que sois le programme en focus, alors cela ne marchera pas.
    Si le but était plutot d'utiliser ce code pour ses propres programmes, alors ça marche =)
    Merci de feedback ;)

  • signaler à un administrateur
    Commentaire de cirec le 19/01/2006 02:00:15 administrateur CS

    Salut,

    @ Florenth pour les infos essaye ça :
    procedure TForm1.Button4Click(Sender: TObject);
    Const
    Lang = '%s LocaleID %d';
    Var language : TLanguages;
        I : Integer;
    begin
      language := TLanguages.Create;
      For I := 0 to Language.Count -1 do
      ListBox1.Items.Add ('['+Language.ID[i]+'] - ('+Language.Ext[i]+') - '+Language.Name[i]);
    //
    //   ListBox1.Items.Add (Format(Lang, [Language.Name[I], language.LocaleID[I]]));

       ListBox1.Sorted := True;
       Language.Free;
    End;

    C'est Language.ID qui donne ce code
    @+
    Cirec

  • signaler à un administrateur
    Commentaire de aymenk le 20/01/2006 16:17:25

    Salut JulioDelphi;
    Juste pour le prog. en cours sans passé par la barre des Tache ....

  • signaler à un administrateur
    Commentaire de aymenk le 20/01/2006 16:23:51

    Salut florenth;
    lance une recherche pour touvé le mot '00000401' dans le source de Delphi et du coup tu trouvera les code des autre langues....

    je viens de voir le site JAP.. c'est jolie , et des que l'ADSL sera mise j'apprendrais le JAP...
    a++

  • signaler à un administrateur
    Commentaire de florenth le 20/01/2006 21:22:42

    Merci à tous pour ces précisions.
    A bientôt ...

  • signaler à un administrateur
    Commentaire de DRJEROME le 21/01/2006 21:48:36

    Salut,

    nous en avions déjà parlé là :

    http://delphifr.com/forum.v2.aspx?id=115455

    http://delphifr.com/forum.v2.aspx?id=348717


    http://www.phidels.com/php/forum/forum.php3?forumtable=posts&mode=showpost&postid=89027

    http://www.phidels.com/php/forum/forum.php3?forumtable=posts&mode=showpost&postid=99704

    drjerome JROD ;)

  • signaler à un administrateur
    Commentaire de DRJEROME le 21/01/2006 21:54:31

    le code que j'avais écrit ici :

    http://www.phidels.com/php/forum/forum.php3?forumtable=posts&mode=showpost&postid=89026

    a l'avantage d'utiliser "LoadKeyboardLayout" et "SystemParametersInfo"

    on peut certainement l'améliorer encore...

  • signaler à un administrateur
    Commentaire de cirec le 22/01/2006 01:40:40 administrateur CS

    Si déjà regarde ici :
    http://www.delphifr.com/forum.v2.aspx?ID=628290

    parce que si tu dois deviner les codes pays ça crain
    alors que là c'est win qui te les fournis

    @+
    Cirec

  • signaler à un administrateur
    Commentaire de kam_2006 le 04/03/2006 11:49:16

    Merci
    je veux le tester

  • signaler à un administrateur
    Commentaire de islem1984 le 21/07/2007 18:14:15

    Merci pour le code
    mais je l'ai essai et aucun changemment c'est à dire j'arrive toujours pas à ecrire sous delphi en Arabe

  • signaler à un administrateur
    Commentaire de ottolicos le 23/07/2007 18:48:48

    bonjour Aymenk, je suis très ravis de savoir qu'on peut faire changer la langue du clavier si facillement. Mais se qui m'eteresse est de savoir faire la même chose avec php, si tu as une idée?

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS