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
» bouton dans autre form que 0
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
[Résolu] Récupérer la position des ascenseurs dans synedit Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

 

 [Résolu] Récupérer la position des ascenseurs dans synedit

Aller en bas 
4 participants
AuteurMessage
Minibug

Minibug


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

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyMer 11 Aoû 2021 - 18:10

Bonjour tout le monde !

Ben voila tout est dit...

En fait on peux utiliser la fonction POSITION n,x ou POSITION(n) sur un MEMO ou l'on déclare les ascenseurs.
Mais pour les autres objets y a t-il une solution ? A moins que j'ai loupé quelque chose dans la doc... Laughing

En l'occurrence je cherche la position des ascenseurs dans un SYNEDIT.


Dernière édition par Minibug le Jeu 12 Aoû 2021 - 20:07, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Froggy One

Froggy One


Nombre de messages : 586
Date d'inscription : 06/01/2012

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Récupérer la position des ascenseurs X et Y dans le synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 17:32

C'est juste, j'ai chargé l'exemple de la doc en affichant la position par un CAPTION dans la barre du programme (FORM 0) et cela m'affiche... 0 !
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
Minibug

Minibug


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

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 17:41

J'ai bien trouvé quelques infos en lien avec l'utilisation de user32.dll...
Mais c'est en anglais et je ne maitrise pas suffisamment le sujet !

Il y a ce lien ici.
Je pense qu'il faut déjà récupérer le handle de l'objet concerné. puis ensuite utiliser user32.dll.

Il faudra ensuite les équivalents de POSITION N,X et POSITION(N).

Mais là je ne suis pas assez calé. J'ai besoin de la lumière des initiés... Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 18:21

C'est un vieux code, mais tu devrait pouvoir t'en sortir en le bidouillant. Ca à l'air de fonctionner avec un synedit, mais je n'ai pas fait de tests approfondi.
Code:
' https://msdn.microsoft.com/fr-fr/library/windows/desktop/bb787537%28v=vs.85%29.aspx

' Value of constants for the Windows 32-bit API : https://doc.windev.com/en-US/?6510001&name=value_constants_for_the_windows_32bit_api

' SB_HORZ = 0,
' SB_VERT = 1,
' SB_CTL = 2,
' SB_BOTH = 3

' valeur pour fmask
' SIF_RANGE = 0x1,
' SIF_PAGE = 0x2,
' SIF_POS = 0x4,
' SIF_DISABLENOSCROLL = 0x8,
' SIF_TRACKPOS = 0x16,
' SIF_ALL = SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS

' structure
'  UINT cbSize; tjrs 28
'  UINT fMask; tjrs 31
'  int  nMin;
'  int  nMax;
'  UINT nPage;
'  int  nPos;
'  int  nTrackPos;

'
' cbSize
'    Specifies the size, in bytes, of this structure. The caller must set this to sizeof(SCROLLINFO).

' fMask
'    Specifies the scroll bar parameters to set or retrieve. This member can be a combination of the following values:
'    valeur pour fmask
'    SIF_RANGE = 0x1,
'    SIF_PAGE = 0x2,
'    SIF_POS = 0x4,
'    SIF_DISABLENOSCROLL = 0x8,
'    SIF_TRACKPOS = 0x16,
'    SIF_ALL = SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS

' nMin
'    Specifies the minimum scrolling position.

' nMax
'    Specifies the maximum scrolling position.

' nPage
'    Specifies the page size, in device units. A scroll bar uses this value to determine the appropriate size of the proportional scroll box.

' nPos
'    Specifies the position of the scroll box.

' nTrackPos
'    Specifies the immediate position of a scroll box that the user is dragging. An application can retrieve this value while processing the SB_THUMBTRACK request code. An application cannot set the immediate scroll position; the SetScrollInfo function ignores this member.



DIM result%,result,result$
dim ret%
dim i,j,tmp$

label test,fini

' donnees pour la dll 'user32'
dim scrollinfo%
dim structure_scrollinfo$
dim SB_HORZ,SB_VERT,cbSize,fMask,SIF_ALL
SB_HORZ = 0
SB_VERT = 1
cbSize = 28
SIF_ALL = 31
fMask = SIF_ALL
'
' crée une structure pour recevoir les donnees, de 7*4 octets de longueur
structure_scrollinfo$=string$(28,chr$(0))
GET_BUFFER_PTR(adr(scrollinfo%),adr(structure_scrollinfo$))
poke4(scrollinfo%,0,cbSize)
poke4(scrollinfo%,1,fMask)

'
width 0,900
on_close 0,fini
'
dll_on "user32"

' crée un memo et rempli le de 100 caracteres maximum par ligne
' memo 1 : bar_both 1  :hide 1
synedit 1 :hide 1
font_name 1,"system"
height 1,250 : width 1,500
for j=1 to 30
  tmp$=""
  for i=1 to int(1+rnd(100))
      tmp$=tmp$+chr$(int(32+rnd(223)))
  next i
  item_add 1,str$(j)+" // "+tmp$
next j
select_text 1,1,1
show 1

' crée un GRID pour afficher les donnees des scroll_bars
grid 30
width 30,320
height 30,240
top 30,0 : left 30,516

grid_row 30,9
grid_row_fixed 30,0
grid_column 30,3
grid_column_fixed 30,0
grid_column_width 30,100

grid_write 30,1,2,"Barre Verticale"
grid_write 30,2,2,"Unité = nb de ligne"
grid_write 30,1,3,"Barre Horizontale"
grid_write 30,2,3,"Unité = pixels"
grid_write 30,3,1,"cbsize"              :' donnee de configuration de la structure
grid_write 30,4,1,"fmask"                :' donnee de configuration de la structure
grid_write 30,5,1,"Min"                  :' valeur mini de la position du curseur, en ligne ou pixels
grid_write 30,6,1,"Max"                  :' valeur maxi de la position du curseur, en ligne ou pixels
grid_write 30,7,1,"par Page"            :' nb de lignes ou pixels visible
grid_write 30,8,1,"Pos"                  :' valeur de la position du curseur
grid_write 30,9,1,"TrackPos"            :' position du curseur, 0 si clique sur une fleche


' crée un timer pour rafraichir l'affichage des donnees des scroll_bars
timer 5
timer_interval 5,50
on_timer 5,test



end
' LES SUBs *********************************************************************
' retrouve l'adresse d'un pointeur de 'string'
sub GET_BUFFER_PTR(adr_destination%,adr_source%)
  poke adr_destination%,peek(adr_source%)
  poke adr_destination%+1,peek(adr_source%+1)
  poke adr_destination%+2,peek(adr_source%+2)
  poke adr_destination%+3,peek(adr_source%+3)
end_sub


' copie 'value%' à l'adresse: 'adr_source%'+'4*offset%'
sub POKE4(adr_source%,offset%,value%)
  poke (4*offset%)+adr_source%,peek(adr(value%))
  poke (4*offset%)+adr_source%+1,peek(adr(value%)+1)
  poke (4*offset%)+adr_source%+2,peek(adr(value%)+2)
  poke (4*offset%)+adr_source%+3,peek(adr(value%)+3)
end_sub


' retourne dans 'result%' le contenu stocké à l'adresse: 'adr_source%'+'4*offset%'
sub PEEK4(adr_source%,offset%)
  poke adr(result%),peek((4*offset%)+adr_source%)
  poke adr(result%)+1,peek((4*offset%)+adr_source%+1)
  poke adr(result%)+2,peek((4*offset%)+adr_source%+2)
  poke adr(result%)+3,peek((4*offset%)+adr_source%+3)
end_sub



' LES EVENTS *******************************************************************
test:
 timer_off 5 :' on empêche timer de s'appeler lui-meme
  '
  ' ecrit dans le grid les infos provenant de:
  ret%=dll_call3("GetScrollInfo",handle(1),1,scrollinfo%) :' LA BARRE VERTICALE
  ' cbSize et fMask ne sont pas utile, on ne les affiche pas
  for i=2 to 6
      PEEK4(scrollinfo%,i)  :' envoi une valeur dans 'result%'
      grid_write 30,i+3,2,str$(result%)
  next i
 
  '
  ret%=dll_call3("GetScrollInfo",handle(1),0,scrollinfo%) :' ' LA BARRE HORIZONTALE
  ' cbSize et fMask ne sont pas utile, on ne les affiche pas
  for i=2 to 6
      PEEK4(scrollinfo%,i)  :' envoi une valeur dans 'result%'
      grid_write 30,i+3,3,str$(result%)
  next i
  '
 timer_on 5
return



fini:
  dll_off
  terminate
'  end
Revenir en haut Aller en bas
Minibug

Minibug


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

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 18:44

Merci pour ton aide Silverman ! Wink

Je vais décortiquer tout ça pour le mettre à ma sauce.

As tu eu l'occasion de tester l'éditeur que j'ai mis en ligne et en particulier le menu contextuel ?
C'est grâce à toi que cela fonctionne et d'ailleurs super bien !

J'ai mis un petit remerciement en commentaire dans le code à ton sujet. Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2389
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 19:19

Bonjour à tous !

@SilverMan

Bravo et merci SilverMan pour ton code.
Je me permets de diffuser une version plus "soft" et donc moins exhaustive que la tienne.

=> Le résultat s'affiche dans le caption 0.

Code:
dim hWnd% :' handle du synedit
dim h%    :' position horizontale
dim v%    :' position verticale

label affichagePositions

dll_on "user32.dll"

synedit 1
hWnd% = handle(1)          :' on récupère le handle de l'objet n°1 qui est le synedit

file_load 1,"drapeaux.bas" :' on charge un fichier quelconque dans le synedit pour les tests

timer 10                   :' timer pour raffraichir l'affichage de la position des ascenseurs
timer_interval 10,200
on_timer 10,affichagePositions

end

affichagePositions:
    h% = dll_call2("GetScrollPos",hWnd%,0)
    V% = dll_call2("GetScrollPos",hWnd%,1)
    caption 0,"h:" + str$(h%) + "   v:" + str$(V%)
return

Revenir en haut Aller en bas
Minibug

Minibug


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

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptyJeu 12 Aoû 2021 - 20:03

Ah oui encore plus facile à mettre en place ! Laughing

Bon sur ce coup là ce sera le code de Marc que je retiendrai !
Et il aura lui aussi une petite place dans les commentaires de l'éditeur. Wink

En tout cas merci à tout les 2. Je mets de coté pour de futures utilisations.

Je viens d'indiqué le fil de discussion comme résolu.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptySam 14 Aoû 2021 - 11:39

@Minibug
Je n'ai pas encore testé ton éditeur, je suis pas mal occupé, je fais très peu d'informatique en ce moment. Ca devrait être plus cool à la fin du mois... Merci pour le commentaire Very Happy

@Marc
C'est un vieux code qui date d'avant l'apparition de l'objet synedit et des commandes peekXX, il a au moins 4 ans! En tous cas, ta version est plus simple. Et hop, archivée Very Happy
Revenir en haut Aller en bas
Minibug

Minibug


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

[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit EmptySam 14 Aoû 2021 - 13:47

Merci pour ton retour Silverman. Wink

J'ai même testé avec "SetScrollPos" qui permet de positionner le curseur H ou V des ascenseurs.
Par contre cela ne déplace pas la fenêtre. Bon après je n'ai pas creusé plus que çà.

Mais déjà cela permet de palier au fonctions manquantes sur les ascenseurs des objets Panoramic.

Encore merci. Bon weekend et à bientôt !  sunny
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





[Résolu] Récupérer la position des ascenseurs dans synedit Empty
MessageSujet: Re: [Résolu] Récupérer la position des ascenseurs dans synedit   [Résolu] Récupérer la position des ascenseurs dans synedit Empty

Revenir en haut Aller en bas
 
[Résolu] Récupérer la position des ascenseurs dans synedit
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Déplacer les ascenseurs dans synedit
» [Résolu] Position graphique du curseur sur Synedit
» Position x et y du curseur de texte dans un SYNEDIT
» Comment récupérer le N° de l'objet sous la souris ? [Résolu]
» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?

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: