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
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

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

MessageSujet: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 10: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 11: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 : 882
Date d'inscription : 19/01/2014

MessageSujet: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 14: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 : 10259
Age : 68
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: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Lecture des éléments d'une combo externe.   Lun 5 Juin 2017 - 16: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Lecture des éléments d'une combo externe.   Mar 6 Juin 2017 - 1: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.
Voir le sujet précédent Voir le sujet suivant 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
» [Résolu] Disque dur 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: