FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
Version d'essai d'un objet IconComboBox Emptypar jjn4 Aujourd'hui à 17:39

» Une calculatrice en une ligne de programme
Version d'essai d'un objet IconComboBox Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
Version d'essai d'un objet IconComboBox Emptypar Pedro Hier à 19:31

» Les maths du crocodile
Version d'essai d'un objet IconComboBox Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
Version d'essai d'un objet IconComboBox Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Version d'essai d'un objet IconComboBox Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Version d'essai d'un objet IconComboBox Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Version d'essai d'un objet IconComboBox Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Version d'essai d'un objet IconComboBox Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Version d'essai d'un objet IconComboBox Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Version d'essai d'un objet IconComboBox Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Version d'essai d'un objet IconComboBox Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Version d'essai d'un objet IconComboBox Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Version d'essai d'un objet IconComboBox Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Version d'essai d'un objet IconComboBox Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier

 

 Version d'essai d'un objet IconComboBox

Aller en bas 
3 participants
Aller à la page : 1, 2, 3, 4  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 0:55

J'ai fait un ouvel objet: IconComboBox.

C'est comme une combo normale, mais chaque ligne a une icône prise dans une ImageList (voir les fonctions ImageList de KGF.dll pour cela). En plus, les éléments peuvent être décalés (indentés), un peu à la manière d'une vue arborescente. Un clic dans une de ces lignes déclenche un USER_EVENT qui donne le numéro de ligne.

En voici une démo:
Code:
' test_IconComboBox.bas


label creer, supprimer, UserEvent

dim res%, ICB%, IL%, no%, s$, WParam%, LParam%, index%, UserICB%
dim ilb$ : ilb$ = "KGF.ilb"


dll_on "KGF.dll"

on_user_event UserEvent


no% = no% + 1 : button no% : caption no%,"Créer" : on_click no%,creer
no% = no% + 1 : button no% : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer

IL% = dll_call2("CreateImageList",16,16)
res% = dll_call2("LoadImageList",IL%,adr(ilb$))
end

UserEvent:
  if bin_and(user_event_wparam,hex("FF000000"))<>hex("09000000") then return
  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 ligne "+str$(index%)+" = "+s$
  return

creer:
  if ICB%<>0 then return
  ICB% = dll_call2("CreateIconComboBox",handle(0),IL%)
  res% = dll_call5("LocateIconComboBox",ICB%,20,50,200,0)
  
  s$ = "Déjeuner"
  res% = 17
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,2,3,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,5,6,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,8,9,2)
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,11,12,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,14,15,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,17,18,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,20,21,0)

  return

supprimer:
  ICB% = dll_call1("DeleteIconComboBox",ICB%)
  return

C'est encore en train d'évoluer, mais ça permet déjà d'avoir une bonne idée. Le programme de démo utilise KGF.ilb comme ImageList (disponible sur le WebDav), mais n'importe quel fichier ILB fera l'affaire.

Voici brièvement le format d'appel des fonctions existantes:
Code:
ÎCB% = dll_call2("CreateIconComboBox",handle(dest%,IL%) : ' IL% : identifiant d'une image list avec les icônes
res% = dll-call5("LocateIconComboBox",ICB%, x%,y%,w%,h%)
ICB% = dll-call1("DeleteIconComboBox",ICB%)
res% = dll_call6("AddItemToIconComboBox",ICB%,adr(txt$),ico1%,ico2%,ico3%, indent%) : ' icox%: index des icônes dans IL%  indent%: indentation  res%=index de la ligne ajoutée
res% = dll_call3("GetItemOfIconComboBox",ICB%, index%, adr(txt$))  : ' txt$: reçoit le libellé de la ligne cliquée
res% = dll_call2("SelectItemOfIconComboBox",ICB%,index%)


Dernière édition par Klaus le Dim 4 Mar 2018 - 11:23, édité 3 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 1:11

Encore une nouveauté ! cheers
Klaus j'arrive pas à te suivre. Çà va trop vite !!! drunken bounce king

Ah oui l'ilb. Il faut que je m'y remette alors...
J'ai toutes mes icones en BMP et comme mes programmes évoluent régulièrement, mes icones aussi !

STP, rappelle moi où je peux trouver le programme qui permet la création d'une bibliothèque ILB ?
Tu as bien du le mettre quelques part... Wink

Merci klaus
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 1:18

Citation :
rappelle moi où je peux trouver le programme qui permet la création d'une bibliothèque ILB ?
Dans mon WebDav, dossier DLLs, sous-dossier IcoLibrary. Laà il y a aussi une copie de KGF.ild (370 icônes actuellement).

Citation :
Klaus j'arrive pas à te suivre. Çà va trop vite !!!
Désolé, je suis actuellement dans une phase créative...

EDIT

Juste une petite remarque:
Pour la démo, j'utilise KGF.ilb, facilement téléchargeable sur mon WebDav. Mais n'importe quelle ILB fait l'affaire. KGF.ilb a des icônes de 16x16 pixels, mais on peut faire les dimensions qu'in veut, sachant que:
1. toutes les icônes d'une ILB doivent avoir les mêmes dimensions
2. les dimensions des images déterminent la hauteur des lignes de la combo
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 2:01

Bon ben ILB c'est pas pour moi !

J’essaie de faire une bibliothèque à partir de mes icônes (qui sont en fait des images BMP)
Il me semblait qu'on pouvait les utiliser tel que mais je n'y arrive pas !

Je me souviens avoir déjà essayé il y a un an ou 2, mais je n'y arrive pas ! Suspect
Entre la création d'une biblio et l'insertion des icônes, il ne se passe pas grand chose !

ILB C'est vraiment pas pour moi ! dommage... scratch
Tant pis, je reprendrai ça plus tard. Maintenant au lit...
Sleep Sleep Sleep
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 11:24

J'ai simplifié l'appel à CreateIconComboBox, en supprimant un des paramètres. Plus besoin de passer spécifiquement le handle de la form 0. Le code au début et la mini-doc des fonctions sont actualisés.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 20:39

Bonsoir Klaus,

Concernant la bibliothèque ILB, Quels sont les formats d'image autorisés pour les images à intégrer à la bibliothèque ?
Est ce que l'on peut utilisé les fichiers BMP ?
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 21:16

Tel que le programme est fait, ce sont des fichier *.ICO qui sont accecptés.

Mais un fichier ILB est beaucoup plus général que ça. La seule contrainte (et de taille !) est que toutes les images doivent avoir les mêmes dimensions. Peu importe des dimensions: 16x16, 32x32 etc pour les icônes, mais en fait tu peux faire 400x300, ou 1500x2000 etc, comme tu veux.

Cependant, dans ce cas, tu ne peux pas utiliser IcoLibrary pour la créer. Il te faut faire un petit programme Panoramic qui crée une ImageList via KGF.dll:
Code:
res% = dll_call2("CreateImageList",w%,h%)
en spécifiant largeur et hauteur. Puis, tu crées un picture dans lequel tu charges n'importe quelle image. Sugegstion: fais un OPEN_DIALOG avec Filter "Images|*.bmp;*.jpg;*.gif;*.png" et tu utilises
Code:
res% = dll_call1("LoadAnyImageFile",adr(nom$))
tout simplement pour charger l'image dans le presse-papier. A partir de là, tu peux utiliser:
Code:
res% = dll_call2("ResizePicture",w%,h%)
pour ajuster la taille de l'image du presse-papier à la taille imposée pour ton ImageList. Puis, tu utilises
Code:
res% = dll_call4("AddImageToImageList",IL%,0,trans%,RGB%)
pour ajouter l'image du presse-papier (car le deuxième paramètre est zéro !) dans ton ImageList.
Tu répètes ce cycle autant de fois que nécessaire, puis tu utilises
Code:
res% = dll_call2("SaveImageList",IL%,adr(fic$))
pour enregistrer ton ImageList dans un fichier ILB.

Et voilà - le tour est joué. Bien entendu, tu peux utiliser plus tard
Code:
res% = dll_call2("LoadImageList",IL%,adr(fic$))
pour recharger ce fichier dans une ImageList et ajouter d'autres images, etc.

Tout ça, c'est disponible et opérationnel dans KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 21:22

Bon je vais regarder ça alors !
Merci pour tes explications. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 23:06

Désolé Klaus mais je n'y arrive pas !  Décidément je ne suis pas doué avec l'ILB. drunken Suspect

Voila le code que j'utilise en cherchant à ouvrir un fichier BMP de 15*15 comme tu me l'a suggérer.
J'ai encore du louper quelque chose car j'ai un ACCES VIOLATION lors du rechargement du fichier !

Code:

DIM res% , nom$ , ILB% , fic$

DLL_ON "KGF.dll"

ILB% = dll_call2("CreateImageList",15,15)

PICTURE 1 : LEFT 1,5 : TOP 1,5 : WIDTH 1,15 : HEIGHT 1,15
OPEN_DIALOG 2 : Filter 2,"Images|*.bmp;*.jpg;*.gif;*.png"

nom$=FILE_NAME$(2) : FILE_LOAD 1,nom$

res% = dll_call1("LoadAnyImageFile",adr(nom$))
res% = dll_call4("AddImageToImageList",ILB%,ADR(nom$),0,0)

fic$="D:\BASIC\GPP - 2.02\biblio.ilb"
res% = dll_call2("SaveImageList",ILB%,adr(fic$))

END
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 23:26

Ben, oui... tu n'as pas appelé CreateImageList. Donc, c'est normal.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 23:30

Euh ben je sais pas !

C'est quoi alors la 3eme ligne du programme : ILB% = dll_call2("CreateImageList",15,15)
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyDim 4 Mar 2018 - 23:43

Oups... j'ai manqué ça... je vais regarder !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 0:02

Merci Klaus. Désolé pour le dérangement...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 0:18

Cela ne me dérange pas - faut jamais hésiter de me "pousser" en avant !

Tiens, essaie cet outil en Panoramic:
Code:
' ManageImageList.bas

label creer, charger, sauver, fermer, chargerimage
dim IL%, res%, no%, no_largeur%, no_hauteur%, no_open%, no_save%
dim w%, h%, f$

no% = no% + 1 : open_dialog no% : no_open% = no%
no% = no% + 1 : save_dialog no% : no_save% = no%

no% = no% + 1 : alpha no% : caption no%,"Largeur:"
no% = no% + 1 : spin no% : no_largeur% = no% : width no%,50
  left no%,50 : min no%,16 : max no%,800 : position no%,16
  
no% = no% + 1 : alpha no% : caption no%,"Hauteur:" : left no%,150
no% = no% + 1 : spin no% : no_hauteur% = no% : width no%,50
  left no%,200 : min no%,16 : max no%,600 : position no%,16
  
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%,left(no%-1)+width(no%-1) : caption no%,"Charger" : on_click no%,charger
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Sauver" : on_click no%,sauver
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Fermer" : on_click no%,fermer

no% = no% + 1 : button no% : top no%,70 : caption no%,"Image" : on_click no%,chargerimage

dll_on "KGF.dll"


end


creer:
  if IL%<>0 then return
  inactive no_largeur% : inactive no_hauteur%
  w% = position(no_largeur%)
  h% = position(no_hauteur%)
  IL% = dll_call2("CreateImageList",w%,h%)
  return
  
charger:
  if IL%=0 then return
  filter no_open%,"Librairies (ILB)|*.ilb"
  f$ = file_name$(no_open%)
  if f$="_" then return
  if file_exists(f$)=0
    message "Non trouvé"
    return
  end_if
  res% = dll_call2("LoadImageList",IL%,adr(f$))
  message str$(res%)+" images chargées"
  return
  
sauver:
  if IL%=0 then return
  filter no_save%,"Librairies (ILB)|*.ilb"
  f$ = file_name$(no_save%)
  if f$="_" then return
  if file_exists(f$)=1
    if message_confirmation_yes_no("Existe déjà. Remplacer ?")<>1 then return
  end_if
  res% = dll_call2("SaveImageList",IL%,adr(f$))
  return
  
fermer:
  if IL%=0 then return
  res% = dll_call1("DeleteImageList",IL%)
  IL% = 0
  active no_largeur%
  active no_hauteur%
  return
  
chargerimage:
  filter no_open%,"Images|*.bmp;*.jpg;*.gif;*.png"
  f$ = file_name$(no_open%)
  if f$="_" then return
  if file_exists(f$)=0
    message "Non trouvé"
    return
  end_if
  res% = dll_call1("LoadAnyImageFile",adr(f$))
  res% = dll_call2("ResizePicture",w%,h%)
  ' ======= ici, pas de couleur de transparence !
  res% = dll_call4("AddImageToImageList",IL%,0,0,0)
  return  
  

Commence par choisir tes dimensions d'image.
Puis clique sur "Créer" ==> il va créer la ImageList en mémoire
Puis, autant de fois que nécessaire, utilise le bouton "Image" pour choisir une image à intégrer.
Lorsque c'est fini, utilise le bouton "Sauver" pour choisir un nom de fichier extension ilb.
Finalement, clique sur "Fermer" pour libérer la ressource.

Tu peux reprendre ce fichier par "Créer", puis "Charger" et continuer d'ajouter des images par "Image", etc.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 0:31

Je viens de publier officiellement une version avec ces 3 objets, et avec la doc complète.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 1:09

Je suis en train d'expérimenter différentes tailles d'images. Pas de problème pour 16x16, mais d'autres perturbent l'affichage. Je travaille dessus...  En attendant, fais des essais avec 16x16, ou éventuellement 32x32. Mais il n'y a pas de plantage, ni dans le programme démo, ni dans la DLL, ni dans le petit outil Panoramic de maintenance d'une ILB.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 1:29

D'après ce que je peux trouver, techniquement, l'objet à la base de mon IconComboBox est bloqué sur des images de 16x16 pixels. Ceci est codé en dur dans l'objet et ne peut être changé. Je continue à chercher, mais il est peu probable de trouver une solution à cela. C'est tout simplement une question de conception de l'objet utilisé qui est un TComboBoxEx.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 7:30

Bonjour Klaus !

Je viens de tester ton outil et effectivement cela fonctionne.

Par contre j'ai essayé de récupérer le fichier ILB avec ton programme IcoLibrary.exe qui tu m'a conseillé sur le WEBDAV et lors du chargement du fichier ILB ça plante !

Voila pourquoi je n'y arrivais pas hier soir. drunken
Bon, là ce matin j'ai pas trop de temps, mais je regarderai ce soir en rentrant.

Encore merci Klaus.


Dernière édition par Minibug le Lun 5 Mar 2018 - 20:14, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 8:49

Tiens, j'ai trouvé une solution poour l'affichage d'images autres que 16x16 pixels ! J'ai encore un peu de travail à faire, mais je pense que ce sera opérationnel ce soir !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Version d'essai d'un objet IconComboBox Empty
MessageSujet: re   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 19:49

Bravo Klaus !

Trois objets qui vont rendre nos interfaces encore plus sympa.
cheers
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 21:40

Je publie ce soir une nouvelle version de KGF.dll qui réimplémente partiellement cet objet, justement.

J'ai supprimé cette notion de "3 icônes", mais j'ai rendu possible d'avoir des icônes de dimensions différentes des 16x16 pixels habituels. Bien entendu, cela change la hauteur des lignes...

J'ai maintenu la possibilité d'indentation des textes pour avoir une représentation similaire à une arborescence.

J'ai ajouté la possibilité de gérer une couleur de transparence, séparément pour chaque icône.

Le nouveau programme de démo permet, avant la création de l'objet, de sélectionner la présence ou non dez icônes, et l'utilisation ou non de l'indentation. Voici le nouveau programme:
Code:
' test_IconComboBox.bas


label creer, supprimer, UserEvent

dim res%, ICB%, IL%, no%, s$, WParam%, LParam%, index%, UserICB%
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

' 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") then return
  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 ligne "+str$(index%)+" = "+s$
  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)
  
  res% = 17
  
 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


Et voici ce que ça donne, avec une ILB de 32x32 pixels:
Version d'essai d'un objet IconComboBox Aa142

La 3ème ligne est intentionnellement programmée sans icône.
Le fichier MonTest_32x32.ilb contenant les 2 icônes 32x32 qui sont Android et le crane, sont déposées dans mon WebDav, dossier DLLs, sous-dossier IcoLibrary.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 22:00

Je viens de tester. C'est vraiment très bien Klaus.
Bravo ! cheers

J'en ai profité pour utiliser les bibliothèques ILB. Wink

EDIT :
Au fait Klaus, crois tu qu'il serait possible de mettre des icônes et l'indentation sur l'objet ScrollPanel ?
En fait cela éviterai la création des PICTUREs et des ALPHAs.
Ça serait super pratique ! drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 22:26

Tu veux dire "placer un objet IconComboBox" sur un ScrollPanel ? Mai oui, c'est possible ! Tu places un objet quelconque sur un ScrollPanel en donnant son handle, n'est-ce pas ? Or, il y a une fonction ... oups - je viens de me rendre compte que j'ai oublié la fonction GetIconComboBoxHandle ! Ce sera fait tout de suite. Ensuite, tu pourras le faire sans problème !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 22:35

Heu, plutôt qu'un COMBO je le voyais plutôt comme un LIST avec icônes et indentation !

En fait ça serai de créer un objet IconList comme tu as créé un objet IconComboBox...

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox EmptyLun 5 Mar 2018 - 23:38

IconList - c'est une idée. Je vais étudier la question.

En attendant, on a maintenant la fonction
Code:
res% = dll_call1("GetIconComboBoxHandle",ICB%)
qui retourne le handle. La doc suivra, mais la fonction est simple à utiliser.

Bon, c'est parti pour IconList...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Version d'essai d'un objet IconComboBox Empty
MessageSujet: Re: Version d'essai d'un objet IconComboBox   Version d'essai d'un objet IconComboBox Empty

Revenir en haut Aller en bas
 
Version d'essai d'un objet IconComboBox
Revenir en haut 
Page 1 sur 4Aller à la page : 1, 2, 3, 4  Suivant
 Sujets similaires
-
» version instantanée du 10 mai 2010: objet TIMER
» Nouvelle version de mon pseudo-objet GLIST
» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
» Que signifient version "régulière" et version "instantanée"
» Détermine si oui ou non un objet est PARENT d'un autre objet

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: