begin process at 2012 02 17 03:22:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > SKINS B1 AVEC TRANSPARENCE, MODIFIEZ L'ESTHÉTIQUE DE VOS APPLICATIONS À VOTRE GUISE (W2K & +)

SKINS B1 AVEC TRANSPARENCE, MODIFIEZ L'ESTHÉTIQUE DE VOS APPLICATIONS À VOTRE GUISE (W2K & +)


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :skin, interface, esthétique, xp, afck Niveau :Débutant Date de création :05/03/2005 Date de mise à jour :26/11/2005 13:37:10 Vu / téléchargé :10 249 / 2 742

Auteur : PCPT

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Skin avec lecture de fichier ini :
Séparée en 13 parties (dont le fond optionnel) + 10 contrôles (5*2 pour les effets OnClick)

à gauche (13 14)
-> DoucleClick gauche = fermer la fenêtre
-> Click droit = menu*

à droite
->min, max/restore, close = Click droit donne le visuel, Click gauche donne visuel + action

la barre du haut et le titre
->Click gauche enfoncé = déplacement
->DoubleClick gauche =agrandir / restaurer
... le titre se redimentionne au minimum, pour ne jamais mordre sur IMG 2

les images de droite et du bas
-> redimention Click Gauche enfoncé, curseurs** appropriés.
Pendant la redimention, le titre reste affiché et le contour de la forme sont visibles (pas le contenu).

*menu
click gauche / droit :
-> redimentionner la skin selon la hauteur ou la largeur de l'image de fond d'origine
-> cascade des skins
-> réduire toutes les fenêtres
-> fermer un groupe de skin (un type)
-> fermer toutes les skins
-> rendre transparente la skin, en pourcentage, à partir d'un bouton rond.
(slider - cf source 6603)


**curseurs
Certaines skins contiennent des curseurs. Selon le cas, le pointeur correspond au survol de l'image : les curseurs VB (donc le thème Windows), ou les curseurs de la skin. En WindowState=2, impossible de redimentionner la fenêtre, ou de la déplacer. Le curseur s'adapte à cette interdiction ;)


--------------------------------------------- ----------------------
Voila, je crois qu'on à fait le tour

[nouvelle source, manque de place, donc pas toutes les skins]
->http://site.voila.fr/vrac-perso/reste_maj .zip
->http://site.voila.fr/vrac-perso/screenmaj.j pg (1280*1024)

?? POURQUOI ??, alors qu'il en existe déjà.
Et bien -> l'apprentissage, le défit, le partage, la fierté, mais aussi d'un point de vue pratique, toutes celles existantes ont 2 défauts majeurs : les actions sur les formes sont très lourdes, et la skin est peu facilement manipulables.
J'attend vos conseils pour la rendre accessible à tous ;)

Source

  • 'la skin est générée, sans REGION, permettant une rapidité d'exécution notable.
  • 'Découpée de manière à pouvoir générer les formes les plus "personnelles"...
'la skin est générée, sans REGION, permettant une rapidité d'exécution notable.

'Découpée de manière à pouvoir générer les formes les plus "personnelles"...

 Conclusion

Appel à tous, première source, donc je m'attend soit à être cassé, soit rien,
alors j'espère avoir tord !!!
j'attend toute remarque constructive et je suis dispo pour toute question.
Mises à jour prévues : au fur et à mesure.

Zip est trop volumineux, donc je met la source ici, avec quelques skins, mais le reste est zippé sur :
http://site.voila.fr/vrac-perso/reste_maj.zip
un screenshOt pas déformé aussi :
http://site.voila.fr/vrac-perso/screen.jpg
http: //site.voila.fr/vrac-perso/screenmaj.jpg
Laissez des commentaires ;)
PCPT

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

06 mars 2005 19:53:28 :
06 mars 2005 19:58:52 :
09 mars 2005 13:39:20 :
------------------------------------------------------------------- Bugs existants : 1) les skins contiennent la taille mini de redimentionnement. Lors de l'ouverture d'une nouvelle skin (différente), toutes les fenêtres sont affectées à cette nouvelle valeur minimale. (ce qui est génant pour une valeur inférieur, si elle l'est au point d'écraser la taille minimale des images ("erreur 380, valeur de propriété incorrecte"). Pour corriger ce bug, il suffit de relire le fichier INI à chaque MouseDown sur les contrôles de resize, et d'appeler LoadResizing(Me.hWnd, MinWidth, MinHeight). (Cette mise à jour ne sera pas faite, puisque ce problème ne se pose que dans le cas de skins différentes pour un même programme, donc lié au loader, ce qui n'a aucun interêt pour une application.) 2) les curseurs personnels sont en Noir & Blanc. Et çà, j'en ai aucune idée..... Help???? 3) Savoir que l'utilisateur passe de WindowState = 1 à 0. Bah ouai, tous les "resize" sont en invisible, mais comment savoir que la fenêtre est dans la barre des tâches, réduite... (enfin, ça oui, mais qu'il la réactive, à par garder une constante de la dernière taille, ce que je ferais si personne n'as une manière un peu plus propre à me suggérer...) Half-Help??? 4) Casse importante pour le nom de dossier. Système différent dans la version Skin B2 à venir, donc j'ai laissé. Sinon, il faut faire les appels avec "LCase(string)" [renvoie en minuscule]. ------------------------------------------------------------------- Bugs corrigés / modifications : 1) Une couleur invisible AND forme Transparence : puisque le but est esthétique, il y avait déjà peu d'intérêt à ce que ces valeurs soient lues. Ce bug est donc corrigé => la valeur transparente est chargée au démarrage, puis un click droit sur l'image de gauche (IMG 13) développe le menu qui contient un Slider valide de 0 à 80% de transparence (Slider disponible source 6603, Merci à SupraDolph(...)) La transparence s'effectue donc au choix, sur n'importe quelle forme, et le %age de transparence est retouchable à volonté. 2) Erreur lors du MouseMove sur le menu après le click (quand beaucoup de fenêtres). Résolu. 3) Ajout de la "non-re-lecture" du fichier INI pour la même skin ouverte à la suite. 4) Suppression du problème de l'effect visuel du click-droit (sans action) sur les contrôles 17 et 19. 5) La fenêtre skinée s'ouvre comme celle du loader. Mais le résultat sur mon PC n'est pas très esthétique (carte graphique intégrée), et plus qu'acceptable sur 1 Athlon 1Ghz / GeForce2 32Mo, donc je vous laisse lire les commentaires dans "MOD_LOADER" pour l'activer et me conseiller (je le met ou pas :p )... 6) Si il y a une erreur de skin, le message apparaît. Mais lorsqu'on ferme ensuite le loader par "Unload", le projet n'est pas fermé. Résolu. ------------------------------------------------------------------- EXPLICATIONS : Bon, je n'ai peut-être pas détailler le fonctionnement de ma skin! Alors, tout d'abord, POURQUOI, alors qu'il en existe déjà. Et bien -> l'apprentissage, le défit, le partage, la fierté, mais aussi d'un point de vue pratique, toutes celles existantes ont 2 défauts majeurs : les actions sur les formes sont très lourdes, et la skin est peu facilement manipulables donc, ma mienne :p séparée en 13 parties (dont le fond optionnel) + 10 contrôles (5*2 pour les effets OnClick) à gauche (13 14) -> DoucleClick gauche = fermer la fenêtre -> Click droit = menu* à droite ->min, max/restore, close = Click droit donne le visuel, Click gauche donne visuel + action la barre du haut et le titre ->Click gauche enfoncé = déplacement ->DoubleClick gauche =agrandir / restaurer ... le titre se redimentionne au minimum, pour ne jamais mordre sur IMG 2 les images de droite et du bas -> redimention Click Gauche enfoncé, curseurs** appropriés. Pendant la redimention, le titre reste affiché et le contour de la forme sont visibles (pas le contenu). *menu click gauche / droit : -> redimentionner la skin selon la hauteur ou la largeur de l'image de fond d'origine -> cascade des skins -> réduire toutes les fenêtres -> fermer un groupe de skin (un type) -> fermer toutes les skins -> rendre transparente la skin, en pourcentage, à partir d'un bouton rond. (slider - cf source 6603 - en attente d'accord d'utilisation) **curseurs Certaines skins contiennent des curseurs. Selon le cas, le pointeur correspond au survol de l'image : les curseurs VB (donc le thème Windows), ou les curseurs de la skin. En WindowState=2, impossible de redimentionner la fenêtre, ou de la déplacer. Le curseur s'adapte à cette interdiction ;) ------------------------------------------------------------------- Voila, je crois qu'on à fait le tour [nouvelle source, manque de place, donc pas toutes les skins] ->http://site.voila.fr/vrac-perso/reste_maj.zip ->http://site.voila.fr/vrac-perso/screenmaj.jpg (1280*1024) J'attend vos commentaires Mise à jour prévue : Skin B2 ->résolution des bugs 2) & 3) avec un peu d'aide? ;) ->Ajout de 2 contrôles pour passer la skin en miniature (c'est à dire plus de skin, juste pouvoir basculer en fenêtre de taille minimale, avec une mini déco, un peu genre la barre de BsPlayer, ou celle de la version 9 de WinMediaPlayer au passage de la souris) ->peut-être ajout de 4 contrôles pour découper encore plus, doncpossibilité de "fioritures"suplémentaires applicables (cf la skin WMP, impossible à réaliser avec 8 images seulement) ->Gestion des applications des skins : ne pas avoir à faire de 23 à 29 images, si le contour n'est qu'une ligne... appliquer les contrôles selon des restrictions (pas de contrôle 17.18.19.20 pour fenêtre de taille fixe) ->formes aimantées, aux bords et entre-elles ->skin et curseurs en un seul fichier (.pak ou quelque chose de ce genre) et autres, selon les propositions ;) @ bientôt PCPT
11 mars 2005 15:08:24 :
--> description --> changement de rubrique --> modification du titre --> zip avec libération de la mémoire (Set ...Nothing) + Réglage Effet fondu direct + exe fourni
03 avril 2005 19:22:47 :
changement de catégorie (et oui, encore...) commentez svp, çà m'aidera pour la SKINS B2
26 novembre 2005 13:37:11 :
mots-clés

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) [VB2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI...
Source avec Zip Source avec une capture PUBLIC SHARED SANS MODULE - VARIABLE SINGLETON : IDENTIFICAT...
Source avec Zip Source avec une capture RÉCUPÉRATION DES IMAGES SYSTÈME DEPUIS LEUR EXTENSION OU LEU...
Source avec Zip Source avec une capture FILE FOLDER LOCKER - BLOQUER (ET DÉBLOQUER) L'ACCÈS À CERTAI...
Source avec Zip Source avec une capture FOLDER HELPER - DOSSIERS SPECIAUX, MANIPULATION DE DOSSIERS,...

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SKIN B2 (OU PRESQUE), MODIFIEZ L'ESTHÉTIQUE DE VOS APPLICATI... par PCPT
Source avec Zip Source avec une capture EASY SKIN (LITE) : CHANGEZ L'INTERFACE DE VOTRE APPLI EN UN ... par PCPT
Source avec Zip Source avec une capture CRÉATION ET APPLICATION MANIFEST EN UNE SEULE LIGNE [MODULE ... par PCPT
Source avec Zip Source avec une capture BOUTON CONTRÔLE FERMER/REDUIRE OCX (CTL) AVEC OPTIONS, SKINN... par PCPT
Source avec Zip Source avec une capture LOOK WINDOWSXP SOUS WIN9.X/2000/NT ***MUST SEE*** par BlackWizzard

Commentaires et avis

Commentaire de FearBlue le 05/03/2005 10:19:18

Tres tres sympa ta source :)
Evidement comme tu le dis il y a deux trois problemes
mais cette source mérite un bon 9/10 :)
bonne prog

Commentaire de Saros le 06/03/2005 14:44:52

C'est le fichiers .manifest dans les zip ? Ca fait un certain temps que je me pose cette question

screenshot avec un seul 'o' ^^

Chez moi la mise en cascade de tous les skins marche très bien.
Et j'ai pas compris la formulation de ton second problème :)

...
Si c'est vraiment ta première source, il n'y a vraiment pas de quoi en avoir honte (lol) là je te mettrais 10 ou 9. Et j'hésiterais pas à la mettre en niveau initié.

Commentaire de JJDai le 06/03/2005 15:39:04

Pour ceux qui sont dans mon cas, pas de chance, certaines fonction ne sont pas suportées par windows 98 et millenium (pex: SetLayeredWindowAttributes).
Domage !!!

Commentaire de Saros le 06/03/2005 16:39:38

Je me suis trompé en écrivant, je voulais dire "C'est quoi le fichiers .manifest dans les zip ?"

Avec la transparence il y a pas mal de problèmes de compatibilités... Il doit y avoir une fonction équivalente sous W98 et Millenium non ?

Commentaire de PCPT le 06/03/2005 18:32:24 administrateur CS

FearBlue ->
ok merci -_-


Saros ->
ok, alors pour le fichier .manifest, il sert, lorsque vous créez le "skin.exe", à avoir l'apparence des boutons StyleXp (au lieu des boutons de VB).
Bien sûr, ce n'est que pour XP. (cf source 2189)

Ensuite, désolé pour ScreenShot, en effet, je ne pensais pas me faire abuser par mon Label5... ;)

Pour le niveau, disons que j'ai fait au mieux, pour un rendu différent, et une compréhension idéale (du moins, j'espère)...

En second problème :
je peux soit :
       rendre le rose invisible
       rendre la form transparente

(cf MOD_LOADER)
j'utilise l'API SetWindowLong pour réussir à cumuler les 2, mais dans ce cas, je n'ai plus la fenêtre dans la barre des tâches, et c'est là ou intervient le problème de feuilles en cascade....


JJDai ->
et oui, dommage, mais W9x ne gère pas la transparence. J'ai laissé les commentaires dans la source pour tout de même tester les skins.

Une solution alternative pour W98/WME est de mette en fond une image quadrillée, un damier en fait, et d'oter une des 2 couleurs. Ca donne l'illusion d'un fondu, mais bien sûr, çà ne fonctionne pas sur une image (ou alors il faut être très patient sous paint... ;) )

merci pour la note, j'attend vos conseils pour améliorer ce projet...

PCPT

Commentaire de PCPT le 06/03/2005 19:57:43 administrateur CS

je viens d'enlever le projet complet de "vrac-perso", désolé...
(pour éviter aux "non-inscrits" d'avoir la source)

si le compteur est exact, 303 visites en 2 jours, svp, laissez des commentaires ;)
PCPT

Commentaire de PCPT le 07/03/2005 22:42:45 administrateur CS

problème de transparence au 3/4 résolu.
MAJ cette semaine....
PCPT

Commentaire de HwW_Mb le 08/03/2005 02:11:16

pas mal comme source ! corrige le bug transparence et ca sera 10/10
je met 9/10 ! bonne continuation et aussi bon courage :)

Commentaire de PCPT le 09/03/2005 13:47:46 administrateur CS

Voila, mise à jour, et oui, 4 jours après, déjà ;-)

Espérons que l'explication vous donne envie de tester un peu tout çà et de laisser des commentaires pour avancer....
(enfin, si elle ne vous a pas endormi, ou plongé dans un coma profond...)

J'en profite pour remercier LDX qui m'a répondu très clairement et professionnellement (même si pour finir, j'ai fait sans). Merci en tout cas, je garde ton code de côté, au cas où, et je n'oublierais pas de te cité ;)

Conseils, propositions, idées, je suis preneur.
Et de l'aide aussi pour mes 2 malheureux petits soucis, dans bugs ;)

Dans cette Mise à jour, j'ai mis 4 Skins, vous pouvez ainsi tout de suite tester, sans être obligé de télécharger le complément
(sur ->http://site.voila.fr/vrac-perso/reste_maj.zip qui contient la totalité des skins, images, icones, .exe, .manifest)

Voila, j'attend les retours ;)
PCPT

Commentaire de ldx le 10/03/2005 13:37:19

Bonjour à tous

PCPT je te réponds ici car je crois que ce qui suit peut intéresser d'autres personnes :

1- J'aimerais bien que quelqu'un me donne la définition d'un "SKIN", à quoi cela sert-il ?

2- Je te proposes l'amélioration suivante :

constat :
Quand on clique dans le menu (en haut à gauche d'un form généré avec le bouton droit) on a la possibilité de déterminer un coefficient de transparence (sous-menu 6) - J'en profite pour féliciter Dolphin pour son scroll rotatif

Une fois ce coef. déterminé, on clique sur le sous-menu et notre form généré devient plus ou moins transparent

Proposition :
Visualiser l'effet de transparence au fur et à mesure de notre choix

Pour ce faire ...
a/ dans FORM_MENU_SKIN - sub LBL_MENU_Click ...
on supprime le contenu de  "case 6"

        Case 6:  'alpha feuille appelante
'            Géré directement dans ALPHA_SCROLL_SCROLL

b/ on remplace la sub : ALPHA_SCROLL_Scroll() par :


Private Sub ALPHA_SCROLL_Scroll()

    Dim CoefTransparence As Byte
    Dim AliasForm As Form
    
    TagAppelant = Mid(Me.Tag, 6, Len(Me.Tag))
    
    LBL_MENU(6).Caption = "     " & CByte(ALPHA_SCROLL.Value) & "% de transparence"
    
    Select Case ALPHA_SCROLL.Value
        Case Is > 99
            CoefTransparence = 255      'Transparence maximale
        Case Is < 1
            CoefTransparence = 0        'opacité maximale
        Case Else
            CoefTransparence = CByte(ALPHA_SCROLL.Value * 2.55)
    End Select  'ALPHA_SCROLL.Value
    
    For Each AliasForm In Forms
        Select Case AliasForm.Tag
            Case TagAppelant
                SetLayeredWindowAttributes AliasForm.hWnd, &HFF00FF, (255 - CoefTransparence), LWA_ALPHA Or LWA_COLORKEY
                DoEvents
        End Select
    Next
    
    Set AliasForm = Nothing
    
End Sub

Celle-ci reprend en partie le contenu de l'ancien "Case 6"

La ligne importante est :

SetLayeredWindowAttributes AliasForm.hWnd, &HFF00FF, (255 - CoefTransparence), LWA_ALPHA Or LWA_COLORKEY

Importante parce que on introduit un "OR" . Celui-ci permet d'une part de supprimer la couleur de transparence et d'autre part de rendre plus ou moins transparent le form généré

(il faut avoir déclaré les 2 constantes  Public Const LWA_COLORKEY = &H1
Public Const LWA_ALPHA = &H2 présentes ici dans  MOD_TRANSPARENCE)

Le "OR" semble faire la différence avec le "WndSetOpacity" que beaucoup d'entre nous connaissent (celui-ci effectue apparemment qu'une seule tâche à la fois)

3- Question : Pourquoi avoir utilisé un manifeste appelant  Microsoft Common Control 6.0 ? Ne pouvais-t'on pas le sélectionner directement dans les composants ?

C'est vraiment un beau programme !

Charles-Marie CLUZEL  LDX Informatique

Commentaire de PCPT le 10/03/2005 20:55:08 administrateur CS

Salut,
Merci tout d'abord à SupraDolph pour son contrôle (source 6603). Je crois le garder ;)

LDX,

1- simplement, la skin (anglais = peau), concerne l'apparence statique d'un objet.
(form, contrôle, etc... "statique" parce que les effets n'en font pas parti. [quoi que ; j'essaierais un jour de faire une skin sous flash])

2- pour ce qui concerne le coté "rendu direct", j'y avais pensé, mais 2 points :

     1-> on est alors obligé, à l'ouverture du menu, que l'utilisateur veuille ou non changer la transparence, de récupérer la valeur de transparence au moment T. (Inconcevable de mettre la forme à 38% de transparence, et de ré-ouvrir le menu sans y voir le %age actuel)
Cette valeur doit alors soit être stoquée, soit retrouvée (un simple GetWindow... suffirait-il? j'essairais tout à l'heure...)

      2-> le plus génant est surtout que ce contrôle, qui me plaît bien, est assez difficilement maniable à ce format (Cf ma BetaTesteuse qui en voit de toutes les couleurs :-p), or comme il me convient parfaitement ainsi, c'est réglé! Donc génant pour les petites mamys qui passeraient de 0 à 97%, puis 20, etc... sans même comprendre "quoi qui s'est passé".

Avant ce contrôle, j'avais pensé à un slider vertical le long du menu, ta proposition m'aurait sans doute convenu (sauf que çà serait déjà effectif ;))

Concernant ton "Set AliasForm = Nothing", peux-tu m'expliquer à quoi il sert?
Petit conseil perso : "TagAppelant" est unique, mieux vaut donc sortir de la boucle FOR, pour éviter de chercher inutilement les autres formes du même Tag ;)

(...)
                SetLayeredWindowAttributes AliasForm.hWnd, &HFF00FF, (255 - CoefTransparence), LWA_ALPHA Or LWA_COLORKEY
                DoEvents
                Exit For
        End Select
    Next


~"LWA_ALPHA Or LWA_COLORKEY"
Je vais essayer ta procédure (le rendu y compris), mais je ne saisi pas le OR.
tu veux dire qu'à ma manière, 2 évenements se produise au click?
(il "ré-invisibilise" la couleur, puis applique la transparence? ton "LWA_ALPHA Or LWA_COLORKEY" n'est-il pas égal à mon "&H3" ?)

J'essai tout çà plus tard et je post ;)

3- sauf erreur de ma part, le manifest contient la référence du nom du MWCommoncontrols, l'exe contient l'API appelant Comctl32.dll, qui elle, vérifie le nom de l'exe dans le fichier manifest... :-$
Si boucle bouclée, alors les contrôles sont reconnus par le thême XP
(on ne peut pas lier "Comctl32.dll" comme référence à un projet)

Merci de tes conseils, je te tiens au courant, et n'hésite pas à me signaler tout bug, amélioration, etc....
(cf bugs 2) et 3) "Historique de cette source" si tu veux ;))

Je post ce soir
PCPT

Commentaire de ldx le 10/03/2005 22:02:12

bonsoir

merci pour les infos

Effectivement et personnellement j'utilise un slider vertical pour la transparence dans mes programmes.

Les valeurs sont effectivement sauvegardées dans une BD toute simple puis dans un fichier options quand on quitte le prog (J'ai actuellement 12 progs qui fonctionnent individuellement tout en communiquant avec les autres. Ex. : Je n'ai qu'une barre de bouton (prog)  pour l'ensemble des progs.... d'où la nécessité de conserver les valeurs)

Suite à ton message, j'ai reessayé ton instruction avec &H3. J'avais raté quelque chose. Le &H3 cumule bien le LWA_ALPHA et LWA_COLORKEY. Excuse Me !

On dit toujours que la science c'est d'abord l'expérimentation. C'est pour avoir vu pas mal d'API fonctionner avec des "OR" que j' eu l'idée de l'appliquer à cet API (Setlayered...) et cela a marché => ne me demande donc pas le pourquoi. (je ne connaissais pas le &H3)

Quand au manifest, j'en avais entendu parler au hasard des ... Mais jamais je ne l'avais utilisé pour un prog tournant sous XP. quel en est son intérêt ? (si tu as le temps de me brieffer)

Pendant que j'y pense, j'ai testé l'animation à l'ouverture d'un form généré. C'est cool ! Je n'ai eu qu'à augmenter (retarder) la valeur "150". Je l'ai fait passer à 350. Sinon l'effet était trop rapide, et pour ne pas dire génant - Cela me donnait plus l'impression d'un PC qui rame et a du mal à se lancer et à présenter un form, que celui d'un fondu tel que tu le souhaitais (c'est vrai qu'à l'inverse de chez toi, si je t'ai bien suivi, tout était réuni pour la rapidité : cpu 2.8 Mhz HT, ram 1Mo, CGraphique  9600 128 Mo ram.)

à te lire

Commentaire de PCPT le 11/03/2005 07:53:42 administrateur CS

Salut,
bon, donc après test de ton "OR", l'effet est le même, à cette différence : la consommation de ressources.
ton OR : 96% CPU pendant le SCROLL, contre 64% avec mon "&H3" :-p (en faisant le barbare quand même ;)...)

Pour le .manifest, cf ci-dessus (5ème post), Saros m'avait déjà demandé.

Pour l'effet d'ouverture de la fenêtre, j'avais fait les tests en "400", mais comme j'arrête pas de créer des exe pour tester sur mon 2e poste (avec carte graphique), j'avais laissé en 150. Toujours est-il que je suis content de savoir que çà fonctionne au moins sur ton PC... je ne le mettrais pas, tout le monde n'a pas ta config.. (quoi que, 1Mo de RAM, çà doit pas être évident... :-D [non, mais les effets graphiques, il faut un minimum, donc pour la carte. ton Go de RAM y est pour peu])

Bon, donc finalement, tu m'as conseillé ce rendu alpha en direct, donc je l'ai mis, mais avec la gestion du %age actuel, + la position du point dans le ALPHA_SCROLL, et en bloquant toujours à 80%.
Je n'ai pas mis la source à jour, mais voici les modifs :
(ps : j'ai déclaré les variables utilisées plus d'une fois, dans les déclarations générales des forms concernées)

-->FORM_SKIN [Général]
Public AlphaTranspPercActuel As Integer

-->MOD_LOADER [Function NouvelleInstanceSkin(...)]
FORM_GENEREE.AlphaTranspPercActuel = 0

-->MOD_ACTIONS_FORM [Simule_Ctrl_MouseUp]
'à l'appel du menu (Buttonb = 2 & Indexi = 13)
FORM_MENU_SKIN.LBL_MENU(6).Caption = "     " & AliasForm.AlphaTranspPercActuel & "% de transparence"
FORM_MENU_SKIN.ALPHA_SCROLL.Value = AliasForm.AlphaTranspPercActuel
FORM_MENU_SKIN.TagAppelant = AliasForm.Tag

-->FORM_MENU_SKIN [General]
Public TagAppelant As String
Dim CoefTransparence As Byte
Dim AliasForm As Form

-->FORM_MENU_SKIN [LBL_MENU_Click]
Case 6:  'rien à faire

-->FORM_MENU_SKIN [ALPHA_SCROLL_SCROLL]
'cette partie modifiée sous le conseil de LDX
    If ((ALPHA_SCROLL.Value > 80) Or (ALPHA_SCROLL.Value < 1)) Then ALPHA_SCROLL.Value = 0
    LBL_MENU(6).Caption = "     " & CByte(ALPHA_SCROLL.Value) & "% de transparence"
    
    Select Case ALPHA_SCROLL.Value
        Case Is >= 80
            CoefTransparence = 255      'Transparence maximale
            
        Case Is < 1
            CoefTransparence = 0        'opacité maximale
            
        Case Else
            CoefTransparence = CByte(ALPHA_SCROLL.Value * 2.55)
            
    End Select
    
    For Each AliasForm In Forms
        Select Case AliasForm.Tag
            Case TagAppelant
                Call SetLayeredWindowAttributes(AliasForm.hWnd, &HFF00FF, (255 - CoefTransparence), &H3)
                DoEvents
                Exit For
        End Select
    Next

-->FORM_MENU_SKIN
'ajout :
Private Sub ALPHA_SCROLL_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

    If Button <> 1 Then Exit Sub
    
    For Each AliasForm In Forms
        Select Case AliasForm.Tag
            Case TagAppelant
                AliasForm.AlphaTranspPercActuel = CByte(ALPHA_SCROLL.Value)
                Exit For
        End Select
    Next
End Sub


voilà, je crois qu'on a fait le tour, pour le moment du moins ;)
à te lire, ainsi qu'à tous vous lire ;)
(page affichée plus de 100 fois par jour, dommage d'avoir si peu de retour...)

PCPT

Commentaire de ldx le 11/03/2005 12:36:19

bonjour

Merci pour le message. Je voulais dire 1Go Ram et non 1Mo

2 choses :

J'avais oublié de répondre ...
Set alpha... = nothing => Libération place en mémoire.

Il semble que les variables "collection, objet tel que form, control, ..., pointeur vers" sont en quelque sorte désactivées, inaccesibles, à la sortie d'une proc mais ne libèrent pas réellement la place en mémoire.

Tu as le même effet lorsque tu quittes un prog. Et même un "END" ne libère pas la place de ces "objets" ... L'instruction à appliquer est :

    dim EltEnCours as form

    For Each EltEnCours In Forms
        Unload EltEnCours
        Set EltEnCours = Nothing
    Next
    
    End

   ...

Ce n'est pas de moi (je ne suis pas assez calé)

Je suis sensible à l'occupation de la mémoire depuis que, chez un client, des essais répétitifs avec sortie  d'un de mes programme avait fini par planter le poste client (En réseau avec d'autres applic. tournant)


rendre "Null" tout pointeur, variable de type objet, ...,
chaque fois que l'on en avait plus besoin a résolu le problème chez le client. L'applic sortait "proprement"

le "LWA_ALPHA OR LWA_COLORKEY"  ou  "&H3" ?  :

C'est kifkif bouricot ! du pareil au même !

Que se passe-t'il avec le "OR" ? une opération binaire entre les 2 valeurs

LWA_ALPHA     =>   Hexa : 1         Binaire :  0001
LWA_COLOR... =>   Hexa : 2         Binaire :  0010

Rappel : "OR" compare 2 éléments, bit par bit. S'ils sont indentiques => 0 sinon => 1

Ici :   0001
         0010
        --------
         0011   en binaire ce qui donne ...  3 en hexa

cqfd

Le temps CPU ? la différence vient donc probablement du fait que dans ma proposition il calculait à chaque passage dans ALPHA_SCROLL_SCROLL la valeur, alors que tu ne le faisais pas avec la valeur "&H3"  => je prend ta propo.

Ca fait ben longtemps que je n'avais fait du binaire. Tout cela ne me rajeunit pas...


... et en bloquant toujours à 80% :

Je ne connais pas tes motifs pour avoir bloqué à 80 %. Mais, il m'a semblé qu'il y avait eu une petite confusion dans l'écriture initiale de ton instruction. Il m'a paru que ce que tu saisissais dans ton menu n'était pas un coef de transparence mais un coef d'opacité  (sans t'en rendre compte d'ailleurs). J'avais rencontré, en son temps, la formule que tu avais employé pour le calcul . Et j'avais du la modifier pour qu'elle traduise bien un coef de transparence. C'est pour cela qu'ici, à travers ma proposition,  je suis monté à 99. J'aurais pu mettre 100 sans problème (je l'ai testé). Simplement la souris n'est pas assez précise, et je ne générais cette valeur qu'aléatoirement ...

Ouf ! je n'ai jamais autant écrit sur VB. C'est dire que ton programme est intéressant.

Je suis d'accord avec toi sur le fait qu'il est dommage que ton source n'attire pas plus de commentaire. Mais cela réside peut-être dans le "Que m'apporte ce prog ?"
Je vais donner ici mon avis personnel:

Form particulière au gré des fantasmes du concepteur...
Si je ne me plonge pas dans le prog, je peux penser que tu as "dessiné" plusieurs types de form sur lesquels tu as appliqué une transparence => C'est connu ! il y a plusieurs exemples du même acabit.

OR, CE QUE TU APPORTES C'EST LA CONSTRUCTION "DYNAMIQUE" MORCEAU PAR MORCEAU DE FORMS PARTICULIERES et ça ce n'est pas courant !
Là tu m'apportes une solution répercutable dans mes programmes.

La Transparence ? TU DONNES UN BON EXEMPLE A DEUX NIVEAUX : SUPPRESSION D'UNE COULEUR ET OPACIFICATION D'UN FORM, D'UTILISATION HYPER RAPIDE. Beaucoup plus rapide que l'utilisation du Combine région... ce n'est pas courant.

TU TRANSPOSES UN OUTIL (slide rotatif) trouvé sur VB DANS UNE APPLIC. Pour celui qui se poserait la question sur l'utilisation de ce slide (source 6603) tu fournis une réponse ... qui me titille pour l'utilisation dans mes progs

Ce qui manque peut-être dans ton applic, c'est la présence de contrôles utilisables (si tu ne l'as déjà vu, visualise  vbfrance_source_19387_CONTROLES TRANSPARENTS_par RenField) qui donneraient l'aspect d'une vraie application et non pas d'un essai ou exemple, et donnerait envie de se pencher plus ...

Je n'ai fait qu'exprimer mon sentiment. Ton prog m'apporte et je te remercie d'en avoir déposé le source.


Portes-toi bien, ainsi que tous les lecteurs éventuels de ce commentaire, et à te lire...


Commentaire de ldx le 11/03/2005 12:42:57

A la relecture de tout l'ensemble, tu es un peu responsable du manque de commentaire. Tu ne t'es pas bien vendu ! "Ta description de la source" n'est pas encourageante

Commentaire de PCPT le 11/03/2005 15:50:18 administrateur CS

Et voila, encore une mise à jour ;)
LDX,
j'ai inséré le "Set ...", mais je reste dubitatif quant au réel intérêt. "SKIN MAC" à l'ouverture me prenait 5Mo de RAM. Elle n'en prend plus que 3. Moins de ressources, donc j'applique et abdique, (cf MSDN qui conseille d'utiliser aussi Set Object = Nothing), mais çà ne change rien en fermeture (3Mo relachés, 5Mo sans le SET).

Houla oui, en binaire, la dernière fois c'était.... pfiouuu, pour calculer les plages d'adresses réseau afin d'obtenir la meilleure passerelle, c'est pas récent non plus -_-, cela dit, j'avais même pas fait le rapprochement, pour te dire...

Pour les "80%", au dessus, çà devient trop transparent et inutile. La fameuse petite mamy qui arrive à 97%, un petit coup de frayeur, elle quitte le menu, ne retrouve pas sa forme (ni celle d'antan....), elle redémarre son nouvel ordi flambant neuf, se retrouve avec un message "Is Already Running" parce qu'elle aura quitté le programme, mais que cette fenêtre aura empêché la fermeture complète, et conclusion, j'ai à payer ses frais de Pace-Maker ...
Et pour la "confusion", je ne crois pas m'être trompé : je choisi "20% DE TRANSPARENCE", pas "20% D'OPACITE" ou "20% VISIBLE". donc 255 = 0% de transparence, 20% de transparence = 255-(20/100*255)
Je vois pas de confusion... j'applique le %AGE DE TRANSPARENCE choisi.

Pour ton analyse "officielle", je te remercie. En effet, je me suis mal vendu. Je viens de mettre à jour un peu la description (par rapport à l'explication existante dans MAJ), et changer de rubrique, on verra.

Pour les contrôles de Rey (RenField), je les avais déjà vu, mais d'une part, je but de ce programme est de Skinner SON appli. Or si je met les contrôles de Rey, ce n'est plus une skin que je fais, mais juste une appli, ce qui n'est pas le but (bon, on verra dans SKINS V2 si la demande se présente).
Et pour ces contrôles en particuliers, toujours sur une configuration graphique "merdique", l'effet prend près de 2 secondes, impensable (entre le temps de "fenêtre affichée", et "contrôles transparents).
(Mais le rendu du SCROLLBAR est pas mal)

Je développe une appli à coté, ou j'utilise un moyen totalement différent : RTB transparent, 1PIC blanche décorée, 1PIC contenant l'image à afficher, et IMGFOND reçoit le BLEND des 2 PICS, juste sous le RTB transparent. Temps d'execution : instantané, aucun scintillement, AlphaBlend de PIC1 réglable.

En tout cas, je suis content que ma source te plaise.
Profite tant qu'elle est libre de droits ;)
Merci pour ton enthousiasme et tes conseils !
Soon,
PCPT

Commentaire de PCPT le 03/04/2005 19:25:07 administrateur CS

n'hésitez pas à laisser des commentaires, je n'ai fait aucune modification pour le moment, alors tous à vos claviers ;)

PCPT

Commentaire de Saros le 03/04/2005 22:21:36

Dis... à ce stade je comprendrais si tu mettais ta source au moins niveau initié... au moins ^^

Commentaire de PCPT le 03/04/2005 23:01:52 administrateur CS

aidez moi à l'améliorer, et c'est promis, je mettrais la SKINS B2 en niveau initié ;)
sacagez-là, testez-là à fond, me dite pas qu'elle est sans défaut, si? :-p

et je n'ai toujours pas trouvé la solution pour les curseurs personnalisés non-colorés....

en l'attente
PCPT

Commentaire de PCPT le 29/05/2005 21:03:24 administrateur CS

Bonsoir à tous
si certains sont impatients, désolé mais je n'ai pas le temps d'avancer sur la B2 en ce moment. Mais soyez rassurés, j'y pense (à l'occasion -_-)

PCPT

Commentaire de PCPT le 03/06/2005 16:49:56 administrateur CS

thanks Nix (je suppose)...
PCPT

Commentaire de SupraDolph le 05/08/2005 13:40:39

Slt à tous, je parcourai un peu mes sources et je suis arrivé à ce lien :)
merci à LDX et PCPT de me citer sa fait toujours plaisir !
le prog a évoluer c'est très bien !
continue comme sa.
SupraDolph.

Commentaire de rachid_rachid le 02/09/2005 12:53:02

je vous donne 08/10 pour cette participation ... et bonne courage.

                                            Detective conan

Commentaire de P__ROMEO le 14/09/2005 05:25:27

9,5/10
0,5 en moin, pour tu sais quoi.
si non, ca aurai fait 10

BON TRAVAIL. j'attend la suite :)

Commentaire de PCPT le 14/09/2005 05:47:52 administrateur CS

bah non, j'sais pas pourquoi. (et je préfère pas me faire de fausses idées)
mais merci ;)
PCPT

Commentaire de BruNews le 14/09/2005 10:33:52 administrateur CS

LDX > une rectification:
"OR compare 2 éléments, bit par bit. S'ils sont indentiques => 0 sinon => 1"
La définition est celle du XOR, donc fausse malgré que l'exemple que tu donnes est juste.

OR donne 1 si au moins 1 des 2 bits est à 1.
0 OR 0 => 0
0 OR 1 => 1
1 OR 0 => 1
1 OR 1 => 1

Commentaire de PCPT le 17/06/2006 12:16:44 administrateur CS

nouvelle version disponible :
http://www.vbfrance.com/codes/SKIN-B2-OU-PRESQUE-MODIFIEZ-ESTHETIQUE-VOS-APPLICATIONS_38138.aspx

niveau 2 pour faire plaisir à Saros ;)
++
PCPT   [AFCK]

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Skin, interface [ par bluelive ] Cherche personne pouvant me tuyauter sur la réalisation graphique du genre skin ou interface en Fireworks ou PS.Le but pour moi est de pouvoir réalise Interface Windows XP ? [ par Arnotic ] Bonjour, Je voudrai bien savoir comment on peut intégrer à notre logiciel l'interface de Windows XP et non pas l'ancienne (par défaut). En vous re pb entre Vers Xp et W2000 [ par AsselusBorealiss ] Bonjour a tousj'ai besoin d'aide pour un petit pb ( trop grand pour moi :) )apres creation d'une petite interface sous Xp (qui charge dans la barre test navigateur [ par patou06 ] Bonjourje veux afficher un menu en récupérant les infos du documentj'ai le code en javascript mais je n'arrive pas à le retranscrire en vb voici le co Changer entierement le skin de l'interface [ par veler ] Salut à tousJe voudrais avoir un skin perso pour mon application. Un skin qui remplace la couleur des scroolbar, des checkbox des radiobutton et tout interface joystick [ par manuscorpio ] bonjour j'ai récement récupéré un joystick pro "flybox" de BG systems. il est relié au pc (windows XP) par un convertisseur port série-usb, j'ai beso interface différente à l'execution qu'à la construction [ par lucio57 ] Bonjour, j'ai un petit souci avec mon prog. Je développe une appli sous Vb.net 2005, sur un système XP. Le projet a été commencé sous Vb.net 2003 sur Convertir un projet ACCESS en VB6 [ par vivi14 ] Bonjour,Je ne connais pas du tout VB6 car je debute, mais pour mon stage j'ai  fait un projet sous ACCESS utilisant de VBA permettant de gerer les fic Compilation sous vb 6.0 [ par dehono ] Bonjour, j ai un probleme avec VB6.0.j ai developpe une application mais lorsque je fais un make project1 j ai l impression qu il ne donne pas d  erre Déterminer quelle est la version de l'OS [ par pOusSinUs ] Bonjour, est-ce qu'il existe une fonction qui détermine quelle est la version de l'OS, par exemple faire la différence entre vista et XP, mais égale


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales