FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:57

» Roues dentées
par jean_debord Aujourd'hui à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Lecture des éléments d'une combo externe.

Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 1104
Date d'inscription : 19/01/2014

MessageSujet: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 9:00

Bonjour.

@Klaus.

Existe-t-il un moyen quelconque pour lire l'ensemble des éléments d'un objet combo externe à Panoramic, stp ?

Je souhaiterais enregistrer l'ensemble des éléments d'une combo d'un logiciel externe.

Merci de ton aide.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 10:13

Oui.

Recharge KGF.dll à partir de mon site (ou de mon site miroir). Il n'y a pas de changement de version pour le moment, mais tu disposes d'une nouvelle fonction, non doicumentée, qui s'appelle ainsi:
Code:
res% = dll_call2("GetExternalComboContent",handleCombo%,handle(memo%))
handleCombo% est le handle de la COMBO externe
memo% est le numéro d'un objet MEMO Panoramic recevant le contenu de la combo
res% reçoit le nombre de lignes lues

Voici une démo, utilisant une combo de Panoramic, mais accédée par son handle:
Code:
' test_GetExternalComboContent.bas

dim n%

combo 1 : top 1,10 : left 1,10
  item_add 1,"aaaaa"
  item_add 1,"bbbbbbbbbbb"
  item_add 1,"ccccc"
  item_add 1,"ddddddddd"
  item_add 1,"eeeee"
  item_add 1,"f"
  item_add 1,"gggggggg"
  
memo 2 : top 2,10 : left 2,width(1) + 20 : width 2,200 : height 2,300 : bar_both 2
  
dll_on "KGF.dll"

n% = dll_call2("GetExternalComboContent",handle(1),handle(2))
message str$(n%)+" lignes reçues"
 
end

EDIT

Comment trouver le handle du combo externe ? Une solution consiste à placer le curseur sur le combo, puis utiliser les fonctions suivantes:
Code:
dim res%, hnd%, x%, y%
res% = GetAbsoluteMousePosition(adr%(x%),adr%(y%))
res% = dll_call2("GetObjectUnderPosition",x%,y%)
res% contient alors le handle de ce combo.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 1104
Date d'inscription : 19/01/2014

MessageSujet: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 13:28

Bonjour.

Avec le code suivant, j'obtiens un message d'erreur:

Error in function, line 14.

Mais peut-être le logiciel est-il protégé !!


Code:
dll_on "kgf"

dim res%, hnd%, handleCombo%, x%, y%

memo 1

while 0=0
      res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%))
      handleCombo% = dll_call2("GetObjectUnderPosition",x%,y%)
      caption 0,str$(handleCombo%)
      if handleCombo%=198614 then exit_while
end_while

res% = dll_call2("GetExternalComboContent",handleCombo%,handle(1))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 14:30

Comment est déterminée la valeur 198614  ? Parce que, si tu connais a valeur, pourquoi fais-tu la boucle WHILE ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 15:34

Reprends à nouveau KGF.dll de mon site (ou site miroir) et fais marcher ce programme:
Code:
' test_GetExternalComboContent.bas

dim n%, classe$, res%

combo 1 : top 1,10 : left 1,10
  item_add 1,"aaaaa"
  item_add 1,"bbbbbbbbbbb"
  item_add 1,"ccccc"
  item_add 1,"ddddddddd"
  item_add 1,"eeeee"
  item_add 1,"f"
  item_add 1,"gggggggg"
  
memo 2 : top 2,10 : left 2,width(1) + 20 : width 2,200 : height 2,300 : bar_both 2
  
dll_on "KGF.dll"

classe$ = string$(255," ")
res% = dll_call2("GetClassNameFromHandle",handle(1),adr(classe$))
message "classe="+trim$(classe$)
n% = dll_call2("GetExternalComboContent",handle(1),handle(2))
message str$(n%)+" lignes reçues"
 
end
Tu constateras qu'il y aura un message "classe=TComboBox", juste avant le remplissage du mémo. C'est la vérification que le handle passé est bien celui d'une combobox.

Tu porras alors adapter ton code d'essai en intégrant:
Code:
dim classe$
classe$ = string$(255," ")
res% = dll_call2("GetClassNameFromHandle",handle(1),adr(classe$))
message "classe="+trim$(classe$)
juste avant l'appel de GetExternalComboContent. Juste pour être sûr d'être bien sur une combobox.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Lecture des éléments d'une combo externe.   Mar 6 Juin 2017 - 0:59

Suivant la position du curseur dans la ComboBox, on récupère le bon handle ou pas. La version suivante du programme de démo montre une façon de récupérer le bon handle de la ComboBox, dans tous les cas de figure. Recharge à nouveau la DLL de mon site (ou de mon site miroir), et exécute ceci:
Code:
' test_GetExternalComboContent.bas

dim n%, classe$, res%, x%, y%, hnd%, hndParent%, parent$

width 0,800
combo 1 : top 1,10 : left 1,10
  item_add 1,"aaaaa"
  item_add 1,"bbbbbbbbbbb"
  item_add 1,"ccccc"
  item_add 1,"ddddddddd"
  item_add 1,"eeeee"
  item_add 1,"f"
  item_add 1,"gggggggg"
 
memo 2 : top 2,10 : left 2,width(1) + 20 : width 2,200 : height 2,300 : bar_both 2
 
dll_on "KGF.dll"

classe$ = string$(255," ")
res% = dll_call2("GetClassNameFromHandle",handle(1),adr(classe$))
message "classe="+trim$(classe$)
n% = dll_call2("GetExternalComboContent",handle(1),handle(2))
message str$(n%)+" lignes reçues"
while scancode<>27
  res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%))
  hnd% = dll_call2("GetObjectUnderPosition",x%,y%)
  classe$ = string$(255," ")
  res% = dll_call2("GetClassNameFromHandle",hnd%,adr(classe$))
  hndParent% = dll_call1("GetParentFromHandle",hnd%)
  parent$ = string$(255," ")
  if hnd%<>-1 then res% = dll_call2("GetClassNameFromHandle",hndParent%,adr(parent$))
  if trim$(classe$)="TComboBox"
    caption 0,"handle="+str$(hnd%)+"  classe="+trim$(classe$)+"  parent="+str$(hndParent%)+"  classe parent="+trim$(parent$)+"  ==> "+str$(hnd%)+"=ComboBox" 
  else
    if trim$(parent$)="TComboBox"
      caption 0,"handle="+str$(hndParent%)+"  classe="+trim$(classe$)+"  parent="+str$(hndParent%)+"  classe parent="+trim$(parent$)+"  ==> "+str$(hndParent%)+"=ComboBox" 
    else
      caption 0,""
    end_if
  end_if
  pause 100
end_while


' ceci montre que:
' soit classe$="TComboBox" ==> hnd% est le handle de la combobox
' soit Parent$="TComboBox" ==> hndParent% est le handle de la combobox
' soit aucune des deux variables n'est égal ) "TComboBox" ==> on n'est pas dedans !

end
Le début est identique (on récupère la ComboBox dans le mémo), mais après, on est dans une boucle où l'on trace la position de la souris. Si le curseur est dans la ComboBox, le handle est affiché dans la caption de la form 0, et sinon, cette caption est éffacée. Un petit commentaire montre le critère à appliquer.

On sort de la démo par la touche Echap.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Lecture des éléments d'une combo externe.   

Revenir en haut Aller en bas
 
Lecture des éléments d'une combo externe.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Lecture MKV saccade
» système de fichiers pour Disque dur USB externe lié à BBox Sagemcom
» Disque Dur externe connecté Bbox en Lecture Seule
» Lecture video interrompue avec mise en tampon
» Comment crée une redirection vers un lien externe ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: