tartave
Messages postés15Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention 1 mars 2009
-
28 févr. 2009 à 16:34
tartave
Messages postés15Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention 1 mars 2009
-
1 mars 2009 à 20:27
comme vous pouvez le voir j'ai utiliser des BitBtn. et ces Bitbtn sont dans un panel.
je voudrai savoir si il est possible de faire quelque chose qui ressemble a:
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 1 mars 2009 à 01:52
Tu peux peut être penser à utiliser un TToolBar ...
tu pourras faires des choses du genre à ca :
const
MON_IMAGE = '\MonImage.bmp';
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
for i:=0 to ToolBar1.ButtonCount-1 do begin
with ToolBar1.Buttons[i] do
begin
Caption := 'Boutton n'+IntToStr(i);
// MON_IMAGE = chemin de ton Image ...
ImageIndex := MON_IMAGE;
end;
end;
end;
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 1 mars 2009 à 12:41
salut,
il y a plus simple ...
tu as deux images a afficher, d'après ton exemple, donc il suffit de donner une valeur au "Tag" des TBitBtn afin de pouvoir les différencier.
chez toi c'est très simple il n'y en a qu'un à changer
(par l'inspecteur d'objets):
BitBtn_S2.Tag := 1;
tous les autres étant à zéro par défaut.
procedure TForm1.Button4Click(Sender: TObject);
var I : Integer;
begin
with panel1 do
for I := 0 to ControlCount - 1 do
if (controls[I] is TBitBtn) then
with TBitBtn(Controls[I]) do
case Tag of
0 : Glyph.LoadFromFile('image\lave_linge_deselctioné.bmp');
1 : Glyph.LoadFromFile('image\lave_linge_mouse_S.bmp');
end;
end;
mais l'utilisation d'un TImageList reste fortement conseillé pour ton cas
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 1 mars 2009 à 13:09
Moi, je ne trouve pas ça plus simple ni plus facile à lire. Au contraire.
Et question perf' on perd bcp.
J'dis pas, si y'avait 150 TBitBtn...
Ca fait plus pro, c'est sûr. Mais une fois compilé, ça ne sera pas plus simple non plus.
Quant au TImageList, si on ne veut pas donner la possibilité à l'utilisateur de changer les Bitmaps, c'est le bon choix.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 1 mars 2009 à 13:49
pas de soucis
"... Je critique pas, Cirec. :)
Je dis que c'est un choix. C'est tout."
j'argumentai juste mon point de vue
"Mais je ne suis quand même pas très convaincu du bien-fondé... ;)"
mais c'est ton droit
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 1 mars 2009 à 14:14
sympa cirec , je ne connaissais pas ...
Merci
Puis je trouve que cet un bon exemple d'utilisation du Tag (on peut vraiment faire ce qu'on veut avec ca )
tartave
Messages postés15Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention 1 mars 2009 1 mars 2009 à 14:54
J'ai opter pour la solution de cirec qui ma fait découvrir le tag.
Dans mon cas j ai que une seul image qui change, celle où l'utilisateur à clicé sur le TBitBtn. Et les autre sont soir des Small ou Medium.
Donc j affecte le tag à 0 a toutes les Small et le tag 2 a toutes les Medium.
Enssuite lorsque l'utilisateur clic sur un TBitBtn j affect le tag 1 ou 3 (si il est Small ou Medium). est apré chargement des images je remet le tag à 0 ou 2.
procedure TMainForm.BitBtn_S1Click(Sender: TObject); // cette procedure est réalisé pour les 15 BitBtn
var I : Integer;
begin
BitBtn_S1.Tag:=1;
with panel1 do
for I := 0 to ControlCount - 1 do
if (controls[I] is TBitBtn) then
with TBitBtn(Controls[I]) do
case Tag of
0 : Glyph.LoadFromFile(Deselect_S);
1 : Glyph.LoadFromFile(Mouse_S);
2 : Glyph.LoadFromFile(Deselect_M);
3 : Glyph.LoadFromFile(Mouse_M);
end;
BitBtn_S1.Tag:=0; // remet le tag a ca position initial
end;
tartave
Messages postés15Date d'inscriptionvendredi 5 octobre 2007StatutMembreDernière intervention 1 mars 2009 1 mars 2009 à 20:27
derniere question serai t'il possible d'inclure le code de cirec dans une function ?
code:
with panel1 do
for I := 0 to ControlCount - 1 do
if (controls[I] is TBitBtn) then
with TBitBtn(Controls[I]) do
case Tag of
0 : Glyph.LoadFromFile(Deselect_S);
1 : Glyph.LoadFromFile(Mouse_S);
2 : Glyph.LoadFromFile(Deselect_M);
3 : Glyph.LoadFromFile(Mouse_M);
end;