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.
Problème de fenêtre modale. Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Problème de fenêtre modale. Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Problème de fenêtre modale. Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Problème de fenêtre modale. Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Problème de fenêtre modale. Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Problème de fenêtre modale. Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Problème de fenêtre modale. Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Problème de fenêtre modale. Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Problème de fenêtre modale. Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Problème de fenêtre modale. Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Problème de fenêtre modale. Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Problème de fenêtre modale. Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Problème de fenêtre modale. Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Problème de fenêtre modale. Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Problème de fenêtre modale. 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
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 Problème de fenêtre modale.

Aller en bas 
3 participants
AuteurMessage
Pedro

Pedro


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

Problème de fenêtre modale. Empty
MessageSujet: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 9:57

Bonjour.

Dans le code suivant, j'aimerais que la fenêtre n° 2 s'affiche en mode modal, et que le message ne s'affiche pas.
Avez-vous une solution ?
Merci de votre aide.

Ce code étant un extrait très simplifié du code de mon programme général.

Code:
dim res%

dll_on "kgf.dll"

width 0,1600
height 0,900

afficher_f1()
afficher_f2()

message ""

end

sub afficher_f1()
    form 1
    ' res%=DLL_call2("WindowTopMost",handle(1),1)
    res%=dll_call1("BringWindowToForeground",handle(1))

    width 1,500
    height 1,500
    left 1,500
    top 1,300
end_sub

sub afficher_f2()
    form 2
    ' res%=DLL_call2("WindowTopMost",handle(2),1)
    res%=dll_call1("BringWindowToForeground",handle(2))

    width 2,100
    height 2,100
    left 2,600
    top 2,400
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème de fenêtre modale. Empty
MessageSujet: Re: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 10:31

Voilà comment on fait les forms modales:
Code:
    label form1, form2, close1, close2
   
    dim res%

    dll_on "kgf.dll"

    width 0,1600
    height 0,900

    creer_f1()
    creer_f2()

    button 11 : top 11,10 :left 11,10 : caption 11,"Form 1" : on_click 11,form1
    button 12 : top 12,40 :left 12,10 : caption 12,"Form 2" : on_click 12,form2

    end

form1:
    afficher_f1()
    return
   
form2:
    afficher_f2()
    return
   
close1:
    hide 1
    active 0 : to_foreground 0
    return

close2:
    hide 2
    active 0 : to_foreground 0
    return

    sub afficher_f1()
      inactive 0
      show 1
    end_sub
   
    sub creer_f1()
        form 1
        hide 1 : on_close 1,close1
        ' res%=DLL_call2("WindowTopMost",handle(1),1)
        res%=dll_call1("BringWindowToForeground",handle(1))

        width 1,500
        height 1,500
        left 1,500
        top 1,300
    end_sub

    sub afficher_f2()
      inactive 0
      show 1
    end_sub
   
    sub creer_f2()
        form 2
        hide 2 : on_close 2, close2
        ' res%=DLL_call2("WindowTopMost",handle(2),1)
        res%=dll_call1("BringWindowToForeground",handle(2))

        width 2,100
        height 2,100
        left 2,600
        top 2,400
    end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Problème de fenêtre modale. Empty
MessageSujet: Problème d'affichage de Form.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 10:41

Bonjour.

Merci Klaus, mais la solution que tu me proposes est imparfaite.

En effet, le message ne devrait pas apparaître dans mon cas.
Le traitement des évènements après l'affichage de la 1ère form modale devrait être interrompu.


Code:
 label form1, form2, close1, close2

    dim res%

    dll_on "kgf.dll"

    width 0,1600
    height 0,900

    creer_f1()
    creer_f2()

    ' button 11 : top 11,10 :left 11,10 : caption 11,"Form 1" : on_click 11,form1
    ' button 12 : top 12,40 :left 12,10 : caption 12,"Form 2" : on_click 12,form2

    afficher_f1()
    message ""

    end

form1:
    afficher_f1()
    return

form2:
    afficher_f2()
    return

close1:
    hide 1
    active 0 : to_foreground 0
    return

close2:
    hide 2
    active 0 : to_foreground 0
    return

    sub afficher_f1()
      inactive 0
      show 1
    end_sub

    sub creer_f1()
        form 1
        hide 1 : on_close 1,close1
        ' res%=DLL_call2("WindowTopMost",handle(1),1)
        res%=dll_call1("BringWindowToForeground",handle(1))

        width 1,500
        height 1,500
        left 1,500
        top 1,300
    end_sub

    sub afficher_f2()
      inactive 0
      show 1
    end_sub

    sub creer_f2()
        form 2
        hide 2 : on_close 2, close2
        ' res%=DLL_call2("WindowTopMost",handle(2),1)
        res%=dll_call1("BringWindowToForeground",handle(2))

        width 2,100
        height 2,100
        left 2,600
        top 2,400
    end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème de fenêtre modale. Empty
MessageSujet: Re: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 11:37

Ca ne peut pas du tout marcher comme ça. Et ce n'est pas parce que tu essaies d'utiliser une fonction de la DLL que ça changera quelque chose au fonctionnement de Windows.

Le seul moyen d'interrompre une séquence linéaire de code, c'est d'ouvrir une fenêtre de dialogue. Et c'est en la quittant que l'exécution continue. Ce sont des fenêtres du genre MESSAGE_CONFIRMATION_YES_NO etc. Il y a aussi des fonctions ShowMessageModal... dans KGF.dll.

Il faut bien voir que toutes les commandes Panoramic (sauf justement celles ouvrant un dialogue, comme MESSAGE et ses clones, et FILE_NAME$) s'exécutent et passent à la suite. Donc, ce n'est pas la commande FORM ni la commande SHOW qui interrompra une suite linéaire de commandes.

Il faut concevoir son programme de sorte à avoir une séquence linéaire initiale qui prépare l'environnement Windows, les initialisations générales, etc. Puis, des actions ponctuelles, déclenchées par des évènements Windows qui sont les ON_CLICK, ON_CHANGE, ON_KEY_DOWN, ON_TIMER etc. A chaque évènement est associé une routine évènement qui est par essence une séquence de code linéaire, la plus limitée possible, et qui se termine par RETURN. Et si dans une telle séquence, il doit être interdit de cliquer ailleurs dans le programme, alors il faut appliquer la technique que j'ai montré dans mon code exemple ci-dessus, en désactivant la form 0 (et d'autres forms qui pourrraient être visibles !) et de la ou les réactiver en sortant du traitement censé être "modal". Tu auras beau essayer toutes les astuces possibles, tu ne pourras pas sortir de ce principe qui est la base du fonctionnement de Windows. Cela ne dépend pas de Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


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

Problème de fenêtre modale. Empty
MessageSujet: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 13:18

Bonjour.

Merci Klaus pour toutes ces précisions.

Je continuerai donc à utiliser inactive 0, puis active 0 à la sortie.
Revenir en haut Aller en bas
Yannick




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

Problème de fenêtre modale. Empty
MessageSujet: re   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 14:45

@ Pedro,

Que doit faire ta form "modal" ?
- agit elle sur ton programme pendant son affichage ?
- Propose t' elle un choix qui modifie une voir plusieurs variables ?
- affiche t elle un résultat ?

Avec un peu plus de précisions, on pourrait, peut être, t' apporter une solution...
Revenir en haut Aller en bas
Pedro

Pedro


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

Problème de fenêtre modale. Empty
MessageSujet: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 16:27

Bonjour.

Ma form modale affiche des informations, possède les boutons OK et Annuler, puis attend la sélection d'un élément dans une combo.

Le traitement doit donc être interrompu à cet endroit.
Revenir en haut Aller en bas
Yannick




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

Problème de fenêtre modale. Empty
MessageSujet: Re   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 16:39

Tu peux créer un petit programme, comme un "plug in"
Tu lances par execute_wait , cela met le programme en attente.
Ton bouton "ok" passes le résultat par les fonctions de KGF.dll de communication entre programmes, puis ferme la fenêtre.
Le programme principal reprend la main et traite les données passées....

C' est peu académique mais cela peut rendre service... Laughing
Problème de fenêtre modale. Captur30
Revenir en haut Aller en bas
Klaus

Klaus


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

Problème de fenêtre modale. Empty
MessageSujet: Re: Problème de fenêtre modale.   Problème de fenêtre modale. EmptyMer 25 Fév 2015 - 19:11

@Pedro:
J'ai mis une nouvelle version en ligne qui apporte un petit truc pour résoudre ton problème. Dans le petit exemple qui suit, le bouton effectue 3 actions:
1. afficher le message "avant'
2. lancer une form en mode modal
3. afficher le message "après"
Et le message "après" ne vient que lorsqu'on ferme la form.
Code:
' MakeFormModal.bas

label modal

dim res%

form 1 : hide 1 : caption 1,"Form devant être modale"
memo 2 : parent 2,1

button 10 : top 10,10 : left 10,10 : caption 10,"Form modale"
  on_click 10,modal


dll_on "KGF.dll"

end

modal:
  message "avant"
 
  res% = dll_call3("SetFormProperties",object_internal(1),2,1)
 
  message "après"
 
  return
 
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Problème de fenêtre modale. Empty
MessageSujet: Re: Problème de fenêtre modale.   Problème de fenêtre modale. Empty

Revenir en haut Aller en bas
 
Problème de fenêtre modale.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» KGF_dll - nouvelles versions
» Problème d'envoi de touches à une fenêtre.
» Problème avec select case Probleme réglé merci
» Bordure de Fenêtre
» Calculer la vitesse d'un PC

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: