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.
trou ou transparence dans un form Emptypar Klaus Aujourd'hui à 13:18

» PANORAMIC V 1
trou ou transparence dans un form Emptypar Pedro Aujourd'hui à 11:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
trou ou transparence dans un form Emptypar Froggy One Aujourd'hui à 11:16

» @Jack
trou ou transparence dans un form Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
trou ou transparence dans un form Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
trou ou transparence dans un form Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
trou ou transparence dans un form Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
trou ou transparence dans un form Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
trou ou transparence dans un form Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
trou ou transparence dans un form Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
trou ou transparence dans un form Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
trou ou transparence dans un form Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
trou ou transparence dans un form Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
trou ou transparence dans un form Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
trou ou transparence dans un form Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

 

 trou ou transparence dans un form

Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: trou ou transparence dans un form   trou ou transparence dans un form EmptyDim 20 Juin 2010 - 22:44

Cette question s'adresse surtout à Klaus. Je ne pense pas que Jack ait le temps de répondre. A moins que d'autre développeur puissent intervenir.
Est-il possible d'avoir une fenêtre avec un trou dedans, ou un objet transparent qui ne puisse être interféré par aucun objet de la forme. Je veux dire voir au dessous. çà fait un moment que j'aimerais avoir cela, et j'aimerai savoir si c'est possible.

Peut-être en même temps avoir un objet qui soit toujours dessus, quoiqu'on fasse.

Merci
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyDim 20 Juin 2010 - 23:09

Ce dont tu parles, est assez compliqué à réaliser, même pour des langages commerciaux. Actuellement, Panoramic ne peut pas faire cela.

Depuis quelque temps, je sais réaliser des fenêtres de n'importe quelle forme (rondes, ovales, en tête de mickey ou encore plus biscornues), à l'aide d'un freeware utilisant Visual Basic V4.

Les API Windows permettent de définit des "régions" de n'importe quelle forme, même avec des trous dedans, et de leur donner des attributs spécifiques et de gérer ces régions globalement, comme des fenêtres. C'est ce qui s'approche encore le plus à ce que tu demandes. On peut donc très bien imaginer une région en forme de rectangle avec un trou ovale au milieu qui serait une deuxième région. La première serait opaque comme d'habitude, et la deuxième peut être transparente ou semi-transparente, en réglant le canal alpha.

Tout ceci pourrait être fait par une routine dans une DLL, mais ce ne serait évidemment pas un objet Panoramic et ne pourrait donc en aucun cas être utilisé comme on le fait avec une form (placer d'autres objets dessus, gérer des évènements ...).

Dans Panoramic, il n'y a que l'objet form qui puisse être placé au-dessus d'autres objets par to_foreground, et à condition d'employer cette commande judicieusement dans les évènements qui pourraient placer autre chose devant une form donnée, on peut la maintenir systématiquement au-dessus de tout. Ceci n'est pas possible pour un autre objet Panoramic. Et si une fenêtre d'une autre application vient se mettre au-dessus, Panoramic n'en saura rien et ne pourra pas y remédier.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 0:00

Très aimable de m'avoir répondu.

Ce qui serait bien tout de même est que la commande to_foreground fonctionne réellement. sinon il faut passer son temps à la mettre, vu que le moindre click sur un objet, met cette instruction off_course.

Je ne sais pas si c'est complexe pour Jack d'imposer un objet par dessus les autres avec cette commande. Actuellement pour moi, elle ne sert à rien. Je crois qu'un set_focus fait la même chose que cette commande.

Merci
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 0:06

to_foreground n'a qu'une action momentanée. Elle sert à placer une form devant toutes les autgres, à un moment donnée. Ce que tu voudrais, c'est une commande demandant à Windows (et non plus à Panoramic) de maintenir une form au premier plan, devant toutes les fenêtres windows. Panoramic ne fait pas cela, mais cela pourrait être fait par une DLL...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 0:56

J'ai ajouté une fonction à ma DLL qui fait exactement cela: placer ou non une fenêtre devant toutes les autres, quoi qu'il arrive ! C'est la fonction WindowTopMost qui prend 2 paramètres: le handle de la form concernée, et une variable integer dont la valeur 1 place la fenêtre devant toutes les autres, et la valeur 0 la remet en mode normal. Voici mon petit programme d'essai de cette fonction:
Code:
label click_1

dim flag%, i%

flag% = 1

dll_on "KGF.dll"
button 1
top 1,10
left 1,10
width 1,100
caption 1,"Toujours devant"
on_click 1,click_1

end

click_1:
i% = dll_call2("WindowTopMost",handle(0),flag%)
flag% = 1 - flag%
if flag%=1
    caption 1,"Toujours devant"
else
    caption 1,"Normal"
end_if
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 7:43

Je te répond rapidement, tout les jours je pars de bonne heure.
D'abord, combien tu payes tes ouvriers pour pouvoir intervenir si rapidement? Les heures sup. ça coutent chers.

Je suis pas là pour la journée et je regarderais ta dll. Une chose: tu devrais mettre un numéro pour chaque nouvelle version. On peut avoir une Dll installé et oubliée quelque part et avoir des problèmes.

Une question: ce qui m'intéresse en parlant de trou, est de pouvoir avoir un form d'un autre programme et le voir en permanence tant que nécessaire, c'est à dire en travaillant sur cette form extérieure, elle disparaisse pas en cliquant par erreur à côté.

Je dois filer, on m'appelle.
Salut
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 9:35

Pour les ouvriers, c'st simple: c'est moi. Eh oui, je suis à la retraite, et la programmation, c'est ma passion. alors, quand on aime, on ne compte pas !

Pour la version, tu as raison: je vais régler cela immédiatement.

Si j'ai bien compris, tu veux garder une fenêtre au-dessus de tout qui n'est pas une fenêtre ouverte par toi en Panoramic, mais venant d'un autre programme externe. Tout le problème consiste à récupérer le handle de cette fenêtre et on pourra appliquer ma routine WindowTopMost indifféremment, car elle n'est pas réservée aux fenêtres Panoramic. As-tu un moyen d'identifier la fenêtre qui t'intéresse? Par son titre par exemple ? ou par un autre moyen univoque ? Je pourrai alors faire ce qu'il faut.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 9:57

J'arrive mais je repars de suite.
Ne cherchez pas, j'ai trouvé la solution, et je verrais cela ce soir, et je sais que ça marche.
@+
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 10:08

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




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 22:22

Cette j'ai une solution, mais c'est pas de la tarte.
D'abord la form avec un trou (on voit le listing de l'éditeur derrière.

trou ou transparence dans un form Wkimagetrou

ensuite renplit avec la form du programme distant

trou ou transparence dans un form Wkimageouvert

Ce que je peux dire, c'est moins simple dans un programme dans lequel il faut adapter les dimensions de chaque editeur que je charge, en même temps que les objets qui n'auront pas toujours la même présentation.

@ Klaus: Ce que je veux imposer dans la forme du programme, c'est celle d'un autre programme Panoramic exécutable. Aussi si c'est possible, dis moi comment faire pour rendre ceci possible. Ce sera plus simple.

J'essaye de tout faire en Panoramic, mais parfois une exception n'est pas négligeable. Rappel: je transmets tout par le presse papier, d'un côté comme de l'autre. Dans le mémo, les infos sont ceux de la case cliquée dans la fenêtre qui s'est intégré.

A titre d'information, je suis toujours dans les testes. Je mets au point la méthode de programmation simple pour ce type de programme

Merci

J'aimerai savoir tout de fois, si ce type de programme vous intéresse.
Le programme de cellule permet de faire une grille dans laquelle on peut:
faire des boites de message avec 3 boutons avec le texte qu'on veut.
faire du texte dont le formatage est déjà fait; gras ou non italique, souligné, fonte diverse, des feuilles avec des cellules servant de boutons comme vous pouvez le voir
Programmer une cellule avee placement à gauche, centré, à droite, pour les nombre: une particularité avec formatage lors de la frappe de ceux-ci avec le nombre de chiffres décimaux. A noté que dans ce cas, lors de la frappe, ceux-ci s'aligne à gauche de la virgule, en mettant les zéros à droite, et le décimaux à gauche de virgule, c'est celle-ci qui est positionnée.
Faire du texte (mais qui est limité à la dimension du picture, vu que je n'ai pas les outils pour repérer la position d'un clic, lorsque je me sers de l'ascenseur), dont du texte dont les formats sont faits, là où vous écrivez, vous écrivez avec les couleurs, les styles du modèle.

La transmission se fait par le presse papier des données, seul un petit programme permet la gestion des feuilles.
Les possibilités de commande sont les suivant:
Ouvrir un fichier déjà programmé , le fermer pour en ouvrir un autre, ouvrir un menu ou de le fermer, de débloquer la forme (quant je parle de forme, je je dire feuille ou fichier) pour la déplacer par exemple, ou d'ouvrir une feuille de commentaire (ça c'est pour moi parce que dans le programme, j'aurai surement besoin d'au moins 50 feuilles /celui que j'avais fait sur mon atari, avait plus de 300 feuilles) , on peux aussi mettre en gras ou normal une cellule, modifier sur chaque cellule la couleur de fond et du texte, je peux aussi envoyer un ordre d'impression (mais là je n'utilise pas KGF.dll, j'ai trop de chose à faire, et apparemment il y a beaucoup de truc à faire pour initialiser. Ce n'est pas une erreur de Klaus, mais lorsque j'ai une idée, je mets la priorité sur celle-ci, et j'arrive pas à rentrer de celles des autres, d'autant majoritairement je ne peux rester longtemps devant le clavier, et chaque fois rentrer dans le programme. J'utilise un petit programme en Justbasic pour imprimer, dont j'ai inclus un petit fichier de quelques kilos dans le répertoire ou Just... est installé.

Le seul problème pour ce programme est qu'avec tous les outils que j'ai rajouté, il faut entre un seconde et demi, et trois secondes pour qu'un fichier soit ouvert, et si j'ouvre une boite de message, vous allez trouver cela trop long. A noter aussi que j'envoi l'ordre de fermeture depuis le programme.
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 22:39

Très intéressant, ce que tu exposes. Comment as-tu fait pour créer ce "trou" dans la form Panoramic ? Je viens de mettre une nouvelle version da ma DLL en ligne avec la possibilité de créer un trou, mais je ne vois pas comment tu fais sans utiliser les API des régions Windows.

Pour bien comprendre ta demande: tu souhaites faire apparaître, à un endroit précis, une form d'un autre programme Panoramic ? Que tu aurais lancé ou qui tourne déjà ? Qui est identifié comment ?

Si tu lances ce programme pour le voir à travers le trou que tu as créé, il faut certainement qu'il reste "derrière", autrement dit, que ton programme reste toujours au premier plan. Ma DLL contient une fonction qui permet de faire cela. Ca pourrait être utile dans ton cas ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 22:49

Pour la réponse du comment: tricher n'est pas joué comme on dit, et j'ai pas joué. Je prépare la réponse.

Pour ce qui concerne la forme, c'est celle du programme à cellule qui est compilé avec les outils de communication. Mon programme ouvre celui-ci, et ensuite je transmets l'ouverture de fichier, qui se place sur la forme du programme en cours. Le reste tu comprends. Ici c'est un trou, donc le clic sur le programme ne cache pas la fenêtre appelée.

Ce qui me serait plus utile qu'un trou, serait d'imposer cette fenêtre venant d'ailleurs pour qu'elle reste dessus, cela évite de faire un trou de la dimension, d'autant que chaque feuille aura une dimension différente.

Je prépare la réponse.
Revenir en haut Aller en bas
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyLun 21 Juin 2010 - 23:01

Donc voila: chaque couleur est une form, et je pensais qu'il serait possible de mettre le objets en double, sur les portion de form, et sur celle d'une form en dessous couvrant toute la surface. L'idée était d'utiliser cette surface, puis de mettre à hide celle-ci pour qu'apparaissent les portions de form qui n'en font qu'une visuellement.

trou ou transparence dans un form Wkimagecouleur

Partie du programme qui fait cela:
Code:
left 0,215:top 0,10:width 0,945:height 0,37

dim a$,controle1$ , saut$  , i% , b$
label fin ,  recoit_de_lotre_prg  , recu_PressPapier , commande

form 12:top 12,48:left 12,215:width 12,100:height 12,600:border_hide 12    :' color 12,247,247,198
form 13:top 13,48:left 13,1020:width 13,10:height 13,600:border_hide 13    :' color 13,239,251,206
form 15:top 15,48:left 15,354:width 15,667:height 15,200:border_hide 15    :' color 15,255,178,181
form 16:top 16,600:left 16,354:width 16,667:height 16,048:border_hide 16  :' color 16,181,223,255

memo      2 :top 2,410:width 2,520:height 2,100:bar_horizontal 2:' color 2,255,251,231
timer      3 :timer_off 3 : on_timer  3,recoit_de_lotre_prg
dlist      5
command_target_is 15
memo      6 :top 6,5:left 6,10:height 6,180:width 6,240:font_size 6,11:font_bold 6 :color 6,247,227,255
command_target_is 16
memo      7 :top 7,510:width 7,500:height 7,100:color 7,240,250,200

command_target_is 12
list      4 :left 4,5:height 4,300 :font_size 4,10 : on_click 4, commande
              show 0
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 0:17

Merci ! J'ai compris comment tu fais. C'est une façon intéressante de réaliser cela uniquement avec les moyens de Panoramic.

Dans peu de temps, j'ajouterai une fonction à ma DLL permettant de découper un trou rectangulaire dans une form, selon le modèle du trou en forme d'ellipse qui est déjà disponible. Ceci ne t'apportera rien de plus fonctionnellement, sauf à faciliter la programmation puisqu'une deule form suffira dans laquelle tu découperas le trou rectangulaire que tu veux, au pixel près.

Pour forcer un programme à rester toujours au-dessus, il y a ma fonction DLL suivante:
Code:
placer une form toujours au-dessus ON/OFF
  I:    res% = WindowTopMost(handle(numero_form),flag%)
  P:  res% = DLL_call2(“WindowTopMost”,handle(numero_form),flag%)
                        numero_form        le numéro d’objet de la form concernée
                        flag                        mode opératoire 
                                                          1=toujours au-dessus
                                                          0=normal
Pour l'utiliser, il faut connaître le handle de la form concerné. Mais comme il s'agit de ton propre programme en Panoramic, ce dernier pourrait de communiquer via le presse-papier le handle concerné: s'il s'agit de la form 0, il suffit de récupérer le résultat de handle(0), par exemple. Et c'est cette valeur, placée dans une variable de type entier, qu'il faut passer à ma routine, de la façon suivante:
Code:

dim hand%, res%

' charger hand% par handle(0) du programme à forcer sur le dessus, reçu via le presse-papier

res% = DLL_call2(“WindowTopMost”,hand%,1)  : ' forcer au-dessus de tout

res% = DLL_call2(“WindowTopMost”,hand%,0)  : ' retour à l'état normal


Ca,c'est disponible dès maintenant !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 7:13

Merci pour tes efforts. Je ferais les essais ce soir.
Le trou dans la forme ne m'intéresse pas vraiment, c'était le seul moyen que j'avais pensé pour avoir une feuille qui reste devant (cela dit, c'est très intéressant). A chaque appel d'une feuille, le format étant différent, tu vois la complexité où cela mène (mais c'est faisable).

Explique moi dans ta méthode:
Citation :
placer une form toujours au-dessus ON/OFF
I: res% = WindowTopMost(handle(numero_form),flag%)
P: res% = DLL_call2(“WindowTopMost”,handle(numero_form),flag%)

C'est pas du basic avec "I" et "P", il y a quoi un mélange d'explication et de code? Je n'arrive pas à voir ce que ces deux lettres veulent dire. Peut-être un bon café fera l'affaire. A moins que ta Dll interfaire parce qu'en basic il y a erreur.
A+
Revenir en haut Aller en bas
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 7:37

Je suis en train de penser: au départ j'avais prévu de mettre mon programme distant comme include, mais vu la longueur avec tout ce j'ai rajouté, et le nombre de variables, je suis passé par le presse papier pour alléger. Donc c'est pas la form 0 qui s'affiche, mais dans mon cas la form 7, donc si je comprends bien, on peut récupérer le handle de cette forme.
@+
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 9:03

Oui, il suffit que dans le programme crée la form 7, utilise ma routine en passant handle(7) en paramètre pour que cette fenêtre soit toujours sur le dessus. Autre possibilité: ce programme envoie le résultat de handle(7) à l'autre programme qui de son côté, utilise ma routine comme indiqué dans mon post précédent, pour mettre cet écran au-dessus de tout.

En fait, dès qu'on connaît le handle d'une fenêtre, on peut agir dessus, que ce soit une fenêtre de son propre programme ou non.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 16:54

Je viens d'essayer le blocage de forme extérieur avec la Dll.
Donc j'ai récupéré le handle de la form 7 du programme externe, j'ai vérifié avec un message ce numéro. Celui-ci est transmit. J'ai récupéré ce n° par le presse papier. Lorsque j'ai ouvert un fichier, je récupère l'accusé réception sous la forme:
Code:
 if instr(a$,controle1$+saut$+"ordre_reçu:charger")=1 then res% = dll_call2("WindowTopMost",handll%,1)
handll% est le n° reçu.
Il n'y a plus d'erreur. Si je mets un message à la suite de la ligne pour constater que le teste est passé, je le reçois, donc tout est fait.

MAIS si je déplace une fenêtre de mon programme de commandement, celui-ci recouvre le form soit disans bloqué.
Donc problème. Si tu veux je mets le code pour que tu puisses voir une éventuelle erreur:
Code:
error_french
left 0,215:top 0,10:width 0,945:height 0,37
dll_on "KGF_22juin10.dll"
dim a$,controle1$ , saut$  , i% , b$
dim res%,handll%
label fin ,  recoit_de_lotre_prg  , recu_PressPapier , commande

form 12:top 12,48:left 12,215:width 12,100:height 12,600:border_hide 12    :' color 12,247,247,198
form 13:top 13,48:left 13,1020:width 13,10:height 13,600:border_hide 13    :' color 13,239,251,206
form 15:top 15,48:left 15,354:width 15,667:height 15,200:border_hide 15    :' color 15,255,178,181
form 16:top 16,600:left 16,354:width 16,667:height 16,048:border_hide 16  :' color 16,181,223,255

memo      2 :top 2,410:width 2,520:height 2,100:bar_horizontal 2:' color 2,255,251,231
timer      3 :timer_off 3 : on_timer  3,recoit_de_lotre_prg
dlist      5
command_target_is 15
memo      6 :top 6,5:left 6,10:height 6,180:width 6,240:font_size 6,11:font_bold 6 :color 6,247,227,255
command_target_is 16
memo      7 :top 7,510:width 7,500:height 7,100:color 7,240,250,200

command_target_is 12
list      4 :left 4,5:height 4,300 :font_size 4,10 : on_click 4, commande
              show 0
            ' width 0,600:top 0,20:height 0,900: show 0
              item_add 4,"OUVRIR":        item_add 5,"commande_charger|C:\TESTE\fichiers_teste\teste prg.fic"
              item_add 4,"FERMER":        item_add 5,"commande|ferme"
              item_add 4,"IMPRIME":      item_add 5,"commande|imprime"
              item_add 4,"Ouvrir le Menu":item_add 5,"commande|menu_ON"
              item_add 4,"Fermer le Menu":item_add 5,"commande|menu_OFF"
              item_add 4,"débloquer Form":item_add 5,"commande|débloque"
              item_add 4,"bloquer Form":  item_add 5,"commande|bloque"
              item_add 4,"ARRET":        item_add 5,"commande|stop"

saut$=chr$(10)+chr$(13)
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' démarrage du programme en fond de tâche
execute "C:\TESTE\fichiers_teste\Text_simplifié_clipboard.exe"
wait 2000:beep  : ' on vient d'ouvrir l'autre programme qui envoi ensuite un numéro de reconnaissance
repeat
  a$=clipboard_string_paste$
  if instr(a$,"Numéro contrôle:")>0
      controle1$=right$(a$,len(a$)-instr(a$,":"))
  end_if
until controle1$<>""
' accusé de la réception du N°:
clipboard_string_copy controle1$+saut$+"en attente":wait 1000
handll%=val(controle1$)

' <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
timer_on 3
on_change 2,recu_PressPapier
' ------------------------------------------------------------------------------
end

' ========================visité par le TIMER======================================================
recoit_de_lotre_prg:
  clear 2
  clipboard_paste 2
return
' ==============================================================================
recu_PressPapier:
  timer_off 3
  a$=clipboard_string_paste$
  if a$=controle1$+saut$+"ordre_reçu:QUITTEZ" then goto fin
  if instr(a$,controle1$+saut$+"ordre_reçu:charger")=1 then res% = dll_call2("WindowTopMost",handll%,1):message "bloc"
    i%=instr(a$,controle1$)
 if i%>0
    if instr(a$,"attente")=0
      b$="" : clear 6
      repeat
          i%=instr(a$,saut$)
          if i%>0
            b$=left$(a$,i%-1)
            item_add 6,b$
            a$=right$(a$,len(a$)-i%-1)
          end_if
      until i%=0
    end_if
 end_if
 clear 2
  timer_on 3
return
' ======================================================================
commande:
  a$=item_read$(5,item_index(4))
 '  a$=right$(a$,len(a$)-instr(a$,"}"))
clipboard_string_copy controle1$+saut$+a$
return

fin:
timer_off 3:dll_off
terminate

Qu'est-ce qui cloche? A noté que c'est le handle de la form 7, et non celle du picture qui l'accompage. Il suffit de voir les image plus haut qui vont avec ce programme. Je n'ai pas encore effacé les morceaux de forme pour faire le trou.
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 18:44

J'ai regardé ton programme et je ne vois pas d'anomalie évidente.

Regarde mon petit programme de test et fais-le marcher par l'éditeur. Si tu cliques sur "Toujours devant", il n'y a pas moyen de mettre une autre fenêtre devant. Il doit y avoir un problème de passage du handle. Affiche le handle de la form 7 dans le programme qui l'envoie, et également dans le programme qui l'utilise, donc la variable handll%. Une autre solution consisterait à appeler ma fonction dans l'autre programme, celui qui crée la form 7, juste après la création de cette form.

Code:
label click_1

dim flag%, i%
flag% = 1

dll_on "KGF.dll"
button 1
top 1,10
left 1,10
width 1,100
caption 1,"Toujours devant"
on_click 1,click_1

end

click_1:
i% = dll_call2("WindowTopMost",handle(0),flag%)
flag% = 1 - flag%
if flag%=1
    caption 1,"Toujours devant"
else
    caption 1,"Normal"
end_if
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 19:26

Je viens de voir un problème. Effectivement ça marche au départ. Si je déplace la barre du haut sur la form, celle-ci a le dessus (je rajoute en éditant que la form a le dessus sur la barre)
Par contre lorsque je clic sur la forme bloquée, elle perd sont blocage, car ensuite le clic sur mes multi-forme repasse dessus.

Donc ton programme au départ, mais c'est seulement ensuite, dès le clic sur la forme, qu'il y a problème.

Je rajoute cette image:
trou ou transparence dans un form Barrecache


C'est ok, mais ensuite dès que je clic sur la forme, tout redevient normal.


Je viens de voir que la form reprend son statu de normal, par contre lorsque j'ouvre un autre programme, la forme se remet dessus ce programme, et reperd de nouveau son statu dès le clic sur la forme, et ceci à chaque lancement de programme. Ce qui veut dire que la forme est toujours bloquée pour un nouveau programme même si précédemment elle est passées dessous. J'ai pas l'impression d'être clair!
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMar 22 Juin 2010 - 22:39

Si, si, c'est un descriptif suffisamment clair pour me permettre des tests ciblés. Je te tiendrai au courant.

EDIT

J'ai fait des essais exhaustifs, et je n'arrive pas à passer une fenêtre devant celle de mon petit programme test du post précédent. Prends-le dans l'éditeur Panoramic, exécute-le et essaie de passer une fenêtre devant. Même en cliquant dans la barre de tâches, cela ne marche pas, encore moins en cliquant dans une autre fenêtre.

As-tu essayé de faire l'appel de la fonction WindowTopMost dans le programme qui déclare la form 7, juste après la déclaration de la form 7 ou éventuellement juste après un show 7 ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMer 23 Juin 2010 - 3:06

Je viens de faire l'essai directement di programme. J'ai mis l'appel à la fonction directement après la déclaration de form, et également après l'ouverture du fichier, après l'affichage. Ça ne marche pas du tout.
J'ai compilé et repris le mode échange avec le presse papier, et cela fonctionne comme décrit dans le post précédent.

A propos qu'en est-il pour toi du mode hide et show? par rapport avec ton appel.
Revenir en haut Aller en bas
Invité
Invité




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMer 23 Juin 2010 - 7:28

Je me suis posé la question depuis. Lorsque j'appelle cette fonction, la grille est affichée et est en attente. Là elle est au dessus. Mais si je clique sur la forme, une cellule est sollicitée et je passe par un sous programme de formatage aujourd'hui depuis que j'ai rajouté les fonction de centrée et position droite. Pour ce faire, je passe par une autre forme avec un picture pour connaitre la largeur du texte de la cellule comme on là fait ensemble. En rapidité, cela ne se voit pas vu que j'ai simplifié à l'extrème le procédé.

Est-ce que le passage dans une autre forme dans le programme ne retire pas provisoirement sa caractéristique de blocage?

Je ne peux pas faire d'essai d'ici ce soir.
Revenir en haut Aller en bas
Klaus

Klaus


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

trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMer 23 Juin 2010 - 8:57

J'ai modifié mon programme de test pour ajouter uyne autre forme avec un champ edit et un bouton, mais le blocage fonctionne toujours aussi bien. Essaie ceci:
Code:
label click_1, click_4

dim flag%, i%, s$

dll_on "KGF.dll"

flag% = 1
off_error_goto
button 1
top 1,10
left 1,10
width 1,100
caption 1,"Toujours devant"
on_click 1,click_1

s$ = string$(30," ")
i% = DLL_call1("KGFdllVersion",adr(s$))
message s$

form 2
command_target_is 2
top 2,50
left 2,400
edit 3
top 3,10
left 3,10
button 4
top 4,10
left 4,150
caption 4,"Coucou"
on_click 4,click_4

end

click_1:
i% = dll_call2("WindowTopMost",handle(0),flag%)
flag% = 1 - flag%
if flag%=1
    caption 1,"Toujours devant"
else
    caption 1,"Normal"
end_if
return

click_4:
message "Coucou"
return

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




trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form EmptyMer 23 Juin 2010 - 15:14

Je viens d'avoir un peu de temps.
Je comprends que tu veux montrer que tout est ok pour ta Dll, mais tu es comme Jack, si un exemple fonctionne, forcément le reste fonctionne (je pensais par exemple la lecture d'une vidéo sur un objet movie où à part la lecture d'une séquence d'une théière, je nai jamais pu lire ine petite vidéo) C'est humain. Mais ce qui m'intéresse est que ça fonctionne pour mon programme (si c'est possible - de toute façon c'est pas catastrophique si on n'y arrive pas).

Veux-tu je je te joigne les deux codes. Dans le programme distant, j'ai mis la fenêtre devant et dans l'envoi, et dans chaque clic. J'ai mis dans l'appel d'une forme provisoir de ce programme à 0 pour voir.
J'ai mis à 1 depuis le programme de commande, et toutes les formes à 0, même après réception du presse papier.
J'ai fais un petit texte pour le fonctionnement de l'autre programme.

Finalement je rajoute le zip des programmes.
Ru en fais ce que tu veux, si tu veux tester

Voir le Fichier : Controle.zip
Revenir en haut Aller en bas
Contenu sponsorisé





trou ou transparence dans un form Empty
MessageSujet: Re: trou ou transparence dans un form   trou ou transparence dans un form Empty

Revenir en haut Aller en bas
 
trou ou transparence dans un form
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Faire un trou complexe dans un objet FORM
» Nouvelle fonction pour "percer un trou" dans une form !
» Problème d'affichage dans FORM
» Charger Notepad et Calc DANS uen form !
» Déplacer dynamiquement un objet dans une form

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: