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

  1. #1
    Candidat au Club
    Impossible d'utiliser l'inspecteur d'objets pour insérer un glyph dans un TBitButton
    Bonjour à tous,

    J'ai besoin de vous.

    J'utilise Lazarus 1.6 sous Ubuntu 16.04 lts.

    J'ai déposé un TBitButton dans un TPanel dans un TTabSheet d'un TPageControl.

    Je n'ai pas pu utiliser l'inspecteur d'objet pour y insérer un glyph. Seule la ligne suivante me l'a permis :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    bitbtn1.Glyph.LoadFromFile('2leftarrow.bmp');


    J'ai voulu "enabled" le bouton en question mais impossible de le faire dans le code. Cela marche seulement avec l'inspecteur d'objet.

    Quelqu'un a t'il une solution pour ces agaceries ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Bonsoir,
    Citation Envoyé par Colignon Voir le message
    Je n'ai pas pu utiliser l'inspecteur d'objet pour y insérer un glyph.
    N'est pas une information suffisante pour nous permettre de comprendre ce qui s'est passé (ou pas)


    Citation Envoyé par Colignon Voir le message
    J'ai voulu "enabled" le bouton en question mais impossible de le faire dans le code.
    N'est pas un message d'erreur valide pour comprendre etc.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre expert
    Salut comment as tu créé tes composants tabcontrol et autres dans ton code ? oups

    Est-ce que le tabcontrol et le tabsheet sont bien "enabled" ? moi aussi je ne comprend pas bien ta question

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  4. #4
    Membre expert
    Je viens de tester chez moi un TPanel avec un tabcontrol + tabsheet + tpanel + tbitbutton et dans l'evenement formcreate de la form

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
      bitbtn1.Glyph.LoadFromFile('icon_tool_circle.bmp');
      bitbtn1.Enabled := true;


    tout fonctionne bien, du moins sous Windows
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  5. #5
    Candidat au Club
    Citation Envoyé par BeanzMaster Voir le message
    Je viens de tester chez moi un TPanel avec un tabcontrol + tabsheet + tpanel + tbitbutton et dans l'evenement formcreate de la form

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
      bitbtn1.Glyph.LoadFromFile('icon_tool_circle.bmp');
      bitbtn1.Enabled := true;


    tout fonctionne bien, du moins sous Windows
    J'ai fait la même chose et cela fonctionne mais pas dans mon projet...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    procedure activer_bouton;
    begin
      form1.BitBtn1.Enabled:=true;
    end;
     
    procedure desactiver_bouton;
    begin
      form1.BitBtn1.Enabled:=false;
    end;
     
    procedure TForm1.FormActivate(Sender: TObject);
    begin
      panel1.Height:=60;
      bitbtn1.Width:=50;
      bitbtn1.Height:=50;
      bitbtn1.Caption:='';
      bitbtn1.Glyph.LoadFromFile('button_accept.bmp');
      bitbtn1.Enabled:=false;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      activer_bouton;
    end;
     
    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      desactiver_bouton;
    end;

  6. #6
    Expert éminent sénior
    Salut,
    Citation Envoyé par Colignon Voir le message
    J'ai fait la même chose et cela fonctionne mais pas dans mon projet...
    Tes quelques lignes de test fonctionnent également très bien sous Linux/Laz1.4, donc le problème est dans ton projet.



    L'image n'est pas belle car je n'ai pas redimensionné le bouton.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre expert
    Salut petite suggestion pour tes procedures Activer/Desactiver, il est préférable de les déclarer dans la section "private" ou "protected" de ta "Form"

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Type
       TForm1 = Class(TForm)
          BitBtn1 : TBitBtn
       private
          procedure activer_bouton;
          procedure desactiver_bouton;
       end;
     
    implementation
     
    procedure TForm1.activer_bouton;
    begin
      BitBtn1.Enabled:=true;
    end;
     
    procedure TForm1.desactiver_bouton;
    begin
      BitBtn1.Enabled:=false;
    end;


    Est-ce que un des composants TabControl, TAbSheet, TPanel aurait-il sa propriété "Enabled" à false par hasard ?

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  8. #8
    Candidat au Club
    Citation Envoyé par BeanzMaster Voir le message
    Salut petite suggestion pour tes procedures Activer/Desactiver, il est préférable de les déclarer dans la section "private" ou "protected" de ta "Form"
    Je vais suivre ton conseil. Je ne devrai plus préfixer par le nom de la Form. Je ne fais pas souvent de procèdure/fonction de cette façon. Souvent cela se trouve dans des units réunissant des actions spécifiques.

    Salutations.

  9. #9
    Candidat au Club
    Citation Envoyé par Colignon Voir le message
    J'ai fait la même chose et cela fonctionne mais pas dans mon projet...
    Je devais être très fatigué car je me suis emmêlé dans mon code mais maintenant cela fonctionne dans mon projet aussi.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    bitbtn1.Glyph.LoadFromFile('icon_tool_circle.bmp');


    Seulement, je ne comprends pas pourquoi je ne peux pas utiliser l'inspecteur d'objet pour insérer un glyph dans mon bouton!

    Merci d'avance pour vos réponses.
    Salutations.

  10. #10
    Membre expert
    Salut

    Alors là c'est bien louche as tu cliqué sur le bouton avec les 3 points à coté de la propriété "Glyph" ? une boite de dialogue s'ouvre et t'invite à aller chercher ton image



    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  11. #11
    Candidat au Club
    J'ai fait en effet ce que tu suggère mais cela ne marche pas et cela sur 2 versions de Lazarus différentes, une sous linux et une sous windows. ça c'était avant que je ne réessaye... et maintenant cela fonctionne.

    Je viens de DELPHI mais n'est compatible qu'avec Windows xp alors sous linux je me met à Lazarus/free pascal. Il est donc possible qu'en essayant le tbitbtn j'ai suivi un mauvais chemin (fichier jpg trop grand par exemple). Cela semblait fonctionné mais à l'exécution rien ne s'affichait.

    J'ai à nouveau un autre problème (je vais me faire taper sur les doigts par le modérateur mais bon...)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var
       s : string;
       i : integer;
    begin
       s := 'siège';
       i := length (s);
    end;

    Curieusement i vaut 4. Pourquoi length ne compte pas les caractères accentués?

    Merci d'avance pour les remarques et réponses que vous voudrez bien m'apporter.
    Salutations.

  12. #12
    Rédacteur/Modérateur

    Citation Envoyé par Colignon Voir le message
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var
       s : string;
       i : integer;
    begin
       s := 'siège';
       i := length (s);
    end;

    Curieusement i vaut 4. Pourquoi length ne compte pas les caractères accentués?
    Bonjour ! Pourquoi 4, je ne sais pas, mais pour un résultat correct vous avez la fonction UTF8Length.

  13. #13
    Candidat au Club
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour ! Pourquoi 4, je ne sais pas, mais pour un résultat correct vous avez la fonction UTF8Length.
    En recherchant sur ce forum, j'ai trouvé cette solution qui fonctionne parfaitement.
    Merci pour votre réponse.

###raw>template_hook.ano_emploi###