Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Fenetres filles | |
| | Auteur | Message |
---|
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Fenetres filles Mar 22 Mar 2011 - 7:32 | |
| Bonjour Comment faire des fenetres filles avec panoramic ? Merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 10:50 | |
| Panoramic sait créer de multiples fenêtres. C'est la commande FORM qui le fait. On peut bien sûr inclure tous les objets visibles dans une form, soit par la commande PARENT, soit par la commande COMMAND_TARGET_IS. Les fenêtres créées ainsi sont affichées et actives, mais se sont des fenêtres non-modales. Ceci signifie que la fenêtre mère reste active, et un clic sur la fenêtre mère rappelle celle-ci en avant-plan, recouvrant la fenêtre fille. Pour éviter cela, il faut simuler le mode fenêtre modale. On peut le faire en utilisant la commande INACTIVE sur la fenêtre mère. Pour réactiver la fenêtre mère, il faut utiliser la commande ACTIVE dans une routine ON_CLOSE de la fenêtre fille. Tout ceci fait l'objet d'un tuto que j'ai envoyé à Jack, pour validation. En attendant, voici un fragment de code pour réaliser cela: - Code:
-
label close_fille, open_fille, active_mere
button 1 : top 1,10 : left 1,10 : caption 1,"Ouvrir fille" on_click 1,open_fille
' définir la fenêtre fille form 10 : hide 10 : top 10,200 : left 10,200 on_close 10,active_mere : ' en cas de croix rouge sur la fille
' avec son bouton de fermeture button 11 : parent 11,10 top 11,10 : left 11,10 : caption 11,"Fermer fille" on_click 11,close_fille
end
' on montre la fenêtre fille en désactivant la fenêtre mère open_fille: inactive 0 show 10 return
' on ferme la fenêtre fille en réactivant la fenêtre mère close_fille: hide 10 gosub active_mere return
' réactivation de la fenêtre mère - appelé même si l'on ferme par la croix rouge ! active_mere: active 0 to_foreground 0 return | |
| | | Invité Invité
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 11:45 | |
| Bonjour Klaus, Il y a une chose en rapport avec les fenêtres, et j'ai pas envie d'ouvrir un nouveau sujet pour cela: On ne peut parcourir la souris que sur des formes. Je trouve dommage, qu'il n'y est pas une instruction que permette de pouvoir naviguer sur celle du bureau, c'est à dire en dehors des formes. Si je veux déplacer une forme à un autre endroit, je ne peux relever les valeurs de la souris. Je ferme la parenthèse hors sujet! |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 11:58 | |
| Eh oui, Panoramic ne donne les coordonnées de la souris que pour un objet Panoramic donné. Si la souris est en-dehors d'une fenêtre Panoramic, on n'a pas accès aux coordonnées.
Mais ceci est possible en Delphi ! Là, je peux récupérer les coordonnées en absolu, et même le handle de la fenêrte ou de l'objet qui se trouve sous le curseur... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 22 Mar 2011 - 13:08 | |
| Il faudrait consulter Nardo26 qui a du pouvoir le faire pour son utilitaire avec les couleurs puisqu'il arrive à récupérer la couleur d'un objet hors form Panoramic. | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 19:42 | |
| Bonsoir
Merci de vos réponses
Une fenêtre fille se déplace en même temps que le fenêtre mère ( d'ou la nécessité pour mon programme). Une fenêtre fille ne peut se déplacer qu'a l'intérieur de la fenêtre mère (donc elle ne peut pas aller sur le bureau).
La commande Parent ne s'applique pas au Form donc impossible a utiliser. On peut aussi utiliser la commande to_background.
lorsque l'on click sur le form principal
on_click,sub_to_background
sub_to_background: to_background form_principal return:
résultat pas très joli
Je pense faire autrement pour mon programme, avec Panoramic c'est l'habitude ( comme beaucoup d'autres langages).
Mais c'est dommage.
Bonsoir a tous
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 22:57 | |
| Bon, je vois ce que tu veux faire. As-tu pensé à utiliser un CONTAINER pour faire cela, au lieu d'une FORM ? Un container reste dans sa form d'origine et se déplace avec cette fenêtre. Du peux le faire apparaître et disparaître à volonté, par les commandes HIDE et SHOW, et tu peux le déplacer à l'intérieur de ta fenêtre librement, par les commandes TOP et LEFT. En Panoramic, c'est ce qui se rapprocherait le plus de ce que tu décris. | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Fenetres filles Mar 22 Mar 2011 - 23:34 | |
| Merci pour l'idée Klauss Mais j'utilise des pictures dans des formes pour la transparence. Et je ne pense pas que je puisse utiliser container.
Mais au lieu de mettre mes pictures dans le form principal je les mettrai a coté.Et le forme principal en fenêtre flottante avec une commande pour les regrouper par l'utilisateur au format de départ au cas ou l'utilisateur aurait déplacer les formes. Si on ne peut pas faire comme on le pensait il faut changer ce qui est très courant avec Panoramic c'est dommage car c'est un bon logiciel mais certaines instructions ne vont pas jusqu'au bout des possibilités requises. j'espère qu'un jour jack voudra les compléter.
salut | |
| | | Invité Invité
| Sujet: Re: Fenetres filles Mer 23 Mar 2011 - 1:26 | |
| A vous de voir si il faut poster ceci ailleurs. Un essai pour connaitre les coordonnées de la souris sur le fond de l'écran. Le code pour récupérer n'est pas fait, c'est simplement pour naviguer sur une image. En faite je créé une forme entière avec le picture entier. Je mets à hide au départ pour copier l'écran. Ensuite je montre la forme, et je copie l'écran. On a donc un fond sur lequel on peut récupérer la position d'une souris. - Code:
-
' teste de récupérer l'image de fond, pour avoir les coordonnées de déplacement de la souris. hide 0 ' form pour récupérer le fond de l'écran form 10:full_space 10 : border_hide 10 picture 100:full_space 100 ' on cache la forme pour récupérer l'image de fond hide 10 wait 1000:beep ' création de l'image image 101 ' on récupère l'image d'arrière plan 2d_target_is 10 : 2d_image_copy 101,0,0,screen_x,screen_y ' et on la montre show 10 : 2d_image_paste 101,0,0 Si c'est intéressant, on peut placer cela ailleurs, mais est-ce nécessaire. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fenetres filles Mer 23 Mar 2011 - 10:36 | |
| @659_minifly: En y réfléchissant, je me suis rendu compte que ce que tu veux faire, c'est exactement ce que je fais pour attacher firefox ou IE à un container Panoramic. Et j'ai même une autre fonction DLL qui place la calculette Windows (entre autres) dans une fenêtre Panoramic. donc, j'ai déjà dans mes DLL's une fonction qui permet de faire cela, mais elle est utilisée de façon interne. Je l'ai donc rendu accessible par Panoramic: c'est la fonction AttachWindowToWindow. Elle prend 2 paramètres: le premier est le handle de la fenêtre fille, le second est le handle de la fenêtre parent (ou du container parent). Si le second paramètre est zéro, la fenêtre fille sera détachée de sa fenêtre parent. Cette fonction est accessible dans SetWindowButtons.dll, et la doc est mise à jour. Voici un programme de démo de cette fonction. Il affiche une fenêtre principale avec deux boutons, et une seconde fenêtre. Il faut la faire grlisser un peu vers le bas, pour que les boutons apparaissent. Le bouton "Attacher" colle rend alors la seconde fenêtre captive de la fenêtre principale et elle bougera avec celle-ci, et le second button libère la petite fenêtre. - Code:
-
label attacher, detacher dim hndchild%, hndparent%, i%
form 10
hndparent% = handle(0) hndchild% = handle(10)
button 1 : top 1,10 : left 1,10 : caption 1,"Attacher" on_click 1,attacher button 2 : top 2,10 : left 2,150 : caption 2,"Detacher" on_click 2,detacher
dll_on "SetWindowButtons.dll"
end
attacher: i% = dll_call2("AttachWindowToWindow",hndchild%,hndparent%) return
detacher: i% = dll_call2("AttachWindowToWindow",hndchild%,0) return
end
| |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: résolu Mer 23 Mar 2011 - 17:14 | |
| Merci Klaus mais lorsque je lance le programme,après avoir choisi "Attacher" j'ai une erreur (29) not correct arithmetic expression a la ligne 19
i% = dll_call2("AttachWindowToWindow",hndchild%,hndparent%)
même chose pour détacher.
Je pense que ce serait une solution a mon probleme.
=========================================
J'ai téléchargé a nouveau le dll et ça marche bravo.
Nous ainsi que Jack avons vraiment de la chance que tu sois la .
Jack pourrait te déléguer certain développement de Panoramic.
=========================================
Malheureusement on perd lq transparence des forms.
A+ | |
| | | Contenu sponsorisé
| Sujet: Re: Fenetres filles | |
| |
| | | | Fenetres filles | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |