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
» Logiciel de planétarium.
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Essai de IconButton dans KGF.dll - test préliminaire Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Essai de IconButton dans KGF.dll - test préliminaire Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Essai de IconButton dans KGF.dll - test préliminaire Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Essai de IconButton dans KGF.dll - test préliminaire Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Essai de IconButton dans KGF.dll - test préliminaire Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Essai de IconButton dans KGF.dll - test préliminaire Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Essai de IconButton dans KGF.dll - test préliminaire Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Essai de IconButton dans KGF.dll - test préliminaire Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -20%
Drone Dji DJI Mini 4K (EU)
Voir le deal
239 €

 

 Essai de IconButton dans KGF.dll - test préliminaire

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyMer 5 Juil 2017 - 0:22

Pour ceux qui sont motivés par des nouveautés dans KGF.dll, voici un joli morceau à tester, avant publication de la version officielle. Il faut télécharger KGF.dll sur mon WebDav (pas sur les deux sites !), puis faire exécuter le code suivant avec la dernière version de Panoramic:
Code:
' test_IconButton.bas

label creer, supprimer, images, image1, image2, image3, image0, UserEvent
label stretch, stretch1, stretch2, stretch3
label imglist, imglist1, imglist2, imglist3, imglist0

dim res%, IBTN1%, IBTN2%, IBTN3%, IL%, nb%, hint$
dim f$, stretch1%, stretch2%, stretch3%, x%, nlist%
dim size% : size% = 32
dim m1% : m1% = -1
dim stretch% : stretch% = 0
stretch1% = stretch%
stretch2% = stretch%
stretch3% = stretch%
dim ilb$ : ilb$ = "KGF.ilb"

on_user_event UserEvent

dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,100 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2

button 3 : top 3,10 : left 3,220 : caption 3,"Images" : width 3,80 : on_click 3,images : inactive 3
button 31 : top 31,35 : left 31,220 : caption 31,"1" : width 31,20 : on_click 31,image1 : inactive 31
button 32 : top 32,35 : left 32,250 : caption 32,"2" : width 32,20 : on_click 32,image2 : inactive 32
button 33 : top 33,35 : left 33,280 : caption 33,"3" : width 33,20 : on_click 33,image3 : inactive 33
button 39 : top 39,60 : left 39,220 : caption 39,"Effacer" : width 39,80 : on_click 39,image0 : inactive 39

button 4 : top 4,10 : left 4,320 : caption 4,"Stretch on" : width 4,80 : on_click 4,stretch : inactive 4
button 41 : top 41,35 : left 41,320 : caption 41,"1" : width 41,20 : on_click 41,stretch1 : inactive 41
button 42 : top 42,35 : left 42,350 : caption 42,"2" : width 42,20 : on_click 42,stretch2 : inactive 42
button 43 : top 43,35 : left 43,380 : caption 43,"3" : width 43,20 : on_click 43,stretch3 : inactive 43

button 5 : top 5,10 : left 5,420 : caption 5,"ImageList" : width 5,80 : on_click 5,imglist : inactive 5
button 51 : top 51,35 : left 51,420 : caption 51,"1" : width 51,20 : on_click 51,imglist1 : inactive 51
button 52 : top 52,35 : left 52,450 : caption 52,"2" : width 52,20 : on_click 52,imglist2 : inactive 52
button 53 : top 53,35 : left 53,480 : caption 53,"3" : width 53,20 : on_click 53,imglist3 : inactive 53
button 59 : top 59,60 : left 59,420 : caption 59,"Effacer" : width 59,80 : on_click 59,imglist0 : inactive 59

open_dialog 99 : filter 99,"Images|*.ico;*.bmp;*.jpg"

IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
message ilb$+" contient "+str$(nlist%)+" icônes"

end


creer:
  x% = 40
  IBTN1% = dll_call3("CreateIconButton",handle(0),1,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN1%,x%,100,size%,size%,stretch1%)
  hint$ = "Ceci est le bouton 1"
  res% = dll_call2("SetIconButtonHint",IBTN1%,adr(hint$))
  
  x% = x% + size%
  IBTN2% = dll_call3("CreateIconButton",handle(0),2,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN2%,x%,100,size%,size%,stretch2%)
  hint$ = "Ceci est le bouton 2"
  res% = dll_call2("SetIconButtonHint",IBTN2%,adr(hint$))
  
  x% = x% + size%
  IBTN3% = dll_call3("CreateIconButton",handle(0),3,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN3%,x%,100,size%,size%,stretch3%)
  hint$ = "Ceci est le bouton 3"
  res% = dll_call2("SetIconButtonHint",IBTN3%,adr(hint$))
  
  inactive 1
  active 2
  active 3
  active 31
  active 32
  active 33
  active 39
  active 4
  active 41
  active 42
  active 43
  active 5
  active 51
  active 52
  active 53
  active 59
  return

supprimer:
  res% = dll_call1("DeleteIconButton",IBTN1%)
  if res%=0 then IBTN1% = 0
  res% = dll_call1("DeleteIconButton",IBTN2%)
  if res%=0 then IBTN2% = 0
  res% = dll_call1("DeleteIconButton",IBTN3%)
  if res%=0 then IBTN3% = 0
  if (IBTN1%=0) and (IBTN2%=0) and (IBTN3%=0)
    inactive 2
    inactive 3
    inactive 31
    inactive 32
    inactive 33
    inactive 39
    inactive 4
    inactive 41
    inactive 42
    inactive 43
    inactive 5
    inactive 51
    inactive 52
    inactive 53
    inactive 59
    active 1
  end_if
  return
  
images:
  ChargerImage(IBTN1%)
  ChargerImage(IBTN2%)
  ChargerImage(IBTN3%)
  return
  
image1:
  ChargerImage(IBTN1%)
  return
image2:
  ChargerImage(IBTN2%)
  return
image3:
  ChargerImage(IBTN3%)
  return
image0:
  res% = dll_call2("SetIconButtonImage",IBTN1%,0)
  res% = dll_call2("SetIconButtonImage",IBTN2%,0)
  res% = dll_call2("SetIconButtonImage",IBTN3%,0)
  return
  
sub ChargerImage(IBTN%)
  f$ = file_name$(99)
  if f$="_" then return
  if file_exists(f$)=0 then return
  res% = dll_call2("SetIconButtonImage",IBTN%,adr(f$))
end_sub

stretch:
  stretch% = 1 - stretch%
  select stretch%
    case 0
      caption 4,"Stretch on"
    case 1
      caption 4,"Stretch off"
  end_select
  stretch1% = stretch%
  stretch2% = stretch%
  stretch3% = stretch%
  Stretch(IBTN1%,stretch1%)
  Stretch(IBTN2%,stretch2%)
  Stretch(IBTN3%,stretch3%)
  return
  
stretch1:
  stretch1% = 1 - stretch1%
  Stretch(IBTN1%,stretch1%)
  return
  
stretch2:
  stretch2% = 1 - stretch2%
  Stretch(IBTN2%,stretch2%)
  return
  
stretch3:
  stretch3% = 1 - stretch3%
  Stretch(IBTN3%,stretch3%)
  return
  
sub Stretch(IBTN%,stretch%)
  res% = dll_call6("IconButtonGeometry",IBTN%,M1%,M1%,M1%,M1%,stretch%)
end_sub
  
imglist:
  ImgList(IBTN1%)
  ImgList(IBTN2%)
  ImgList(IBTN3%)
  return
  
imglist1:
  ImgList(IBTN1%)
  return

imglist2:
  ImgList(IBTN2%)
  return

imglist3:
  ImgList(IBTN3%)
  return
  
imglist0:
  res% = dll_call3("SetIconButtonImageList",IBTN1%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN2%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN3%,IL%,0)
  return

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub

UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("FFFF"))
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)
  return

Ce programme propose un bouton "Créer", seul actif initialement.
Un clic sur ce bouton crée 3 boutons du nouveau type IconButton, carrés en format 20x20 pixels.
Un clic sur un de ces boutons envoie un USER_EVENT qui permet d'identifier le bouton cliqué.
La particularité de ces boutons est de pouvoir recevoir des images en provenance d'un fichier (ici, bmp, jpg, gif, ...) ou une icône en provenance d'un objet ImageList. La provenance ImageList a priorité sur l'image en provenance d'un fichier, mais les deux sont éventuellemt mémorisées dans le bouton. Si l'image de la ImageList est effacée, celle en provenance du fichier réapparaît.
- les images peuvent être affichées dans un petit format, centrées dans le bouton, ou remplir le bouton façon STRETCH_DRAW.
On peut à tout moment basculer de l'affichage normal au STRETCH et inversement. Le programme permet de le faire pour un bouton individuel ou gloalement pour tous les boutons.
Chaque bouton peut avoir un "hint".
La taille (carrée) du bouton peut être librement choisie. Si l'option STRETCH est activée pour un bouton, l'image (quelque soit sa provenance) remplira le bouton (sauf une bordure de 2 pixels afin de voir les bords du bouton).
Le pixel en bas à gauche de l'image est systématiquement pris comme couleur de transparence de l'image.

Dites-moi ce que vous en pensez. Pour ma part, j'utilise cela pour construire des palettes d'outils, façon barre d'outils mais sur deux ou 3 rangs, gagnant ainsi une place appréciable dans la conception des GUIs. Avec, bien sur, une ImageList dédiée pour l'application. Le programme de démo utilise KGF.ILB (disponible également dans le WebDav, dossier DLLs\IcoLibrary.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: re   Essai de IconButton dans KGF.dll - test préliminaire EmptyMer 5 Juil 2017 - 11:30

@ Klaus,

Effectivement, cela peut rendre service pour ajouter des barres d' outils supplémentaires.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 16:01

Voici une petite démo qui montre la création de 2 toolbars avec des IconButtons.
La première est une ligne de 5 boutons.
La seconde est constituée de 2 lignes de 4 boutons.
Tous les boutons reçoivent des icônes choisies aléatoirement dans KGF.ilb.
Le hint indique le bouton et la toolbar.
Un clic sur un des boutons affiche des infos techniques et le numéro du bouton et celui de la toolbar.
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%   : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
  
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5+(i%-1)*size%,5,size%,size%,1)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5+(j%-1)*size%,5+(k%-1)*size%,size%,size%,1)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Voici à quoi ça ressemble:
Essai de IconButton dans KGF.dll - test préliminaire Aa112
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 19:19

Bien que je n’eusse compris qu’à moitié le pourquoi du comment, j’apprécie bien ce que tu fais, Maître Klaus !

Je vois que tu es (encore) à la version 0.9.28i9 ! Wink
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 19:33

Oui, pour des raisons pratiques... mais j'ai installé la version V0.9.28i11 pour les tests importants. Et pour les IconButtons, ça vaut mieux, car le problème de décalage sur l'évèment ON_USER_EVENT est résolu.

Evolution en cours, déjà opérationnelle chez moi:
- une fonction DockIconButtonToIconButton permettant de "coller" in IconButton contre un autre, à gauche, à droite, en haut ou en bas (ceci permet de ne pas calculer soi-même toutes les positions)
- une fonction DockOjects faisant la même chose sur tout objet "fenêtré" (ayant un handle), à condition qu'ils soient dans le même réceptacle, bien sûr. Ceci permet d'accoller des bares d'outils les unes aux autres, par exemple, de contruire un tableau de EDIT, etc.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: re   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 20:57

Oui, pratique de ne pas avoir à calculer toutes les positions.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 21:17

Alors, recharge KGF.dll de mon WebDav, dossier DLLs, et essaie le code suivant:
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%  : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
 
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5,5,size%,size%,1)
  if i%>1 then res% = dll_call3("DockIconButtonToIconButton",IB1%(i%),IB1%(i%-1),3)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5,5,size%,size%,1)
    if (i%>1) and (i%<=4) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    if i%=5 then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(1),4)
    if (i%>5) and (i%<=8) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Le résultat visuel est identique, mais regarde bien le code de création des boutons - ils sont tous créés en (5,5), puis "dockés" les uns aux autres.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: re   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 21:42

Oui, je vois.
Cette fonction peut être intéressante pour l' alignement d' autres objets de la même façon,
collé les uns aux autres, Pictures, Edit, etc...
Avec des Pictures, on peut simuler un célèbre objet Query.Laughing

Le plus ennuyeux reste à faire, la doc...
lol!
Revenir en haut Aller en bas
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyJeu 6 Juil 2017 - 21:53

Pour les autres objets, cela se fait par la nouvelle fonction DockObjects. Recharge à nouveau la DLL (désolé...) et essaie ce code-ci:
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%  : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
 
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5,5,size%,size%,1)
  if i%>1 then res% = dll_call3("DockIconButtonToIconButton",IB1%(i%),IB1%(i%-1),3)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5,5,size%,size%,1)
    if (i%>1) and (i%<=4) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    if i%=5 then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(1),4)
    if (i%>5) and (i%<=8) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),2)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),3)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),4)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),1)

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Patiente quelques secondes après le lancement - tu verras la toolbar de gauche "sauter" autour de la toolbar de droite.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: re   Essai de IconButton dans KGF.dll - test préliminaire EmptyVen 7 Juil 2017 - 1:56

Je connaissais les petits-pois sauteurs mais les menus-sauteurs c' est une première.
lol!

En tout cas, c'est réussi.
cheers Bravo !
Revenir en haut Aller en bas
Klaus

Klaus


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

Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire EmptyVen 7 Juil 2017 - 2:07

Je suis en train de faire la doc:
objet ImageView: 8 fonctions:
CreateImageView, ImageViewGeometry, ClearImageView, DeleteImageView,
AddImageToImageView, ScrollImageView, GetImageViewFileName, GetImageViewFileNameFromPoint
Objet Iconbutton: 9 fonctions
CreateIconButton, DeleteIconButton, IconButtonGeometry, SetIconButtonImage,
SetIconButtonImageList, SetIconButtonHint, IconButtonOptions,
DockIconButtonToIconButton, DockOjects

En Français et en Anglais - c'est du boulot.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Essai de IconButton dans KGF.dll - test préliminaire Empty
MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Essai de IconButton dans KGF.dll - test préliminaire Empty

Revenir en haut Aller en bas
 
Essai de IconButton dans KGF.dll - test préliminaire
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Test sur nom de fichier dans #INCLUDE
» WebBrowser sur une form Panoramic !
» Essai d'envoi d'un fichier .rar
» Éditeur de texte : Mini Word
» Partage sur MyDrive

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: