Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Version d'essai d'un objet IconComboBox | |
| | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 0:46 | |
| Bon, IconList est prêt. Il suffit de recharger la DLL (je n'ai pas encore changé le numéro de version, je n'ai pas encore fait la doc). Les fonctions sont exactement les mêmes que pour IconComboBox, tu remplaces simplement le terme "Combo" par "List", et ça devient l'objet IconListBox. J'ai pris le même programme de démo, en ajoutant deux boutons "Créer" et "Supprimer" à droite - c'est pour le nouvel objet. Tu peux tester les deux objets Icon... en parallèle. - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent, creerL, supprimerL
dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB% dim no_DoIcons%, no_DoIndent%, options%, transp% ' dim ilb$ : ilb$ = "KGF.ilb" dim ilb$ : ilb$ = "MonTest_32x32.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes" no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL
' IL% = dll_call2("CreateImageList",16,16) IL% = dll_call2("CreateImageList",32,32) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$ return end_if if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserILB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconListBox ligne "+str$(index%)+" = "+s$ return end_if return
creer: if ICB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%) res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) end_if
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
creerL: if ILB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%) res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) end_if
return supprimerL: ILB% = dll_call1("DeleteIconListBox",ILB%) return
Voici ce que ça donne: Tu peux cliquer dans l'un ou l'autre de ces objets - le USER_EVENT les identifie parfaitement. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 6 Mar 2018 - 2:01 | |
| Ces deux objets sont superbes. L' indentation et les icones vont rendre plus lisibles ces présentations. Bravo Klaus ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| | | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 7:29 | |
| Avec Klaus c'est mieux que le père noël ! Tu te couches en lui soumettant une idée... Et tu te lèves le lendemain elle est déjà réalisée ! C'est formidable Klaus ! Merci et un grand Bravo encore une fois. Pour pinailler, tu connais mon intérêt et mon goût pour les interfaces et les couleurs... Est ce que tu penses qu'il est possible de : - choisir la couleur de fond - la couleur du texte - et la couleur de la sélection Je parle bien sûr du ComboBox et du ListBox. Merci d'avance et bonne journée Klaus... - Klaus a écrit:
- je suis dans ma phase créative...
D'ici ce soir, avec un peu de chance tu nous aura encore épaté et surpris avec plein de nouvelles choses. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 6 Mar 2018 - 10:33 | |
| N' en jettes plus, je crois que Klaus t' a vu venir... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 11:25 | |
| Eh bien, c'est fait... Il y a de nouvelles fonctions SetColorsForIconComboBox et SetColorsForIconListBox: - Code:
-
res% = dll_call4("SetColorsForIconComboBox",ILB%,cFond%,cFont%,cSelect%) res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%) Tu peux jouer avec les variables des lignes 8, 9 et 10 pour voir l'effet. Voici la démo: - Code:
-
' test_IconComboBox.bas
label creer, supprimer, UserEvent, creerL, supprimerL
dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB% dim no_DoIcons%, no_DoIndent%, options%, transp% dim cFond% : cFond% = hex("FFFFFF") : ' blanc dim cFont% : cFont% = hex("000000") : ' noir dim cSelect% : cSelect% = hex("FF0000") : ' bleu
' dim ilb$ : ilb$ = "KGF.ilb" dim ilb$ : ilb$ = "MonTest_32x32.ilb"
dll_on "KGF.dll"
on_user_event UserEvent
no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes" no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL
' IL% = dll_call2("CreateImageList",16,16) IL% = dll_call2("CreateImageList",32,32) res% = dll_call2("LoadImageList",IL%,adr(ilb$)) end
UserEvent: if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserICB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$ return end_if if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return index% = bin_and(user_event_wparam,hex("0000FFFF")) UserILB% = user_event_lparam : ' ici, on a l'identifiant de l'objet ayant généré l'évènement ! s$ = string$(50," ") res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$)) s$ = trim$(s$) message "clic dans IconListBox ligne "+str$(index%)+" = "+s$ return end_if return
creer: if ICB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%) res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0) end_if res% = dll_call4("SetColorsForIconComboBox",ICB%,cFond%,cFont%,cSelect%)
return
supprimer: ICB% = dll_call1("DeleteIconComboBox",ICB%) return
creerL: if ILB%<>0 then return options% = 0 if checked(no_DoIcons%)=1 then options% = options% + 1 if checked(no_DoIndent%)=1 then options% = options% + 2 ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%) res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300) if 1=2 transp% = hex("FFFFFF") s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2) s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0) else s$ = "Déjeuner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) s$ = "Hors-d'oeuvres" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1) s$ = "Pâté de campagne" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2) : ' pas d'icône ! s$ = "Radis/Beurre" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Plats" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1) s$ = "Steak/frites" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2) s$ = "Dîner" res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0) end_if
res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%) return supprimerL: ILB% = dll_call1("DeleteIconListBox",ILB%) return
Dernière édition par Klaus le Mar 6 Mar 2018 - 21:09, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 18:15 | |
| Bonsoir Klaus ! Merci pour ces nouvelles commandes. c'est super ! Par contre je n'arrive plus a créer le fichier ILB avec le programme ManageImageList.bas que tu as mis en ligne sur la page précédente. As tu changé quelque chose ? je ne comprends pas ! J'ai essayé avec les fichiers *.bmp au format 15*15 et un autre test avec les fichiers 25*25. L'autre jour tout avait l'air de bien fonctionner pourtant ! Est ce la nouvelle version de KGF ? Décidément ces fichiers ILB me sortent vraiment par les yeux... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 20:22 | |
| Heu Klaus je crois qu'il y a un problème... J'ai repris ton code et j'ai juste changé les valeurs des couleurs. Pourquoi ça ne change que le LIST_BOX et pas le COMBO_BOX A moins d'avoir loupé quelque chose ?! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:09 | |
| Parce qu'en ligne 98, j'ai laisse ILB% comme premier paramètre au lieu de mettre ICB%... désolé. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:10 | |
| As-tu d'autres souhaits pour les Ico... ? Une police spécifique par ligne, une couleur de fond spécifique par ligne, ... ? Puisque je dessine tout, tout est possible. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:20 | |
| Ok pour la ligne 98, je viens de vérifier et ça marche !
Par contre as tu regardé le message juste avant ? J'ai un problème avec ManageImageList.bas. Je ne comprends pas ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:27 | |
| - Citation :
- J'ai un problème avec ManageImageList.bas. Je ne comprends pas !
Moi non plus. Le fichier MonTest_32x32.ilb, disponible sur mon WebDav, a été construit avec ce programme. Et nul besoin de convertir les fichiers au préalable ou de les dimensionner - ce programme se charge de tout. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:37 | |
| As tu refais un test avec la dernière version de KGF ? Je me demande s'il n'y a pas un problème...
Ca viens peut être de moi... Pourrai tu retester la création des icônes avec ManageImageList.bas stp avec la dernière version de KGF. Merci Klaus. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:49 | |
| En effet, c'est bizarre. Je n'ai pas du tout touché à ces fonctions. Je vais chercher d'om ça vient... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 21:51 | |
| Ah ! désolé pour toi Klaus mais ça me rassure... Ça ne viens pas de moi ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 22:27 | |
| C'est réglé. Je me suis planté en beauté, dans la modification d'une partie tout à fait différente de la DLL. Pour des raisons techniques, j'avais copié la fonction AddImageToImageList dans un autre module, malheureusement en gardant le nom, et en gardant par-dessus le marché l'indication "fonction exportée". Et c'est cette version "doublon" que j'avais modifiée pour mes besoins, qui est appelée, et non la fonction légitime.
C'est corrigé maintenant? Recharge la DLL, avec mes excuses pour la perturbation... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 22:32 | |
| Tu es tout excusé Klaus ! KGF est un sacré morceau et les erreurs sont humaines ! Je vais tester de nouveau tout ça avec mes propres icones pour voir le résultat. Je te tiens au courant pour d'éventuels améliorations ou compléments... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 22:53 | |
| Du coup comme tu me propose si gentiment de te donner des améliorations, alors je me lance... Est-il possible de faire une sélection façon SELECTION-DESELECTION sur chaque ligne du LIST_BOX ? J'explique : 1/ on crée les 5 lignes avec les icônes. 2/ on clique sur la ligne 1 pour l'activer avec une couleur différente (ça c'est bon) et possibilité de changer l’icône. 3/ on sélectionne une 2eme ligne sur le même principe 4/ et pourquoi pas toutes les lignes de la même façon 5/Puis lorsqu'on clique de nouveau sur une ligne sélectionnée on repasse sur la couleur de fond normale et avec l’icône de base. Bon et bien voila du travail en perspective pour toi Klaus ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 23:33 | |
| En fait, tu veux pouvoir faire une multi-sélection dans une IconListBox, n'est-ce pas ? Par clic en maiintenant la touche Shift ou Control enfoncée, comme c'est le cas dans le gestionnaire des fichiers, par exemple ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mar 6 Mar 2018 - 23:44 | |
| En fait non je souhaite pouvoir les contrôler individuellement par un simple clic. Pas besoin de sélection multiple par SHIFT ou autre. En fait ça serai pour gerer les sous-programmes dans GPP. En sachant que dans GPP, on affiche chaque sous-programme dans un fenêtre synédit séparée. Et je limite à 10 le nombre de fenétres (du moins pour le moment... Exemple : On sélectionne une ligne (un sous_programme) pour afficher la fenêtre synedit correspondante au code du sous_programme. Ensuite lorsqu'on dé-selectionne la ligne cela provoque la fermeture de la fenêtre synedit. Tu vois un peu le truc ? Voila l'exemple actuel : | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mer 7 Mar 2018 - 0:00 | |
| En fait, ce serait exactement la multi-sélection, avec le maintien de la touche Control étant simulé de façon implicite, non ? Chaque clic sur une ligne l'ajoute dans la sélection ou l'enlève, suivant son état antérieur. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mer 7 Mar 2018 - 0:05 | |
| Heu oui en fait on peut le voir de cette façon !
Et concrètement on doit pourvoir cliquer individuellement sur chaque ligne pour activer ou désactiver la ligne choisie.
Du moment que je puisse avoir un retour sur la ligne sélectionnée ou désélectionnée. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mer 7 Mar 2018 - 0:19 | |
| Ok, ça peut se faire. Je vais mettre ce mode à disposition via une option, modifiant le fonctionnement de base de l'objet. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai d'un objet IconComboBox Mer 7 Mar 2018 - 0:54 | |
| C'est fait. Je n'ai pas encore publié la version car la doc n'est pas prête. Mais télécharge KGF.dll de mon WebDav, dossier DLLs, et ajoute la ligne suivante dans ton code, à l'endroit où tu définis les couleurs: - Code:
-
res% = dll_call2("OptionsForIconListBox",ILB%,1) et ça marchera. D'ailleurs, tu as aussi la nouvelle fonction - Code:
-
nselect% = dl_call2("GetAllSelectedItemsFromIconListBox",ILB%,handle(memo%)) Elle retourne dans un mémo (caché, avec BAR_BOTH), la liste des éléments sélectionnés, un élément par ligne, dans le format suivant: - Code:
-
index=libellé Le code retour est -1 en cas d'erreur, ou >=0 donnant le nombre d'éléments sélectionnés. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai d'un objet IconComboBox Mer 7 Mar 2018 - 7:38 | |
| Bonjour Klaus, J'ai fais le test avec OptionsForIconListBox. C'est parfait. je te remercie. C'est exactement le résultat attendu. Concernant le MEMO caché avec le BAR_BOTH je n'ai pas encore testé. Je regarde tout çà se soir. Merci et bonne journée. | |
| | | Contenu sponsorisé
| Sujet: Re: Version d'essai d'un objet IconComboBox | |
| |
| | | | Version d'essai d'un objet IconComboBox | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |