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
» Aide de PANORAMIC
Bug avec to_foreground. Emptypar papydall Aujourd'hui à 4:21

» Je teste PANORAMIC V 1 beta 1
Bug avec to_foreground. Emptypar papydall Aujourd'hui à 4:17

» select intégrés
Bug avec to_foreground. Emptypar jjn4 Hier à 18:33

» PANORAMIC V 1
Bug avec to_foreground. Emptypar Klaus Hier à 9:53

» bouton dans autre form que 0
Bug avec to_foreground. Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Bug avec to_foreground. Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Bug avec to_foreground. Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Bug avec to_foreground. Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Bug avec to_foreground. Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Bug avec to_foreground. Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Bug avec to_foreground. Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Bug avec to_foreground. Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Bug avec to_foreground. Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Bug avec to_foreground. Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Bug avec to_foreground. Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

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 :
Réassort du coffret Pokémon 151 ...
Voir le deal

 

 Bug avec to_foreground.

Aller en bas 
5 participants
AuteurMessage
pan59

pan59


Nombre de messages : 367
Age : 66
Localisation : Wattignies
Date d'inscription : 16/10/2011

Bug avec to_foreground. Empty
MessageSujet: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 8:22

Bonjour à tous.

Apparemment, cette commande ne fonctionne pas correctement.

En effet, testez ce qui suit:

- créez une form1, puis placez la en avant-plan avec to_foreground 1

- cliquez ensuite sur la form 0

Eh bien, la form 1 diaparaît en arrière-plan.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 8:49

Klaus a répondu la dessus hier soir voir DLL
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 8:52

Bonjour Pan59, Smile
Avec ce petit programme, ton form 1 ne disparait pas:
Code:
label mon_formulaire
form 1
on_click 0,mon_formulaire
end
mon_formulaire:
to_foreground 1:return
Par contre, j'ai remarqué que si on clique sur la barre de titre du form 0, alors là, le form 1 disparait.
Alors, j'ai mis un timer à la place de l'évènement on_click, et là, ça fonctionne nickel!
Code:
label mon_formulaire
form 1
timer 2:timer_interval 2,10:on_timer 2,mon_formulaire
end
mon_formulaire:
to_foreground 1:return
A+ Wink Wink Wink
Revenir en haut Aller en bas
pan59

pan59


Nombre de messages : 367
Age : 66
Localisation : Wattignies
Date d'inscription : 16/10/2011

Bug avec to_foreground. Empty
MessageSujet: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 10:00

Bonjour.

Je viens de tester le code suivant:

Malheureusement, il ne fonctionne pas toujours, l'exécution d'un programme n'est pas toujours suspendue lorsque le fenêtre est mise au 1er plan !!

Merci d'avance à Klaus de voir le problème.


Code:
sub mettre_fenetre_au_premier_plan(numero%)
  res%=dll_call2("WindowTopMost",handle(numero%),1)
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 10:35

@Pan59:

Il y a une confusion qui règne depuis longtemps, autour du lancement de fenêtres par Panoramic. Je me suis déjà expliqué souvent sur le forum à ce sujet, et j'ai présenté les solutions appropriées. Suivant les cas, il peut y en avoir plusieurs.

D'abord un peu de théorie. Eh oui, c'est barbant, mais c'est indispensable.

Commençons par la notion de fenêtre en Windows. Comme son nom l'indique, pratiquement tout dans Windows est présenté sous forme de fenêtre (je reviendrai plus tard sur les rares execptions). Windows ne connapit qu'un type de fenêtre: le fenêtre ! Mais, une fenêtre peut avoir plusieurs attributs, elle a un parent, et elle peut être lancée en mode modal ou non-modal.

D'abord les attributs: taille, position, style et/ou présence du cadre, capture de la souris, acceptation de glisser/déposer, ... il y en a des dizaines. Et al permanance de la fenêtre au-dessus des autres estr juste un attribut parmi les autres.

Ensuite le parent: c'est une autre fenêtre qui en général a créé la fenêtre en question et qui est responsable de sa gestion (suppression en fin de programme, par exemple). Mais un peut faire "adopter" une fenêtre par une autre en lui changeant son parent. Une fenêtre sans parent (handle du parent égal à zéro) est considérée comme fenêtre fille du bureau (le bureau est son parent). C'est le cas de toutes les fenêtres FORM 0 (fenêtre principale de n'importe quel programme). Mais là encore, on peut faire adopter une fenêtre par le bureau...

Puis le mode. Intuitivement, on pense que lorsqu'on ouvre une fenêtre, celle-ci se met par-dessus tout et reste active jusqu'à ce qu'on la ferme, comme c'est le cas des dialogues d'ouverture, par exemple. On appelle ce mode le mode modal. Or, on peut ouvrir une fenêtre en mode non-modal ! Ceci veut dire que la fenêtre est bien créée, ouverte, placée au-dessus des autres et a le focus. Mais elle ne garde pas le focus captif ! En effet, on peut cliquer ailleurs, non seulement sur un autre programme (ce qui est normal, après tout), mais également sur une autre fenêtre du même programme. Et dans ce cas, c'est cette dernière qui devient active et qui vient recouvrir la fenêtre précédente.

Tous les objets de Windows (memo, edit, button, ...) sont des fenêtres modales dont le parent une une form, un container, un controle active-x etc, qui sont tous eux-mêmes des fenêtres dont le parent est ...

En réalité, on a dans Windows une arborescence complexe de fenêtres dont la racine est le bureau, et dont la profondeur peut être assez grande.

Juste encore un petit mot que ce qui n'est pas présenté en mode fenêtre dans Windows. Ce sont certains objets appelés "non fenêtrés" comme les libellés (alpha en Panoramic), les picture et tous les objets non visuels comme les dialogues d'ouverture, les timer, les listes en mémoire (dlist en Panoramic) etc.

Maintenant, venons-en à Panoramic.

A la lecture de ce qui précède, il devient clair que la commande FORM de Panoramic crée uniquement des fenêtres en mode non-modal ! Et le problème que tu rencontres, ce n'est pas un bug, c'est une fonctionnalité voulue ! Car ainsi, le programmeur garde toute liberté pour gérer lui-même ce qu'il veut faire avec la fenêtre. Encore faut-il le faire en connaissant le fonctionnement de Windows, d'où mon petit laïus. Peut-être Jack ajoutera-t-il un jour une commande FORM_MODAL (cela a déjà été demandé), mais c'est à lui de voir.

En attendant, je te propose deux solutions:

1. Ma fonction WindowTopMost dans KGF.dll (et SUB_KGF.bas). Elle bloque une fenêtre en permanence au-dessus des autres, y compris au-dessus de la form 0 du programme qui l'a créée. Souvent, cela suffit. Néanmoins, la form 0 du programme reste active. On peut continuer à cliquer dedans, saisir des informations etc.

2. tu crées la fenêtre annexe et tu la caches aussitôt. Lorsque tu voudras l'afficher, tu fais d'abord inactive 0, puis show de cette fenêtre. Lorsque tu fermes cette fenêtre par un bouton (ou dans l'évènement on_close de cette fenêtre si tu utilises la croix rouge), tu fais hide de cette fenêtre, puis active 0, et le tour est joué.

Regarde la démo suivante:
Code:
label form0, form10
caption 0,"Form 0"

button 1 : caption 1,"Sur form 0"
on_click 1,form0

form 10 : hide 10 : top 10,80 : left 10,200
caption 10,"Form 10"
on_close 10,form10
button 11 : parent 11,10 : caption 11,"Sur form 10"
on_click 11,form10

end

form0:
  message "On est sur la form 0"
  inactive 0
  show 10
  return
 
form10:
  message "On est sur la form 10"
  hide 10
  active 0
  to_foreground 0 : ' uniquement pour passer devant l'éditeur
  return
 

J'espère que les choses sont plus claires maintenant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7006
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 13:47

Clair comme le jour, limpide comme de l’eau de roche !
Merci Klaus !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
pan59

pan59


Nombre de messages : 367
Age : 66
Localisation : Wattignies
Date d'inscription : 16/10/2011

Bug avec to_foreground. Empty
MessageSujet: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 16:13

Bonjour à tous.

Merci de ton aide Klaus.

Grâce à ta méthode, j'ai enfin pû rendre modale toute fenêtre active.

Merci encore.
Revenir en haut Aller en bas
Klaus

Klaus


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

Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. EmptyVen 22 Fév 2013 - 16:19

Content d'avoir pu rendre service !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Bug avec to_foreground. Empty
MessageSujet: Re: Bug avec to_foreground.   Bug avec to_foreground. Empty

Revenir en haut Aller en bas
 
Bug avec to_foreground.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Bug avec a$=b$
» Pb avec Min & Max
» BUG avec MOUSE_X_POSITION et MOUSE_Y_POSITION
» bug avec commande_target_is
» Bug avec TEXT_WIDTH

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: