Librairie MoreListIconGadget
Librairie MoreListIconGadget
Salut,
voici la nouvelle version de ma librairie MoreListiconGadget (version 1.30) avec 3 commandes supplémentaires (soit en tout 25 commandes).
Ces 3 nouvelles commandes permettent de colorier les cellules, les lignes ou les colonnes d'une listicongadget.
Voici rapidement la syntaxe
SetItemColor(#gadget, ligne, colonne, CouleurTexte, CouleurFond) : cette commande colorise une cellule individuelle. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond.
SetRowColor(#gadget, ligne, CouleurTexte, CouleurFond) : cette commande colorise une ligne complète. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond. Ligne peut prendre 2 valeurs particulières pour coloriser soit les lignes paires soit les impaires. Voir la doc et les fichiers d'exemple.
SetColumnColor(#gadget, colonne, CouleurTexte, CouleurFond) : cette commande colorise une colonne complète. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond. Colonne peut prendre 2 valeurs particulières pour coloriser soit les colonnes paires soit les impaires. Voir la doc et les fichiers d'exemple.
La lib est dispo sur ma page et c'est un fichier executable qui extrait tous les fichiers (dont 25 fichiers d'exemples) automatiquement.
Le fichier fait 515 ko ce qui est gros car il contient les 2 fichiers d'aide, celui en français et celui en anglais qui font à eux deux presque 500 Ko.
J'ai mis beaucoup de temps pour mettre ces 3 commandes au point, j'espère qu'il n'y a pas de bug.
http://denislabarre.free.fr/index.html
voici la nouvelle version de ma librairie MoreListiconGadget (version 1.30) avec 3 commandes supplémentaires (soit en tout 25 commandes).
Ces 3 nouvelles commandes permettent de colorier les cellules, les lignes ou les colonnes d'une listicongadget.
Voici rapidement la syntaxe
SetItemColor(#gadget, ligne, colonne, CouleurTexte, CouleurFond) : cette commande colorise une cellule individuelle. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond.
SetRowColor(#gadget, ligne, CouleurTexte, CouleurFond) : cette commande colorise une ligne complète. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond. Ligne peut prendre 2 valeurs particulières pour coloriser soit les lignes paires soit les impaires. Voir la doc et les fichiers d'exemple.
SetColumnColor(#gadget, colonne, CouleurTexte, CouleurFond) : cette commande colorise une colonne complète. Utiliser -1 pour ne pas changer la couleur d'un des 2 paramètres CouleurTexte ou CouleurFond. Colonne peut prendre 2 valeurs particulières pour coloriser soit les colonnes paires soit les impaires. Voir la doc et les fichiers d'exemple.
La lib est dispo sur ma page et c'est un fichier executable qui extrait tous les fichiers (dont 25 fichiers d'exemples) automatiquement.
Le fichier fait 515 ko ce qui est gros car il contient les 2 fichiers d'aide, celui en français et celui en anglais qui font à eux deux presque 500 Ko.
J'ai mis beaucoup de temps pour mettre ces 3 commandes au point, j'espère qu'il n'y a pas de bug.
http://denislabarre.free.fr/index.html
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Pour la police, faut que je regarde avec mon truc mais il me semble que la hauteur de ligne se modifie automatiquement quand on change de taille.
je regarde et je te confirme
je regarde et je te confirme
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
La seule manière que j'ai trouvé, c'est sur des site de prog.
Il faut créer un listicongadget avec le style #LVS_OWNERDRAWFIXED.
Maintenant que tu as mis ce style, tu n'arriveras plus à afficher quelque chose, tu dois tout faire.
Il faut intercepter 2 événements :
#WM_DRAWITEM
Avec ce message tu redessines tous les éléments en utilisant la structure LVITEM. C'est interessant car tu peux positionner le texte ou tu veux dans la cellule avec TextOut_() et l'icon avec DrawIconEx_()
Regarde le code de Fred concernant la combobox avec le style ownerdrawn, mon code s'en inspire avec la différence que c'est une listicon.
http://purebasic.new.myforums.net/viewt ... ht=textout
Maintenant pour pouvoir redimmensionner les lignes, il y a plusieurs solutions.
Soit tu utilise une icone transaparente que tu met dans un listicon que tu assigne à la listicongadget, toutes les lignes prendront la taille de l'icone augmenté de plusieurs pixels, soit tu change la police de la listicon avec setgadgetFont, et les lignes prendront automatiquement la taille appropriées pour la police soit enfin tu intercepete le message #WM_MEASUREITEM qui est n'envoyé que lorsque la listicon est créée. La ruse consiste à redimensionner la listicon avec setwindopos, ce qui va générer un message #WM_MEASUREITEM et la tu créé une variable basée sur la structure DRAWITEMSTRUCT et le paramètre itemHeight de cette structure est la hauteur de l'item c'est-à-dire de la ligne
C'est un peu lourd, Hein ?
J'espère pouvoir faire tout ça pour la nouvelle version de ma lib dans un mois ou deux. Par contre en ownerdrawn, les couleurs c'est beaucoup plus simple qu'en utilisant les messages #CDDS_PREPAINT etc.
Il faut créer un listicongadget avec le style #LVS_OWNERDRAWFIXED.
Maintenant que tu as mis ce style, tu n'arriveras plus à afficher quelque chose, tu dois tout faire.
Il faut intercepter 2 événements :
#WM_DRAWITEM
Avec ce message tu redessines tous les éléments en utilisant la structure LVITEM. C'est interessant car tu peux positionner le texte ou tu veux dans la cellule avec TextOut_() et l'icon avec DrawIconEx_()
Regarde le code de Fred concernant la combobox avec le style ownerdrawn, mon code s'en inspire avec la différence que c'est une listicon.
http://purebasic.new.myforums.net/viewt ... ht=textout
Maintenant pour pouvoir redimmensionner les lignes, il y a plusieurs solutions.
Soit tu utilise une icone transaparente que tu met dans un listicon que tu assigne à la listicongadget, toutes les lignes prendront la taille de l'icone augmenté de plusieurs pixels, soit tu change la police de la listicon avec setgadgetFont, et les lignes prendront automatiquement la taille appropriées pour la police soit enfin tu intercepete le message #WM_MEASUREITEM qui est n'envoyé que lorsque la listicon est créée. La ruse consiste à redimensionner la listicon avec setwindopos, ce qui va générer un message #WM_MEASUREITEM et la tu créé une variable basée sur la structure DRAWITEMSTRUCT et le paramètre itemHeight de cette structure est la hauteur de l'item c'est-à-dire de la ligne
C'est un peu lourd, Hein ?
J'espère pouvoir faire tout ça pour la nouvelle version de ma lib dans un mois ou deux. Par contre en ownerdrawn, les couleurs c'est beaucoup plus simple qu'en utilisant les messages #CDDS_PREPAINT etc.
J'ai mis à jour ma librairie MorelisticonGadget --> Version 1.31
Dispo ici :
English page : http://denislabarre.free.fr/index_en.html
Non je plaisante, y a aussi en français
Page française : http://denislabarre.free.fr/index.html
Il y a soit un exe qui installe la lib soit un zip, donc les fichiers à extraire soit-même.
J'ai corrigé un bug dans les couleurs et j'ai ajouté une commande :
RemoveItemsColor(#Gadget) pour supprimer les couleurs (en fait ce sont les couleurs système qui seront utilisées.
Dispo ici :
English page : http://denislabarre.free.fr/index_en.html
Non je plaisante, y a aussi en français
Page française : http://denislabarre.free.fr/index.html
Il y a soit un exe qui installe la lib soit un zip, donc les fichiers à extraire soit-même.
J'ai corrigé un bug dans les couleurs et j'ai ajouté une commande :
RemoveItemsColor(#Gadget) pour supprimer les couleurs (en fait ce sont les couleurs système qui seront utilisées.