IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

[Delphi 7][Windows XP] Alphabet cyrillique


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut [Delphi 7][Windows XP] Alphabet cyrillique
    Bonjour,
    La lecture de la FAQ (Multilinguisme et Unicode) ne m'ayant pas éclairé, je vous soumets mon petit problème d'alphabet cyrillique, sachant que j'ai installé le clavier bulgare depuis le panneau de configuration de XP (au fait, peut-on forcer son usage avec du code Delphi ?) et la police Bulgarian Garamond (mais je suis preneur d'une police plus adaptée si vous en connaissez).
    Je suis en train de faire un petit utilitaire pour prononcer le bulgare : je tape un caractère bulgare et j'obtiens sa prononciation (ex : je tape le dernier caractère de l'alphabet bulgare et j'obtiens la prononciation "ia"). Ça marche . Mais il m'est alors venu l'idée de copier un mot bulgare depuis un logiciel-dictionnaire et de le coller dans un Edit de mon utilitaire afin d'obtenir sa prononciation, mais le "collage" ne m'affiche que des points d'interrogation (dont chacun a pour code Ascii la valeur 63 !!!) . Quelqu'un a-t-il une idée ?
    D'avance merci.
    Cordialement,
    Alain
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Précisions :
    -un mot en caractères bulgares copié depuis le logiciel-dictionnaire se colle sans défaut dans Word 2000.
    -un correspondant découvert sur un site bulgare me conseille l'utilisation du codage Windows 1251.
    Comment essayer cela avec Delphi ? ...
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Suite...

    Oui (bien sûr ), il est possible de forcer le clavier dans une autre langue dotée de caractères spécifiques (cyrilliques, arabes, asiatiques....)
    Voici la démarche à suivre :
    - installer la langue via le panneau de configuration (prise en charge multilingue, options régionales et linguistiques, ... selon les versions de Windows) : une icône de clavier doit apparaître dans la barre des tâches.
    - rechercher le code de la langue sur ce site : http://msdn2.microsoft.com/en-us/library/ms776260.aspx
    Par exemple, le Français y est codé 0x040c que l'on transcrira en 0000040c, le bulgare y est codé 0x0402 que l'on transcrira en 00000402.
    - coder dans la procédure nécessitant la langue les deux lignes suivantes :

    LoadKeyboardLayout('00000402', KLF_ACTIVATE);
    Application.BiDiKeyboard := '00000402';

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm2.MemoBulgareKeyPress(Sender: TObject; var Key: Char);
    begin
      // passer en clavier bulgare (cyrillique)
      LoadKeyboardLayout('00000402', KLF_ACTIVATE); 
      Application.BiDiKeyboard := '00000402';               
      //... traitement...
      // revenir en clavier français
      LoadKeyboardLayout('0000040c', KLF_ACTIVATE); 
      Application.BiDiKeyboard := '0000040c'; 
    end;
    Tout ceci est valable pour de nombreuses langues (cf. le site supra).

    P.S. : je suis toujours preneur d'une police bulgare plus lisible que celle j'utilise (et d'une police phonétique très lisible) et continue d'accepter tout tuyau pouvant me faire avancer dans mon problème de copier-coller

    Amicalement,
    Alain
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Suite...
    Je m'obstine... Mes divers essais me conduisent à penser que le code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      LoadKeyboardLayout('00000402', KLF_ACTIVATE); 
      Application.BiDiKeyboard := '00000402';
    ... installe un autre clavier bulgare noté BG dans le panneau de configuration.

    Le panneau de configuration m'a affiché un clavier Français noté FR (avec bascule Français-Bulgare, normal j'en avais fait l'installation préalablement) et un clavier Bulgare noté BG (sans bascule, du bulgare pur et dur, apparemment installé par mon code Delphi).

    Après un certain temps de réflexion (ce n'est pas immédiat, il lui faut du temps !!!), Windows XP affiche en barre des tâches une icône de clavier (avec possibilité de bascule) et une icône FR (avec possibilité de bascule). Quand ces deux icônes sont affichées l'une à côté de l'autre, si l'on passe l'icône clavier en bulgare, puis l'icône FR également en bulgare (l'icône clavier disparaît alors momentanément, il ne reste que l'icône BG - pour bulgare-), alors une copie de texte en caractères bulgares se colle parfaitement dans le TMemo de mon utilitaire. Voilà mon constat.

    Conclusion : ne pouvant reproduire à coup sûr un copier-coller réussi (et c'est pourtant possible), je continue à chercher, mais je subodore que les deux claviers se prennent un peu les pieds dans le tapis de temps en temps Si quelqu'un a une idée...
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Bonjour,
    La suite... J'ai réussi plusieurs copier-coller ! J'ai de plus reproduit l'expérience d'installation décrite ci-dessous plusieurs fois.
    - Préalable : installer une seconde langue (pour moi, c'est le bulgare) dans le clavier français d'origine ; pour ce faire, panneau de configuration, options régionales et linguistiques, bouton ajouter, puis développer la configuration clavier/IME et choisir la langue à ajouter. Le clavier français devient "bilingue" et une icône de clavier apparaît dans la barre des tâches. Installer ensuite un second clavier uniquement affecté à la langue étrangère ; pour ce faire, même manoeuvre que précédemment, mais en développant la langue d’entrée et choisir la langue à ajouter (pour moi, c'est toujours le bulgare). Cette deuxième installation peut se réaliser via du code Delphi (cf. le code ci-dessous). Une icône BG (bulgare) apparaît dans la barre des tâches. Enfin, il semble qu'il est impératif de rebooter Windows !
    - Code Delphi : quelque part dans l'application, forcer le mode "clavier bulgare" (création et/ou utilisation) et lier un composant d'édition (un TMemo par exemple) à une police bulgare :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LoadKeyboardLayout('00000402', KLF_ACTIVATE); // 00000402 = clavier bulgare
    Application.BiDiKeyboard := '00000402';
    MemoBulgare.Font.Name:='Bulgarian Garamond';
    -Copier-coller : lancer l'application Delphi, puis un logiciel (dictionnaire par exemple) ou une page Web qui fournit du cyrillique. Si l'icône clavier est absente, cliquer sur l'icône BG puis basculer en clavier français (FR) : l'icône clavier s'affiche alors. Cliquer sur cette icône clavier et sélectionner la langue étrangère (Bulgare). Copier (<Ctrl> C) le texte cyrillique, puis le coller (<Ctrl> V) dans le composant d'édition Delphi (le TMemo, par exemple).

    Voilà, ça fait un peu "chaudron de sorcellerie", mais ça marche à peu près (j'ai toutefois eu un échec depuis une page Web dont la déclaration Charset semble correcte...).

    Si quelqu'un a une idée pour transformer cette bidouille en informatique, je suis preneur

    Amicalement,
    Alain
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 176
    Points : 123
    Points
    123
    Par défaut
    Fin (ouf !) de mon monologue (ou soliloque, au choix ), la nuit portant conseil...

    Résolu : parce que, tout bien pesé, j'ai atteint mon objectif initial, même si la manière est inélégante
    Délestage : vu que tout cela n'apporte rien à la communauté (trois méchantes lignes de code déjà connues de beaucoup...)

    Merci aux visiteurs et désolé de leur avoir fait perdre du temps (j'essaierai de faire mieux la prochaine fois !).

    Bon week-end, amicalement,
    Alain
    Ce qui est simple et évident pour soi-même ne l'est pas forcément pour les autres... et réciproquement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Delphi et Windows mobile
    Par berny88 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 11/10/2006, 22h06
  2. Application Delphi pour Windows CE (compact framework)
    Par COGAN dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 11/07/2006, 15h03
  3. Réponses: 4
    Dernier message: 29/12/2005, 17h51
  4. [Delphi 2005 /Windows Forms] passage de paramêtre
    Par Frank dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 28/12/2005, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo