FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» TourD Version 2
par Minibug Aujourd'hui à 1:50

» La métamatière et le peuple
par JL35 Hier à 21:18

» Capture d'une zone de l'écran total
par JL35 Hier à 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Hier à 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

» KGF_dll - nouvelles versions
par Klaus Mer 15 Nov 2017 - 2:08

» Analyser un code Panoramic
par JL35 Lun 13 Nov 2017 - 18:38

» Un bonjour en passant...
par Minibug Dim 12 Nov 2017 - 19:57

» mise a jour calculatrice
par joeeee2017 Dim 12 Nov 2017 - 4:20

» comment accèder à l'heure et à la date d'un fichier
par Klaus Sam 11 Nov 2017 - 0:53

» Compilateur FBPano
par Jicehel Mer 8 Nov 2017 - 15:22

» Mon adresse e-mail
par treehouse Mer 8 Nov 2017 - 14:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 Nouvelle DLL SetWindowButtons

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: Nouvelle DLL SetWindowButtons   Lun 3 Jan 2011 - 21:06

J'ai trouvé le moyen absolu d'empêcher la fermeture d'une fenêtre !


Et j'ai rendu cela acessible via une fonction dans ma nouvelle DLL SetWindowButtons.dll:

res% = dll_call2("SetCloseBox",hnd%,mode%)

hnd% est le handle de la form choisie, et mode% détermine le mode d'action: 0 supprime la croix rouge, 1 restitue la croix rouge !

Dans la même veine, j'ai paramétré les boutons Reduire et Agrandir:

res% = dll_call2("SetMinimizeMaximize",hnd%,mode%)

avec les mêmes paramètres !

Ainsi, une form sur laquelle on appelle les deux routines avec mode%=0, n'a aucun de ces boutons, mais garde son aspect normal par ailleurs.

Et on ne peut plus arrêter cette form par ma croix rouge, et ceci SANS on_close !


Et c'est dans DLLs divers, bien sûr !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouvelle DLL SetWindowButtons   Jeu 6 Jan 2011 - 2:31

Dans la même DLL, j'ai rajouté une fonction qui permet de régler le degré de transparence d'une form !

i% = dll_call2("WindowTransparency",hnd%,trans%)

avec hnd% = handle de la form, et trans% le degré de transparence, entre 0=invisible et 255=opaque

Le programme de démo est "test Boutons de form.bas".
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouvelle DLL SetWindowButtons   Sam 8 Jan 2011 - 5:03

Le programme de démonstration pour cette DLL contient maintenant un bouton "Form évanescente". Un click sur ce bouton fait apparaître une form qui s'évanouit progressivement, puis réapparaît tout aussi progressivement, en jouant sur la transparence de cette form.

On peut utiliser cela en créant deux forms sans bord aux mêmes coordonnées d'écran - elles se superposent donc. Si l'on donne la transparence 255 (défaut - opaque) à l'une et 0 (transparent) à l'autre, on n'en voit qu'une. On place maintenant un objet picture sur chacune de ces forms de manière à remplir l'espace visuel total de la form. En chargeant une image *.bmp dans une des forms et une autre dans l'autre, et en effectuant une variation de la transparence de la première form de 255 à 0 et de la seconde de 0 à 255, mais de façon synchrone (+1 et -1 simultanément sur les forms concernées), on obtient un fondu-enchâiné impeccable comme effet de transition entre deux images successives !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouvelle DLL SetWindowButtons   Lun 10 Jan 2011 - 4:27

A titre d'exemple, j'ai fait un petit programme qui montre la transition entre deux photos en fondu-enchaîné. Les noms des deux images sont à mettre en ligne 12 et 15, dans la commande file_load. La vitesse du fondu-enchainé se règle par l'intervalle du timer en ligne 24 (20 milli-secondes actuellement) et par l'incrément de transparence en ligne 30 et 31 (valeur 1 actuellement). Il suffit de mettre deux images personnelles. Bien sûr, adapter comme d'habitude, la taille des forms 10 et 20 et des picture 11 et 21 pour s'adapter à vos images ! Voici le code:
Code:
' FonduEnchaine.bas  -  exemple de transition douce entre 2 images

label tim

dim hnd10%, hnd20%, trans10%, trans20%, delta%, i%

dll_on "SetWindowButtons.dll"

form 10 : border_hide 10 : top 10,40 : left 10,40 : hnd10% = handle(10) : hide 10
width 10,400 : height 10,300
picture 11 : parent 11,10 : top 11,0 : left 11,0 : width 11,390 : height 11,270
stretch_on 11 : file_load 11,"radarfixe.jpg"
form 20 : border_hide 20 : top 20,40 : left 20,40 : hnd20% = handle(20) : hide 20
picture 21 : parent 21,20 : top 21,0 : left 21,0 : width 21,390 : height 21,270
stretch_on 21 : file_load 21,"apprenants.jpg"

trans10% = 255 : trans20% = 0 : delta% = 1

i% = dll_call2("WindowTranparency",hnd10%,trans10%)
i% = dll_call2("WindowTranparency",hnd20%,trans20%)

show 10 : show 20

timer 30 : timer_interval 30,20 : on_timer 30,tim : timer_on 30

end

tim:
timer_off 30 : trans10% = trans10% - delta% : trans20% = trans20% + delta%
if trans20%=0 then delta% = 1
if trans20% = 255 then delta% = -1
i% = dll_call2("WindowTranparency",hnd10%,trans10%)
i% = dll_call2("WindowTranparency",hnd20%,trans20%)
timer_on 30
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: ? Possibilité de la dll    Mar 11 Jan 2011 - 15:48

Salut Klaus,

Ton dernier ajout pour la transparence s'applique-t-il à tous les objets ?
Dans mon cas je m'intéresse à container.

Et oui... absent du forum depuis un moment, mais toujours actif sur Panoramic et toujours
plein de question ennuyeuses.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle DLL SetWindowButtons   Mar 11 Jan 2011 - 16:53

Pour les objets autres que les form, c'est un problème beaucoup plus ardu. Et cela vient de Windows. En effet, la transparence par canal alpha n'est possible que pour une fenêtre "top level" qui n'est pas une fenêtre fille. Et les objets tels que bouton, edit etc sont des fenêtres fille pour lesquelles ce n'est pas appliquable techniquement.

Pour le moment, je transforme une form "fille" en forme "indépendante" et lui applique la transparence. Ca marche bien, mais cela implique la form complète. Et c'est ainsi que j'ai réalisé le fondu-enchaîné entre deux images: j'ai créé deux forms sans bord, chacune remplie entièrement par un objet picture. Et ce sont les forms que j'adapte en leur appliquant la transparence, et automatiquement, le picture devient tranparent aussi. Et cela peut être utilisé avec d'autres objets que des picture, comme par exemple des container.

Bon, il y a des inconvénients à cette technique. D'une part, la transparence s'applique à la form entière, en englobant tous les objets qui y sont déposés. C'est pourquoi je ne pense pas que cela soit la solution que tu recherches. Et d'autre part, comme la form est indépendante, elle pourrait être cachée en cliquant sur une autre form (la form 0 par exemple). Il faut la déclarer "topmost" avec la fonction correspondante de KGF.dll. Et même dans ce cas, toujours comme elle est indépendante, elle n'est pas "collée" à la form 0. Si tu déplaces la form 0, la form transparente ne suivra pas, et elle sera donc déplacée relativement par rapport à son origine.

Je suis en train chercher une solution pour simuler la transparence sur d'autres objets que les forms, mais je n'en suis pas encore au bout. J'arrive à rendre un objet transparent, mais je n'arrive pas à le recoller dans la form. Patience...

Une autre piste que je poursuis: pouvoir intercepter l'évènement indiquant qu'une form a été déplacée. Si j'ai cela, je peux décaler une form transparente un un objet transparent de façon synchronisée avec la form qui a bougé. C'est difficile, mais je ne jette pas l'éponge. Cela fait bien un an environ que je cherche la solution pour maîtriser le bouton de fermeture, et j'ai fini par trouver, et maîtriser "Minimiser" et "Maximiser" en même temps, alors...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: snif...   Mar 11 Jan 2011 - 17:04

Bon ben tant pis,
mais tant qu'il y a de la vie, il y a de l'espoir
et mes compétences sont largement dépassées en ce qui concerne
la conception d'outils et manipulation de windows lui même.
Comme j'suis un gars patient......

Merci tout de même d'avoir répondu aussi vite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Nouvelle DLL SetWindowButtons   

Revenir en haut Aller en bas
 
Nouvelle DLL SetWindowButtons
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: