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
» Gestion d'un système client-serveur.
Form minimisé, normale, maximisée Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Form minimisé, normale, maximisée Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Form minimisé, normale, maximisée Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Form minimisé, normale, maximisée Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Form minimisé, normale, maximisée Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Form minimisé, normale, maximisée Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Form minimisé, normale, maximisée Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Form minimisé, normale, maximisée Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Form minimisé, normale, maximisée Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Form minimisé, normale, maximisée Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Form minimisé, normale, maximisée Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Form minimisé, normale, maximisée Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Form minimisé, normale, maximisée Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Form minimisé, normale, maximisée Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Form minimisé, normale, maximisée Emptypar Jack Mar 30 Avr 2024 - 20:40

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 : -55%
Coffret d’outils – STANLEY – ...
Voir le deal
21.99 €

 

 Form minimisé, normale, maximisée

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptySam 18 Déc 2010 - 14:14

J'aimerais pouvoir
- savoir dans quel état est une form (minimisée, normale, maximisée)
- être avertie quand son état change
- pouvoir forcer l'état (minimisé, normal, maximisé)
Pour cela, je propose:
- une variable système FORM_STATUS qui retournerait les valeurs suivantes:
0 = normal 1 = minimisé 2 = maximisé
- un évènement on_change sur une form qui se déclencherait si l'état change
- une commande FORM_MODE N,S avec N=numéro de form S=état de la form à établir:
0 = normal 1 = minimisé 2 = maximisé

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




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptySam 18 Déc 2010 - 16:35

Tu veux dire un évennement on-resize Wink

Sinon bien vu pour cette idée, intéressant ça.
Revenir en haut Aller en bas
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptySam 18 Déc 2010 - 17:32

Oui, ce serait exactement un évènement ON_RESIZE. J'ai simplement choisi ON_CHANGE car c'est un mot-clé déjà connu de Panoramic, seulement pas utilisable avec les form. Je me suis dit que l'implémentation serait plus facile en activant ce mot-clé pour les form pour y projeter les évènements windows correspondant au resize, minimize, maximize ou normalize, mais je peux me tromper. Mais je suis sûr que Jack saura trouver la bonne formulation s'il retient cette suggestion.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 0:42

Tu poses un demande pour entre-autre minimiser une fenêtre, et moi j'ai un problème avec ta dll: kgf.dll

Je ne voulais pas ouvrir un nouveau sujet vu qu'il s'agit d'un problème externe à Panoramic, et comme justement il s'agit de diminuer un form, et bien je vais poser le problème ici.

Il me semblait que l'on pouvait cumuler les découpes dans un form, mais cela ne marche pas.

Les deux codes pris individuellement fonctionnent, mais l'association des deux, fait que la deuxième découpe referme la première.

Code:
  dim i% :label fin :width 0,50:height 0,50
 
  form 10:width 10,410:height 10,160:border_small 10 :top 10,200 :on_click 10,fin
  dll_on "C:\TESTE\KGF\KGF.dll"
  i%= DLL_call6("WindowRectangleHole" , handle(10) , 1 , 377 , 0,  70 , 70 )
  i%= DLL_call6("WindowRectangleHole" , handle(10) , 1 , 377 , 70,  5 , 90 )
 
  end
  fin:
  terminate

Est-ce pas possible, ou y-a-t'il une erreur de ma part?

Dans le cas où cela n'était pas prévu, ne te casses pas la tête, j'essaye une chose, mais c'est vraiment pas important.
Revenir en haut Aller en bas
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 2:23

Le bon endroit pour poser des questions concernant ces routines, c'est dans la rubrique "Le site de Klaus" sur la page d'accueil du forum, dans le fil de discussion "Nouvelle fonction pour "percer un trou" dans une form !" dont voici le lien:
https://panoramic.1fr1.net/t931-nouvelle-fonction-pour-percer-un-trou-dans-une-form

Je me suis penché un peu sur ton programme. Je me suis rendu compte très vite qu'il y a une erreur dans la documentation:
P: res% = DLL_call6("WindowEllipticHole",handle(numero_form%),mode%,top%,left%,width%,height%)
devrait être:
P: res% = DLL_call6("WindowEllipticHole",handle(numero_form%),mode%,left%,top%,width%,height%)
(inversion de top% et left%). Je corrigerai cela. Puis, j'ai vu qu'effectivement, seul se second "trou" est pris en compte ce qui n'est pas normal. Je vais explorer cela. Mais je posterai les réponses dans le fil de discussion référencé ci-dessus.

EDIT 19/12/2010 à 03:21

Le problème est corrigé et la nouvelle version mise en ligne !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 10:16

Je répond à ta proposition principale de statue de form minimisé ou maximisé.

Ta proposition est intéressante. On peut toutefois voir plusieurs choses.
1) défiir les dimensions de form normal. Ainsi:
Code:
width 0,100:height 0,500
lorsque l'on maximalise en cliquant sur la case, puis en maximisant, et en mode normal, la fenêtre reprend les dimensions précédentes. Là il n'y a rien à redire.
Mais si on miniminise la forme 0, là onne peut rien faire!
Apportons un timer:
Code:
width 0,100:height 0,500
label teste
timer 1:on_timer 1,teste

end
teste:
if width(0)<10 then message "largeur:"+str$(width(0))+"  hauteur:"+str$(height(0)):full_space 0
return
Et bien dans ce cas le timer ne fonctionne pas, et cela justifie ta demande.
Mais est-ce que vraiment çà apporterait une différence si on pouvait savoir si une fenêtre est minimisée?
Jusqu'à présent chaque fenêtre d'un programme (Word Paint ...) qui est minimisée, je ne sais pas si un programme peut réveiller la fenêtre, et là tu as des connaissances que je n'ai pas.
Si c'est le cas, ce serait intéressant.
Maintenant un timer de plus, cela devient à force problèmatique. Si il faut un timer pour ceci, un timer pour savoir si le clic droit de la souris est cliquée, si un timer existe pour ceci et cela, on se retrouve avec un drôle de codage constament détourné, si l'interval est trop court.
Là je pense qu'il faudrait aussi une commande du genre TIMER_BLOQUE, où tout les timer sont bloqués le temps que l'évènement d'un timer soit terminé. Et une autre commande TIMER_DEBLOQUE, où les timer qui étaient en action, en laissant de côté ceux qui étaient inactifs, soient de nouveau réactivés.
Il est vrai qu'on peut accompanier chaque timer d'un flag pour connaitre son état.
Conclusion, si c'est vraiment possible d'avoir un évènement qui intervient et permet de coder en conséquence, ce serait le bien venu.

Curieux le Navigateur TheWord Browser que je teste ne montre pas de correction orthographique. Dommage! peut-être faut-il un plugins
Revenir en haut Aller en bas
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 11:30

J'ai essayé de rétablir la form minimisée, à l'aide d'un timer. Ca ne marche pas. Non pas parce que le timer ne marche pas: le timer marche bien, même si la form est minimisée. Les commandes width et height ne font pas réapparaître la form, ni la commande show. Il y a une mini-fenêtre qui s'affiche en bas à gauche, au-dessus de la barre de tâches, et on peut la rétablir avec les boutons de dimensionnement de cette fenêtre.

Mais pour provoquer cela par programme, ça ne suffit pas. Il faut pouvoir connaître et gérer l'état de la fenêtre par programme si on veut s'assurer qu'une fenêtre donnée est bien affichée à un instant t précis.

Il y a bien sûr la possibilité de faire border_small - il n'y a plus les boutons "minimiser" et "maximiser", seul la croix persiste. On peut aussi utiliser border_hide et on gère tout par programme. Mais dans ces cas, on perd la souplesse de laisser l'utilisateur placer et dimensionner ses fenêtres comme il le veut, et c'est dommage.

Bien sûr on peut faire sans (dans mon IDE écrit en Panoramic je fais cela), mais c'est très rigide et on perd en souplesse. A mon sens, les fonctions proposées sont bien dans l'esprit de Panoramic et je n'ai pas l'impression que la réalisation risque de bouleverser beaucoup de choses.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 14:01

Toi qui es plein de ressources, il y a peut-être moyen de faire quelque chose.
Regardes avec tes dll le code suivant, peut-être pourrais-tu pondre quelque chose d'intéressant.

Code:
  dim i% ,g%:label fin ,grand
  width 0,50:height 0,50  : hide 0
 
  form 20: width 20,415:height 20,160:border_hide 20 :top 20,200:color 20,167,171,130
  form 10:hide 10: width 10,415:height 10,160:border_small 10 :top 10,200
  command_target_is 10

  button 3:top 3,010:left 3,381:width 3,18:height 3,20:caption 3,"r":font_name 3,"Marlett" :hint 3,"quitter"
  button 4:top 4,090:left 4,381:width 4,18:height 4,20:font_name 4,"Pointers":caption 4,"¤":hint 4,"suivant"
  button 5:top 5,065:left 5,381:width 5,18:height 5,20:font_name 5,"Pointers":caption 5,"@":hint 5,"précédent"
  button 6:top 6,035:left 6,381:width 6,18:height 6,20:font_name 6,"Marlett" :caption 6,"2"
  dll_on "C:\TESTE\KGF\KGF.dll"
  i% = DLL_call6( "WindowRectangleHole" , handle(10) , 1 , 377 , 4 , 28 , 25 )
  i% = DLL_call6( "WindowRectangleHole" , handle(10) , 1 , 377 ,26,  5 , 121 )
  i% = DLL_call6( "WindowRectangleHole" , handle(10) , 1 , 405 , 4,  5 , 144 )
  i% = DLL_call6( "WindowRectangleHole" , handle(10) , 1 , 380 , 144,26 , 4 )

  on_click 3,fin :on_click 6,grand  :show 10
  end
 
grand:
 g%=-1-g%
 if g%=-1 then full_space 10:else : width 10,415:height 10,160
return
fin:
if message_warning_yes_no("on quitte vraiment?")=2 then return
terminate


Dernière édition par cosmos70 le Dim 19 Déc 2010 - 18:06, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 15:20

C'est très intéressant. Cela permet de contourner le problème du on_close qui pour l'heure, ne permet pas d'empêcher la fermeture de la fenêtre. C'est sans rapport avec le sujet de mon post initial, mais je le garde comme moyen de remplacer le bouton de fermeture. Merci, Cosmos70 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 18:05

Je ne suis pas complètement hors sujet. Je me demandais si cela te ferais penser qu' il serait possible d'adapter ta dll pour présenter une forme avec les boutons fermeture et maximiser/restaurer
J'ai modifié le code plus haut pour présenter ce bouton. Là je remarque qu'il n'ai pas possible de passer en full_space d'une forme.

Je dis cela comme ça, c'est juste pour le filing, en réalité vu tes compétences, j'imaginais une forme trouée, avec comblage en dessous. A nous de placer les boutons.
Je pense qu'en même en testant le code, vu qu'il faut désactiver les trous pour passer en pleine page, et rétablir avec les décalages pour de nouveau bloquer la fermeture, cela devient bien compliqué.

Donc j'ai rien dit.
Revenir en haut Aller en bas
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyDim 19 Déc 2010 - 18:14

Et il en est de même si l'on change la taille de la form par la souris, en tirant les bordures. Pourquoi ? Parce que les coordonnées du trou rectangulaire sont spécifiée en pixels relativement au coin en haut à gauche de la form. Dès qu'on change la largeur de la form, la place des boutons "fermer", "minimiser" etc change, et le trou ne sera plus en face. Il faudrait alors être averti par un évènement ON_CHANGE (ou ON_RESIZE) pour reboucher le trou ancien et en percer un autre.

Non, sincèrement, je pense que les fonctionnalités que je suggère, permettent de résoudre cela élégamment, sans avoir à faire des "gymnastiques".
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyMar 21 Déc 2010 - 0:00

Bonsoir à tous ! Smile

Une petite remarque : lorsque l'on maximise une form, ses coordonnées X (LEFT) et Y (TOP) ont une valeur négative (la largeur des bordures je suppose)
c'est déja une info... Wink

Si je fais un petit programme avec : FORM 0 et un FORM 1 par exemple :
ce que je trouve dommage c'est que si on minimise le FORM 0, l'autre FORM est minimiser lui aussi.
Si on planque le FORM 0 (hide 0) --> le form 1 reste affiché, par contre si par la suite on minimise le form 1, c'est foutu on ne peut plus le faire réapparaitre...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyMar 21 Déc 2010 - 0:14

Eh oui, ça fait partie des problèmes avec les form. Une form autre que form 0 n'apparaît pas dans la barre de tâches, et si la petite mini-fenêtre qui s'affiche en bas à gauche n'est plus visible, on ne peut plus rien faire, même manuellement. C'est pourquoi je suggérais une solution programmable, par un évènement, une variable système (ou, à la réflexion, une fonction FORM_SIZE(N) ) retournant une valeur indiquant dans quel état se trouve la form. Car même si top(N) et left(N) retournent une valeur négative, encore faut-il savoir à quel moment le tester, et ça ne détermine que l'état maximisé. On n'a rien pour l'état minimisé. Et c'est pire quand la fenêtre est redimensionné par la souris: à moins de dédier un timer et une routine on_timer à la surveillance d'une fenêtre, il n'y a pas moyen de gérer cela. Et avec des timer, ça devient vite lourd et source de conflit.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyMar 21 Déc 2010 - 0:23

Oui en effet, ce qui serait bien ce serait de pouvoir "casser" le lien de parenté avec la form 0

Les timers tant que c'est pour redimensionner des objets dans une form ce n'est pas très compliqué
(cela nécessite une certaine façon de définir ses objets)
mais je reconnais qu'il faut faire un peu de gymnastique... Wink
Klaus : toujours frileux d'utiliser les timers ? Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyMar 21 Déc 2010 - 0:36

Non, pas du tout: je les utilise, comme le montre mon petit exemple posté récemment pour réaliser une form N (N<>0) "éternelle" - impossible à tuer par la croix: elle ressucite toujours, et avec le contenu de ses champs !

J'ai appliqué ce principe pour la fenêtre annexe de mon jeu de Belote (voir mon site): On ne peut pas la fermer non plus, et c'est avec un timer que je le fais.

Le problème avec les timer se précise dès qu'il y en a plusieurs. Les routines s'interrompent gaiement, et c'est la pagaille. Il faut désactiver judicieusement certains timers et les réactiver après - c'est pourquoi je parle de gymnastique. Et tout cela pour un truc qui pourrait être géré par un simple ON_CHANGE sur la form à surveiller, avec une fonction renseignant sur l'état actuel de la form.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée EmptyMar 21 Déc 2010 - 0:45

Oups! désolé mais j'ai pas mal de lecture en retard... Wink

oui un ON_CHANGE sur une FORM serait cool et pouvoir écrire:

FORM 1
PARENT 1,-1 : ' <-- ça serait vraiment le top !

Et peut être, pour plus tard, avoir un registre d'état/flags permettant de définir les propriétés d'un form ?

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





Form minimisé, normale, maximisée Empty
MessageSujet: Re: Form minimisé, normale, maximisée   Form minimisé, normale, maximisée Empty

Revenir en haut Aller en bas
 
Form minimisé, normale, maximisée
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Calculer la Normale d'un vecteur en C
» Form auf Form
» DIM?? Form>0
» BMP ou JPG sur une form
» Questions à propos de FORM

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: