Composant bouton avec image png ?

Composant bouton avec image png ? - Delphi/Pascal - Programmation

Marsh Posté le 29-11-2004 à 10:23:32    

existe-t-il un composant bouton avec posibilité de mettre une image png dessus ?
 
Merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-11-2004 à 10:23:32   

Reply

Marsh Posté le 29-11-2004 à 10:45:21    

De base dans delphi nan, essaye en installant cette librairie:
http://www.delphi-gems.com/Graphics.php


---------------
http://www.crystalvcl.net
Reply

Marsh Posté le 29-11-2004 à 10:48:29    

Ben en fit j'ai déjà un composant qui me permet d'afficher les images png dans delphi.
Ce que je cherche c'est juste le compo bouton.
A mmoins que je puisse utiliser le composant bitbtn ?
 
PS : non je ne peux charger des png qu'avec le composant Timage.
Bitbtn ne prend que des bmp.


Message édité par davidmarli le 29-11-2004 à 10:49:36

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-11-2004 à 11:26:32    

T'as était voir le lien avant de répondre?


---------------
http://www.crystalvcl.net
Reply

Marsh Posté le 29-11-2004 à 11:33:28    

Oups, j'avais effectivement raté la deuxième ligne !
Merci
je testerai cela ce soir.


Message édité par davidmarli le 29-11-2004 à 11:34:18

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-11-2004 à 11:37:34    

Vala c'est mieux :D  
De rien en tout cas.


---------------
http://www.crystalvcl.net
Reply

Marsh Posté le 02-12-2004 à 18:15:41    

euh comment fait-on pour enlever un composant ?
Parce que j'ai voulu installer le composant que tu m'as indiqué, mais il gère super mal les couleurs de ptransparence dans les png, et il m'a foutu la merde dans mon appli.
 
Merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 02-12-2004 à 18:26:32    

Pour l'enlever de l'appli il suffit d'enlever toutes ses références dans les uses.
Pour l'enlever de Delphi il faut soit le virer de dclusr.dpk si tu l'as installé là (ou si tu l'as installé via "install component" ), soit aller dans la liste des packages (menu components) et virer le package correspondant au composant.
 
Pour un support correct tu PNG avec transparences dans les imagelist et des boutons avec ces PNG, il y a cette série de composants tout récents mais encore en test :  
http://www.thany.org/pngcomponents

Reply

Marsh Posté le 02-12-2004 à 18:36:48    

ben je l'ai mis dans le dclusr.dpk !
Donc quelle est la marche à suivre pur l'enlever ?
 
Merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 02-12-2004 à 20:15:23    

tu ouvres dclusr.dpk, tu vires le fichier .pas du compo dans la liste des compos qui sont dans dclusr.dpk (fenêtre de package qui est apparue quand t'as ouvert le fichier) et puis tu cliques compile puis install, il devrait te dire que le compo en question n'est plus enregistré


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-12-2004 à 20:15:23   

Reply

Marsh Posté le 02-12-2004 à 21:02:49    

~merci nickel. Maintenant les images png s'affichent bien.
Sinon, j'ai voulu essayé ton compos (thany...)
mais delphi me dit qu'il y a un pb de header au moment de la compil !
Donc là je ne vois pas que faire.


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 02-12-2004 à 21:20:51    

vu comme tu as bien détaillé le problème ("un pb de header" ) je ne vois pas que faire non plus ... :p


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-12-2004 à 22:07:35    

oui, c'est vrai. Mais bon qd même, tu pourrais faire un effort et te concentrer très fort sur mon pb :p ! (ah pardon t'es pas devin !)
Bon et bien tant pis pour toi, je reviens avec deux pb à te soumettre :  
 
1 - pour ce pb de HANDLE (et pas header ! en plus je ne t'aidais pas !) : voilà ce que je fais :  
 

Citation :

j'ouvre le fichier png_D7.dpk
Un fenêtre "paquet - PNG_D7.dpk' s'ouvre. Comme indiqué dans le fichier html fournit avec la package, je clique sur compiler. Ca compile, pas de pb.
Ensuite le fichier d'aide indique de cliquer sur Installer : et là  
Handle de paquet incorrect ! (on  peut juste cliquer sur 'OK' pour fermer la boite de dialogue!


 
2 - J'ai une fiche avec un bouton, une checklistbox et une listview.
suite à l'appuie sur le bouton, ma checklistbox se remplie avec le nom des cinemas de tout un département choisi (enfin bref, peu importe)
On peut alors sélectionner les cinés qui nous intéressent et ceux-ci s'affichent dansla listview.
J'ai juste un petit pb : si l'on coche/décoche un peu trop vite un element de la checklistbox, delphi ne prend pasen compte le chgt d'état. Est-il possible demodifier cela ?
 
Pour info voici mon code  
 

Citation :

procedure TForm2.CheckListBox1Click(Sender: TObject);
var cineexiste:boolean;
    i,efface:integer;
begin
cineexiste:=false;
efface:=999;
checklistbox1.Update;
if checklistbox1.checked[checklistbox1.itemindex] then //si l'élément sélectionné est checked
   begin
 
   // on controle qu'il n'est pas déjà dans la liste, sinon on peut l'ajouter.
    for i:=0 to listbox1.count-1 do
     begin
      if listbox1.Items[i]=checklistbox1.items[checklistbox1.ItemIndex] then
      begin
       cineexiste:=true;
      end;
     end;
    if cineexiste=false then listbox1.Items.add(checklistbox1.items[checklistbox1.ItemIndex]);
  end
  else // si l'éléement sélectionné n'est pas coché on l'enlève
  begin
   for i:=0 to listbox1.items.Count-1 do
    if listbox1.items[i]=checklistbox1.Items[checklistbox1.ItemIndex] then efface:=i;
    if efface<>999 then listbox1.Items.Delete(efface);
  end;
end;


 
MErci


Message édité par davidmarli le 02-12-2004 à 22:08:59

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 02-12-2004 à 23:03:52    

1. "Handle de paquet incorrect" ? il dit vraiment ça ?
 
2. essaie

Code :
  1. CheckListBox1.BeginUpdate;
  2. try
  3.   [tout ton code]
  4. finally
  5.   CheckListBox1.EndUpdate;
  6. end;


Ton code est un peu bizarre (et pas super bien indenté ni mis en page :p) ; c'est quoi ce 999 ? Tu mettrais pas une valeur spéciale genre une valeur négative ou MaxInt comme valeur spéciale plutôt qu'un truc qui risque d'être un index réel ? :p
Et je ne comprends pas l'intérêt de la boucle ; un IndexOf ne serait pas plus simple ?


Message édité par antp le 02-12-2004 à 23:05:01

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-12-2004 à 23:06:24    

Chez moi le PNG_D7 s'installe sans problème


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-12-2004 à 06:31:42    

pourle handle, c'est vraiment ce qu'il me met ! (j'ai pris la version 1.0 RC1, enfin celle qui est sur le site !)
 
Sinon pour la fonction, je fais ce que je peux !
C'est quoi le indexof ?
 
MErci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 03-12-2004 à 09:04:42    

Tous les TStrings/TStringList ont une méthode IndexOf qui renvoie l'index de la chaîne demandée, ou -1 si elle n'est pas dedans. Les TListBox & TCheckListBox utilisant un TStrings, c'est la manière la plus simple de voir si un item est dedans.
(puis [:f1key])

Reply

Marsh Posté le 03-12-2004 à 09:11:52    

Merci.
 
Oui effectivement après avoir posté j'ai fait un tour dans l'aide de delphi et j'ai vu le principe de cette fonction que je ne connaissez pas !
 
Encore merci.
 
Sinon ça veut dire quoi "indenté" ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 03-12-2004 à 09:16:06    

http://community.borland.com/artic [...] 80,00.html
 
bien indenté :
 

Code :
  1. if machin then
  2. begin
  3.   truc(a);
  4.   while bidule do
  5.   begin
  6.     chose(b);
  7.   end;
  8. end;


 
mal indenté :

Code :
  1. if machin then
  2. begin
  3. truc(a);
  4.     while bidule do
  5.    begin
  6.         chose(b);
  7.      end;
  8. end;


Message édité par antp le 03-12-2004 à 09:16:38
Reply

Marsh Posté le 03-12-2004 à 17:59:39    

Bon avec indexof, evidemment la routine est moins longue et marche de la même façon.
Mais j'ai tjs mon pb. De plus les commande chcklistbox.beginupdate, et endupdate n'existe pas chez moi !
la seule que me propose delphi est update tout court !
 
PS : bon en fait j'ai trouvé, c'est checklistbox.items.beginupdate
 
Mais le pb reste le même, si on clique trop rapidement (en 1 seconde on coche/decoche) la commande n'est pas prise en compte.


Message édité par davidmarli le 03-12-2004 à 18:06:33

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 03-12-2004 à 18:01:28    

C'est Checklistbox.Items.BeginUpdate (une petite recherche rapide dans la doc ne t'aurait pas fait de mal :p)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-12-2004 à 18:05:47    

Mais après observation du code de Delphi ça ne changera pas grand chose à ton problème.
Tu peux tenter de désactiver la liste pendant ton traitement, ou améliorer ton code pour que ça aille plus vite :D
Par exemple en utilisant des BeginUpdate/EndUpdate quand tu modifies des listes (listbox, listview, treeview, combobox, etc.) dans des boucles ou que tu fais des Clear sur des listes.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-12-2004 à 18:07:09    

oups! on s'est croisé!


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 03-12-2004 à 18:11:21    

croisé ? :??: j'ai pas mis 2 minutes à taper mon message hein :D c'est suite à ton post que je l'ai tapé


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed