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

C++Builder Discussion :

Traduire un TOpenPictureDialog


Sujet :

C++Builder

  1. #1
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut Traduire un TOpenPictureDialog
    Bonjour, dans un projet qui sera traduit dans plusieurs langues j'utilise le composant TOpenPictureDialog pour ouvrir mes images. Le problème c'est que j'ai BDS 2006 en anglais et je ne trouve pas de moyen simple de changer le texte par défaut: "Preview", "(None)", etc...

    Le seul texte facilement modifiable est celui du Title.

    Le seul moyen que je vois c'est lors de l'évenement WM_INITDIALOG de changer le texte (SetWindowText) qui se trouve à ces emplacements:
    chx1 The read-only check box
    cmb1 Drop-down combo box that displays the list of file type filters
    stc2 Label for the cmb1 combo box
    cmb2 Drop-down combo box that displays the current drive or folder, and that allows the user to select a drive or folder to open
    stc4 Label for the cmb2 combo box
    cmb13 Drop-down combo box that displays the name of the current file, allows the user to type the name of a file to open, and select a file that has been opened or saved recently. This is for earlier Explorer-compatible applications without hook or dialog template. Compare with edt1.
    edt1 Edit control that displays the name of the current file, or allows the user to type the name of the file to open. Compare with cmb13.
    stc3 Label for the cmb13 combo box and the edt1 edit control
    lst1 List box that displays the contents of the current drive or folder
    stc1 Label for the lst1 list box
    IDOK The OK command button (push button)
    IDCANCEL The Cancel command button (push button)
    pshHelp The Help command button (push button)
    Par contre, je ne connais pas les "identifiers" du TOpenPictureDialog. J'imagine que sa se trouve dans le fichier d'entête (.h).

    Si vous avez dejà fait cette opération, ou que vous avez des suggestions. Je suis preneur.

    Merci!
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Pour traduire la fenêtre standard c'est assez facile on doit ajouter
    pour avoir accès aux "identifiers" mentionné plus haut. On met le code dans l'évènement Show du TOpenPictureDialog. Le code est assez simple, voici un exemple qui change le texte du bouton OK:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        HWND tParentHWnd = NULL, tItemHWnd = NULL;
     
        tParentHWnd = GetParent(((TOpenDialog*)(Sender))->Handle);
        tItemHWnd = GetDlgItem(tParentHWnd, IDOK);
        SetWindowText(tItemHWnd, "Bouton OK");
    Pour le texte "(vide)" lorsqu'un fichier invalide est sélectionné. Il faut mettre le code dans l'évènement SelectionChange du TOpenPictureDialog. Car le texte est écris à chaque fois que l'on clique sur un fichier. Voici le code nécessaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        HWND tParentHWnd = NULL, tItemHWnd = NULL;
     
        tParentHWnd = ((TOpenDialog*)(Sender))->Handle;
        tParentHWnd = FindWindowEx(tParentHWnd, NULL, "TPanel", NULL);
        tItemHWnd = FindWindowEx(tParentHWnd, NULL, "TSilentPaintPanel", NULL);
        SetWindowText(tItemHWnd, "(Vide)");
    Pour le bouton "Preview" et le TLabel "Picture" je n'ai encore aucune idée sur comment les modifiés. Si vous pouvez m'aidé, merci

    Pour en connaître plus sur le composant TOpenPictureDialog vous pouvez consulter le fichier ExtDlgs.pas.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Points : 334
    Points
    334
    Par défaut
    Oui je pense que un moyen acceptable est d'utiliser les ID des controles comme tu le dit dans ton 1er post. Les exemples officiels de MS ne se génent pas pour manipuler ces ID en dur également donc ça me parait suffisamment pérenne.

    Yarp

  4. #4
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Je viens de comprendre pourquoi j'ai des problèmes avec le bouton Preview. Il s'agit d'un TSpeedButton, un descendant de TGraphicControl, donc il n'a pas de Handle.

    Si quelqu'un a une solution...

    Moi je continue de regarder de mon côté.

    Merci!
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

Discussions similaires

  1. [LG]traduire ReDim de VB
    Par James64 dans le forum Langage
    Réponses: 5
    Dernier message: 26/03/2004, 13h26
  2. [Entité-Association] Traduire l'héritage conceptuel en script BDD
    Par MrEddy dans le forum Schéma
    Réponses: 2
    Dernier message: 16/03/2004, 15h18
  3. [merise]traduire en sql une association réflexive
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/03/2004, 18h10
  4. Traduire du DSP pour ADSP2181 de Analog Devices en C
    Par Aramis dans le forum Autres architectures
    Réponses: 4
    Dernier message: 14/06/2002, 12h03

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