Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1794 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Borland | Résolu | Créer un bouton avec une image à la place du texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Borland | Résolu | Créer un bouton avec une image à la place du texte

n°658341
jeoff
Posté le 28-02-2004 à 11:13:35  profilanswer
 

Voila, je suis sous borland et j'essaye de faire une palette de dessin genre Paint.
Le problème c'est que j'y connait rien en interface graphique et malgrès toutes les docs que j'ai dl sur le net je n'arrive à rien.
 
Voila un bout de code qui doit peindre le bouton si j'ai bien compris  :

Code :
  1. Ligne->Brush->Bitmap->LoadFromFile("ico.bmp" );


Mais à la compilation, j'ai une erreur:

Citation :

Project Petri.exe raised class EAccessViolation 'Access violation at adress 00401B12 in module 'Petri.exe' Read of Adress 00000000'.Process stopped. Use Step or Run to continue.


 
Dois-je créer moi même mon propore composant dans ce cas là.
Si oui, de quelles classe doit-il dériver ?
Tbutton ?
TGraphic(s)Control? (je ne pense pas car apparement celui là n'interagit pas avec l'utilisateur ou tout du moins le clavier si j'ai bien compris la doc :D)
 
Merci de m'éclairer ;)
 
[SOLUTION]
1) Créer une image ou créer un image multiple (dans ce cas, vos images doivent être alignées horizontalement et être au nombre de 4 maximum. Ces 4 images correspondent aux 4 états que peuvent prendre un boutton. Pour dessinez vos 4 bouttons dans la même image, réferez vous à la doc pour connaître dans quels ordre dessiner les boutons.)
 
2) Sur les conseils de antp, j'ai crée un TBitBtn à la place de mon TButton.
 
3) Dans l'inspecteur d'objet, Propriété Glyph -> ... -> Load -> Image à charger.
 
4) Pour une image multiple, indiquez le nombre d'images contenue dans le bitmap en renseignant NumGlyphs.
C'est en appliquant la formule suivante que borland connaît le décallage a effectuer pour afficher l'image suivante : LargeurTotaleImage/NumGlyphs=ValeurDecallageImage.
NumGlyphs défini donc le nombre total d'image contenues dans le bitmap et doit etre compris entre 1 et 4 images.
 
J'espère pouvoir aider les débutants comme moi dans l'élaboration de leur interface graphique.
 
[url=http://www.oasis.com/support/downloads/systemdevtools/RC4most_man_E_V1.6-41.pdf]Un super Pdf qui m'as bien aidé dans tout ça :
[/url]
 
Merci antp ;)


Message édité par jeoff le 28-02-2004 à 16:12:52
mood
Publicité
Posté le 28-02-2004 à 11:13:35  profilanswer
 

n°658343
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-02-2004 à 11:15:25  profilanswer
 

Ligne c'est quoi comme type d'objet ?
Il y a TBitBtn et TSpeedButton pour des boutons avec image.
Le "Read of address 0000000" c'est probablement parce que un des objets dans ta chaîne de "->" est NULL.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°658360
jeoff
Posté le 28-02-2004 à 11:34:00  profilanswer
 

Ligne c'est mon TButton j'ai oublié de préciser :D
 
Merci :)

n°658398
jeoff
Posté le 28-02-2004 à 12:18:10  profilanswer
 

Bon j'ai réussi à charger mon image mais la propriété NumGlyphs m'intéresse pas mal sauf que je ne comprends aps comment on l'exploite.
 
Voici 2 lignes de code avec Ligne qui est cette fois un TBitBtn :D.
 

Code :
  1. Ligne->Glyph->LoadFromFile("bitmap.bmp" );
  2. Ligne->NumGlyphs=4;


 
Ca veut dire que bitmap.bmp contient 4 images déssinée dans un ordre préci, ou que les 4 images sont bitmap1.bmp,bitmap2.bmp,bitmap3.bmp et bitmap4.bmp, ou je n'ai rien compris :'(.
 
Dans l'aide de borland il est question de tableau d'image.:??:
 
Merci de m'éclairer encore une fois :)

n°658522
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-02-2004 à 14:37:30  profilanswer
 

Ça veut dire que ton bitmap contient 4 images
par ex un bitmap de 64x16 pixels, tu mets numglyphs à 4, ça veut dire que chaque image fait 16x16.
Mais je ne sais pas si 4 c'est utile, en général on en met 2, une pour enabled et une pour disabled il me semble.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°658541
jeoff
Posté le 28-02-2004 à 15:28:21  profilanswer
 

Je viens d'essayer avec 4 images dans le même bmp mais j'y arrive pas, j'ai bien compris le principe mais ça se décalle pas du bon nombre de cases alors que mes images font toutes 25*25 soit un bmp de 25*100 (hauteur*largeur).
Je réitère avec 2 images vu que dans mon cas je n'ai besoin que de Enable et Disable pour mes boutons :)

n°658564
jeoff
Posté le 28-02-2004 à 16:08:53  profilanswer
 

Bon j'ai testé avec 2 images/bitmap et ça fonctionne.
J'ai par la même occasion compris pourquoi ça ne fonctionnait pas avec mes 4 images/bitmap.
 
Dans ma tête je voyais la propriété NumGlyphs comme désignant le n° de l'image à afficher; du coup lorsque je modifiait cette propriété, j'élargissait ou je réduisait la taille de l'image courante.
Car en réalité, NumGlyphs c'est le nombre total d'image dans le bitmap. D'où LargeurBmp/NumGlyphs=ValeurDécallageImage.
 
Ce sont les autres propriétés ou évènement qui modifie l'image à afficher et pas NumGlyphs comme je l'avait compris.
 
Par exemple : NumGlyphs=2 et Enable=true, provoque l'affichage de la première image.
NumGlyphs=2 et Enable=false, provoque l'affichage de la seconde image.
 
Donc je suis un gros gros boulay [:ddr555]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Borland | Résolu | Créer un bouton avec une image à la place du texte

 

Sujets relatifs
[XHTML + IE] Texte qui n'apparait pasapplication console et image
Bouton pour mettre en plein ecranCommenter griser/dégriser un bouton de Formulaire ?
[c++] prob pour créer des fichiers automatiquement (voir dernier post)[GDI+] Transformation couleur image avec ColorMatrix
Créer un projet wxWidgets avec Bloodshed Dev-C++ sous WindowsCréer un userControl editable
[resolu] Cree une liste deroulante sous access ki fonctionne?comment creer un site dans le même style que celui ci
Plus de sujets relatifs à : Borland | Résolu | Créer un bouton avec une image à la place du texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR