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.
KGF_dll - nouvelles versions - Page 8 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 8 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 8 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 8 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 8 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 8 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 8 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 8 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 8 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 8 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 8 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 8 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 8 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 8 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 8 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 : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+6
papydall
Marc
jean_debord
Minibug
JP06
Klaus
10 participants
Aller à la page : Précédent  1 ... 5 ... 7, 8, 9 ... 11 ... 15  Suivant
AuteurMessage
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMar 3 Mai 2022 - 19:21

Klaus, ça marche mais en partie seulement... Embarassed

Quand le constructeur est ouvert et que je bascule vers l'éditeur -> Ok
Quand l'éditeur est ouvert et que je bascule vers le constructeur -> Ok

Mais si j'ouvre un projet dans le constructeur et donc une FORM est ouverte avec les objet du projet :

Quand le constructeur est ouvert et que je bascule vers l'éditeur -> Ok
Quand l'éditeur est ouvert et que je bascule vers le constructeur -> est bien le constructeur ne réapparait pas !

En résumé cela fonctionne si dans chaque programme on a que la FORM 0.

Mais on pourrait contourner le problème si tu mets en place une fonction avec ON_USER_EVENT qui se déclenche lors du changement d'état de la form 0.
comme je le disais au-dessus. Comme cela on peu gérer les fenêtres annexes depuis le programme en question.
Je sais pas si je suis très clair dans mes explications ?! geek
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 0:48

J'ai ajouté une nouvelle fonction:
Code:
res% = dll_call1("GetCurrentWindowState",hnd%)

La fonction retourne:
-1 si erreur (handle nonvalide)
0 si la fenêtre est en état normal
1 si la fenêtre est en état minimisé
2 si la fenêtre est en état maximisé

Recharge KGF.dll et essaie si tu peux résoudre ton problème ainsi.

Yannick aime ce message

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 8:08

Je vais regarder ça Klaus. Merci. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 13:27

Bonjour Klaus

Malheureusement mon idée ne fonctionne pas. j'ai tenté différentes choses mais rien n'y fait !
Je reprendrai ce soir....
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 13:45

J'ai modifié légèrement la fonction ForceWindowToForeground.
Elle marche maintenant quelque soit l'état de la fenêtre visée.
Et si le handle de la fenêtre n'est pas celui de Form 0 de l'application, l'application est quand-même activé, placée en avant-plan, la form visée est placée en avant-plan et reçoit le focus.
Et ça marche même si la fenêtre visée est minimisée.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 14:03

D'accord Klaus. Je regarderai ce soir....
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 16:06

Je ne peux pas tester pour le moment mais j'ai une question :

lorsque que l'application est réaffiché par la fonction dll, est ce qu'elle réaffiche tous les forms de l'application ou seulement le form 0 ?
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 19:11

Bonsoir Klaus,

mauvaise nouvelle... Ca ne fonctionne pas !
A moins que je m'y prenne mal...

Voila le sous programme que j'ai mis et qui est appelé par le menu "basculer vers" :

Code:


SUB BasculeVersConstructeur()

   DIM_LOCAL chem$ , hnd% , exe$ , res%

   exe$="Constructeur.exe" : hnd%=dll_call1("GetProcessWindowHandle",adr(exe$))
  
   IF hnd%=0
      chem$=DIR_CURRENT$+"\Constructeur.exe" : EXECUTE chem$ : PAUSE 200
   ELSE  
      res% = dll_call1("BringWindowToForeground",hnd%) : PAUSE 200
      res%=dll_call1("ForceWindowToForeground",hnd%) : PAUSE 200  
   END_IF  
  
   MINIMIZE 0                                                      
  
END_SUB


et de l'autre coté :

Code:


SUB BasculeVersEditeur()

   DIM_LOCAL chem$ , hnd% , exe$ , res%
  
   exe$="Editeur.exe" : hnd%=dll_call1("GetProcessWindowHandle",adr(exe$))
  
   IF hnd%=0
      chem$=DIR_CURRENT$+"\Editeur.exe" : EXECUTE chem$ : PAUSE 200
   ELSE
      res%=dll_call1("BringWindowToForeground",hnd%) : PAUSE 200
      res%=dll_call1("ForceWindowToForeground",hnd%) : PAUSE 200  
   END_IF
  
   MINIMIZE 0  
  
END_SUB

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

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 20:11

Eh oui, tu t(y prends mal Smile Smile Smile

Excuse-moi, je n'ai pas pu résister.

Dans les deux codes, si le handls au début est zéro, qu'est-ce que tu fais ?
Tu lance le programme (bien !) mais tu ne recherche PAS à nouveau le handle !
Donc, si au départ, le handle est zéro,, il le reste et la fonction ne peut rien faire.

D'ailleurs, as-tu vérifié que si le handle est non-nul, est-ce que c'est bien le handle de la form 0 du programme visé ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyMer 4 Mai 2022 - 20:31

oui mais dans ce cas c'est juste le lancement du 2eme programme...
et c'est le programme en cours qui est minimisé.
et ensuite le 2eme programme retrouve le 1er. le handle est donc récupéré...

enfin je t'avoue que j'ai testé beaucoup de façons de faire et ce que tu indique je l'ai fait aussi.
Mais ça ne marche pas !

La seule solution que j'ai trouvé pour le moment c'est de fermer le programme 1 quand on ouvre le programme 2
et relancer le programme 1 quand on quitte le programme 2.

Mais justement je voulais éviter de quitter les programmes et pouvoir si l'on voulait les avoir ensemble.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 1:12

Alors, procède comme suit:

1. Lance ce programme:
Code:
caption 0,str$(handle(0))
edit 1 : text 1,caption$(0)
end

Puis, place ceci dans l'éditeur, SANS le lancer:
Code:
' test_GetCurrentWindowState.bas

dim res%, hnd%
hnd% = 7082924
dll_on "KGF.dll"
res% = dll_call1("ForceWindowToForeground",hnd%)
end

' ou tester ceci, uste pour voir le résultat de la fonction GetCurrentWindowState
res% = dll_call1("GetCurrentWindowState",formhnd%)
select res%
  case -1: message "erreur"
  case  0: message "état normal"
  case  1: message "état minimisé"
  case  2: message "état maximisé"
end_select
end

Maintenant, copie le contenu du EDIT du premier programme dans le source du second, dans la ligne "hnd%= ..."
mais ne le lance pas encore !

Maintenant, minimise le premier programme, puis lance le second.Le premier apparaîtra alors en avant-plan.

Maintenant, tu peux arrêter le SECOND programme, maximiser le premier, pus relancer le second. Résultat correct !

Maintenant, arrête le SECOND programme, normalise le premier et place-le en arrière-plan, en appelant un programme quelconque devant (Firefox, Notepad, ... n 'importe quoi). Puis lance le second à nouveau et le premier réapparaîtra en avant-plan.

Evidemment, cela nemarche que si tu as la version actuelle de KGF.dll. Mais ça marche.

Si cela ne marche pas chez toi, avec certitude, tu n'as pas le bon handle, à supposer que tu aies la bonne version de KGF.dll. Affiche le handle en question dans les deucx programmes et vérifie bien que la valeur est identique.

Tu vois, quelques fois, de petits codes tout simples peuvent mettre une fonctionnalité en évidence.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 8:55

Bonjour Klaus

Effectivement selon ton test cela fonctionne.  Laughing

J'ai repris mon code et j'ai ajouté un control du handle. Celui est bon dans les 2 programmes.
Le retour du handle par l'autre programme est correcte.

Petites précisions :
1)Je fais ces tests uniquement avec des versions EXEcutable et non les fichiers Bas.
2) Pour l'éditeur je dois activer KGF à chaque passage et la fermer en fin de sub car d'autres dll sont utilisées dans le programme.
3) Il me semble qu'il y a un comportement différent dans Windows lorsqu'on utilise le bouton MINIMISER en haut à droite et la fonction MINIMISER dans Panoramic.

Je me demande si tout cela n'a pas un lien ?!

Je pense que je vais en rester à ma première idée qui consiste à fermer le premier et ouvrir le second.
Et si l'utilisateur souhaite mettre les 2 en même temps il lui suffira de ne pas utiliser cette fonction.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 10:14

Bon, j'ai plusieurs remarques à faire:

1. j'ai sécuriséla fonction GetCurrentWindowState qui détecte maintenant correctement si le handle est nul ou celui d'un objet qui n'est pas une FORM. Comme cette fonction est utilisée également en interne par la fonction ForceWindowToForeground, les deux sont concernées par cette modification. Donc, recharge KGF.dll...

2. il y a effectivement un différence entre minimiser une fenêtre par le bouton dans la barre de titre ou par la commande minimize de Panoramic. Idem pour Maximize. Je ne sais pas encore à quoi ça tient et je vais traquer cela. En attendant, ça marche parfaitement pour le changement d'état provoqué par les boutons de la barre de titre. En ce qui concerne les commandes Panoramic, l'état du programme ciblé est bien reconnu correctement, mais le rappel ne se fait pas. Je vais donc me focaliser là-dessus.

3. Voici une version améliorée des programmes des test. Le programme BBB est celui dont l'état est à analyser, et le programme AAA est celui qui analyse et/ou rappelle le programme BBB.

AAA:
Code:
' test_GetCurrentWindowState.bas

label rappeler, tester
dim res%, hnd%, titre$
titre$ = "BBB"

caption 0,"AAA"
alpha 1 : top 1,10 : left 1,10 : caption 1,"Handle du programme BBB:"
edit 2 : top 2,40 : left 2,10 : width 2,100
button 3 : top 3,70 : left 3,10 : caption 3,"Rappeler BBB"
  on_click 3,rappeler
button 4 : top 4,70 : left 4,110 : caption 4,"Tester BBB"
  on_click 4,tester
dll_on "KGF.dll"
end 
 
rappeler:
  hnd% = dll_call2("GetWindowByTitle",0,adr(titre$))
  text 2,str$(hnd%)
  res% = dll_call1("ForceWindowToForeground",hnd%)
  message "Résultat: "+str$(res%)
  return

tester:
  hnd% = dll_call2("GetWindowByTitle",0,adr(titre$))
  text 2,str$(hnd%)
  res% = dll_call1("GetCurrentWindowState",hnd%)
  select res%
    case -1: message "erreur"
    case  0: message "état normal"
    case  1: message "état minimisé"
    case  2: message "état maximisé"
  end_select
  return

BBB:
Code:
' test_GetCurrentWindowState_BBB.bas

label minimiser, maximiser

caption 0,BBB
alpha 2 : top 2,10 : left 2,10 : caption 2,"Handle(0):"
edit 1 : top 1,40 : left 1,10 : text 1,str$(handle(0))

button 3 : top 3,80 : left 3,10 : caption 3,"Minimiser"
  on_click 3,minimiser
button 4 : top 4,80 : left 4,110 : caption 4,"Maximiser"
  on_click 4,maximiser
 
end

minimiser:
  minimize 0
  return

maximiser:
  maximize 0
  return

Ce sera un peu plus facile à tester...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 10:36

Il y a de l'amélioration ! cheers

J'arrive maintenant à passer de l'un à l'autre mais il y a encore quelques blocages en fonction de la façon dont on minimise la fenêtre.
Comme tu l'indiquais dans le précédent message...

J'ai fait les tests avec mes programmes Editeur et Constructeur, donc en 'situation réelle' et avec les fichiers EXEcutables.

En fait si la minimisation se fait par programmation le retour de la fenêtre ne se fait pas !
Par contre si l'on minimise avec le bouton au haut à gauche cela fonctionne...

Je pense que tu te rapproches du but... Laughing

PS : Et sinon peut on minimiser par une fonction KGF ?
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 11:03

Citation :
PS : Et sinon peut on minimiser par une fonction KGF ?

Oui ! Regarde la doc de la fonction ChangeWindowSize dans la section "Fonction de gestion des fenêtres":
Code:
res% = DLL_call6("ChangeWindowSize",hnd%,fonction%,haut%,gauche%,hauteur%,largeur%)

Tout se joue au niveau au paramètre fonction%:
Code:
code fonction à exécuter:
  0 = maximiser la fenêtre
  1 = placer la fenêtre en (gauche%,haut%)
  2 = centrer la fenêtre à l'écran
  3 = placer la fenêtre en (haut%,gauche%) et imposer les dimensions largeur% et hauteur%
  4 = centrer la fenêtre à l'écran et imposer les dimensions largeur% et hauteur%

Tu peux donc jouer sur le code 3 pour déplacer une fenêtre hors de l'écran (avec gauche%=10000 par exemple) ou la rappeler (avec gauche%=0 ou n'importe quelle valeur utile...). Ainsi, tu évites l'écueil de la minimisation par Panoramic.

Si tu utilises cette option, utilise en fait les deux techniques conjointement: ForceWindowToForeground au cas où la fenêtre aurait été réduite par le bouton de la barre de titre, suivi de ChangeWindowSize code 3 pour imposer position et dimension. Dans ce cas, tu utilisera aussi ChangeWindowSize au lieu des commandes Panoramic MINIMIZE et MAXIMIZE.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 12:42

Bon j'y suis depuis plus d'une heure et ça ne fonctionne toujours pas non plus...

Je passe l'affichage "hors écran" et lorsque je rappelle ChangeWindowSize par la fonction 3 il n'affiche rien !
j'ai ajouté ForceWindowToForeground et même ajouté des pauses 200ms pour assurer un délai.

Bref je vais revenir comme je disais à mon idée de départ qui fonctionne parfaitement.
A moins que tu trouves une solution d'ici là...

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

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 14:25

Bon, j'aib modifié ChangeWindowSize de la manière suivante:
en passant la valeur de -1 dans les deux derniers paramètres, la largeur et/ou la hauteur de la fenêtre n'est pas changée.

Donc, mes deux programmes de démo deviennent:
AAA:
Code:
' test_GetCurrentWindowState.bas

label rappeler, tester
dim res%, hnd%, titre$, m1%
titre$ = "BBB"
m1% = 0 - 2

caption 0,"AAA"
alpha 1 : top 1,10 : left 1,10 : caption 1,"Handle du programme BBB:"
edit 2 : top 2,40 : left 2,10 : width 2,100
button 3 : top 3,70 : left 3,10 : caption 3,"Rappeler BBB"
  on_click 3,rappeler
button 4 : top 4,70 : left 4,110 : caption 4,"Tester BBB"
  on_click 4,tester
dll_on "KGF.dll"
end 
 
rappeler:
  hnd% = dll_call2("GetWindowByTitle",0,adr(titre$))
  text 2,str$(hnd%)
  res% = dll_call1("ForceWindowToForeground",hnd%)
  res% = dll_call6("ChangeWindowSize",hnd%,3,0,0,m1%,m1%)
  message "Résultat: "+str$(res%)
  return

tester:
  hnd% = dll_call2("GetWindowByTitle",0,adr(titre$))
  text 2,str$(hnd%)
  res% = dll_call1("GetCurrentWindowState",hnd%)
  select res%
    case -1: message "erreur"
    case  0: message "état normal"
    case  1: message "état minimisé"
    case  2: message "état maximisé"
  end_select
  return

et BBB:
Code:
' test_GetCurrentWindowState_BBB.bas

label minimiser, maximiser

dim res%, m1%
m1% = 0 - 1

caption 0,BBB
alpha 2 : top 2,10 : left 2,10 : caption 2,"Handle(0):"
edit 1 : top 1,40 : left 1,10 : text 1,str$(handle(0))

button 3 : top 3,80 : left 3,10 : caption 3,"Minimiser"
  on_click 3,minimiser
button 4 : top 4,80 : left 4,110 : caption 4,"Maximiser"
  on_click 4,maximiser
 
dll_on "KGF.dll"
 
end

minimiser:
  res% = dll_call6("ChangeWindowSize",handle(0),3,0-10000,0,m1%,m1%)
'  minimize 0
  return

maximiser:
  maximize 0
  return

Lance BBB, minimiseèle par le bouton.
Lance AAA, rappelle BBB par le bouton.
==> ça marche.
idem pour le bouton de maximisation.

Et ça marche pour les boutons de la barre de titre...

Il faut recharger KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 17:17

Non non ça ne marche pas chez moi si je teste avec l'éditeur et le constructeur ! affraid scratch Mad

J'attends que tu trouves la solution entre la fonction MINIMIZE et le bouton en haut de la FORM.
C'est la solution la plus proche qui fonctionne la mieux...

Le reste c'est trop chaotique et a chaque fois je teste durant des heures pour trouver une solution... No

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

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 17:40

Je ne sais pas ce que fait la commande MINIMIZE de Panoramic. Elle n'est pas équivalente à un clic sur le bouton "Minimiser" de la barre de titre et je ne sais pas comment réagir par rapport à ça.

As-tu seulement essayé d'utiliser la commanne "NORMAL N" de Panoramic . Elle devrait inverser l'effet de la commande MINIMIZE, en tout cas selon la doc...

Mais si tu remplacesla commande MINIMIZE comme je l'ai fait dans mon programme de démo, ça marche bien ! A condition de recharger KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 19:18

Oui Klaus sur la papier ça marche bien...
Mais dans l'environnement de mes 2 programmes ça ne fonctionne pas ou pas complétement.
Et je ne veux pas intégrer quelque chose qui ne fonctionne qu'a moitié !

Peut être que Jack pourrai nous en dire (surtout pour toi) un peu plus sur la façon dont sont codés MINIMIZE, NORMAL et MAXIMIZE.

Pour le moment je reste sur mon idée de fermé le programme 1 et ouvrir le programme 2 et inversement.
En attendant, cette façon de faire fonctionne et cela me permettra d'avancer sur la suite.

Merci pour ton aide Klaus. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 21:07

Eh bien, il reste la façon ultime de forcer l'autgre programme à se restaurer lui-même: c'est un USER_EVENT !

Dans le programme qui est minimisé, tu fais un ON_USER_EVENT xxx. Et au label xxx, tu testes si c'est le bon USER_EVENT, at alors le programme fait un "NORMAL 0" et se restaure ainsi lui-même.

Je poste ce soir une version de KGF.dll qui te permettra d'envoyer un tel USER_EVENT, et le tout sera joué.
Tu peux aller plus loin, avec ça: forcer le programme distant à se minimiser lui-même, à se saborder lui-même etc...

Ca viendra ce soir.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 21:15

ah oui c'est un peu ce que je disais sur les précédents messages quand je parlais de USER_EVENT.

Mais comme tu n'avais pas relevé, je me suis dis que ce n'était peut être pas réalisable ! Wink

Prends ton temps Klaus. Demain je serai au boulot. J'aurai moins de temps et de possibilités...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 22:43

Je viens de me rendre compte que la fonction existe déjà ! Le l'avais faite pour pouvoir tester, mais elle est utilisable.

Alors, on fait comme ceci:
Code:
dim wpar%, lpar%
...
wpar% = hex("FF010000")
' FF000000 signifie "USER_EVENT envoyé par un programme Panoramic externe
' 00010000 signifie "exécuter la commande NORMAL 0"
' ... on peut en définir d'autres..
' lpar% peut aussi servir à passer des informations (comme handle(0) du programme local qui peut alors répondre...)
lpar% = 0
res% = dll_call2("SendUSerEvent",wpar%,lpar%)

et dans l'autre programme, tu fais:
Code:
label UserEvent
dim wpar%, lpar%
...
on_user_event UserEvent
...
UserEvent:
  wpar% = user_event_wparam
  lpar% = user_event_lparam
  if bin_and(wpar%,hex("FF000000")=hex("FF000000")  : ' est-ce un USER_EVENT envoyé part un programme Panoramic externe ?
    if bin_add(wpar%,"00FF0000)=hex("00010000")  : ' est-ce la commande pour NORMAL ?
      nomal 0
    end_if
    ... ici, traiter éventuellement d'autres codes action
    ...
  end_if

Il n'y a même pas besoin de recharger KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 23:05

ok par contre j'ai déjà le designer qui est en place sur le constructeur et voila ce que ça me donne :



et donc comment intégrer sans faire d'erreur ?
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 EmptyJeu 5 Mai 2022 - 23:13

Quelles sont les valeurs de MaskOrigin% et MaskOperation% ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 8 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 8 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 8 sur 15Aller à la page : Précédent  1 ... 5 ... 7, 8, 9 ... 11 ... 15  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» Nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: