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
» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 13:15

» Casse-tête : Echanger les positions des cavaliers
par jean_debord Aujourd'hui à 10:21

» demande pour recuperer un text speciale
par silverman Hier à 23:00

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

» Déterminer le Handle de l’objet ayant le focus
par papydall Dim 16 Juil 2017 - 3:15

» Déterminer le HANDLE du Bureau
par papydall Dim 16 Juil 2017 - 1:59

» Généralisation de a fonction OBJECT_INTERNAL
par Klaus Dim 16 Juil 2017 - 1:10

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Nouvelle DLL SetWindowButtons

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

avatar

Nombre de messages : 10061
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 : 10061
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 : 10061
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 : 10061
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 : 7930
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 : 10061
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 : 7930
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
 Sujets similaires
-
» Nouvelle de Numericable (Mobile / Free)
» Bonne nouvelle pour les non-dégroupés de FREE !!!!
» Nouvelle animation .....[résolu merci]
» nouvelle commande
» Nouvelle voiture pour Kit dans la suite de K2000

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: