[SOCPB 2006] Projet # 2-3 : Skinner fenêtre/gadgets/Menus

Sujets variés concernant le développement en PureBasic
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Bon dans l'ordre :D :

@ Good07 :

Merci pour tes encouragements ^^.

Pour la transparence de la fenêtre, je vais mettre un truc pour la choisir (sa sera pas très propre niveau code, mais sa viendra avec la gestion des events) dans la prochaine démo.

@ Dr. Dri :
Pour commencer c'est pas compatible avec windows 98. faut pas utiliser SetLayeredWindowAttributes de façon statique sinon y'a aucune chance pour que ca marche.
Je suis totalement désolé pour cette incompatibilité. Mon premier PC fu déjà sous Win XP, j'ai déjà beaucoup de mal avec l'API de Win XP mais alors là je suis totalement pommé sur les différences avec l'API non XP.

Donc même si sa me gène beaucoup, j'ai pas trop le choix pour le moment et je continu sur XP pour que lorsque le projet soit plus avancé, chercher se qui va pas sous 98 et donc tout les non XP. Même si sa paraît un peu sans gène (encore désolé) comme solution, je n'ai absolument pas les connaissances nécessaires pour jouer avec les APIs (je les découvre petit à petit, jusque là mais code en était dépourvu sauf cas particulier car des morceaux de codes venait des exemples) et encore moins celle d'une autre version qu'XP. Néanmoins ce code DOIT être compatible avec tout les Windows (enfin pas les 3.11 & Co ^^) donc je vais chercher une solution de remplacement pour les fonctions bugantes.
J'installerais Vmware avec 98 (si je trouve le CD) pour tester sous 98 sans en***** inutilement les potentiels testeurs.
le cadre vert de la fenêtre (supposé transparent ?) est visible
Comme tu le dit : il doit être transparent, donc il vas falloir que je cherche une solution pour rendre transparent cette fenêtre sous 98. Je précise qu'elle l'ai sous XP (même si sa ne résoud pas les problème :roll: ).
le bouton et la case à cocher ne changent pas d'apparence (quand on clique dessus...). la barre de progression n'apparaît pas non plus.
Idem, problème d'APIs non compatible (à résoudre qu'en j'en serais un peu plus de mes recherches)
Seul le bouton pour fermer la fenêtre fonctionne (il change quand il a le focus) mais là encore y'a un problème, c'est quand on relache le clic que la fenetre devrai se fermer.
Celà fait parti de mes prochains objectifs : gérer correctements les events. Juste au passage, les autres gadgets n'ont pas d'effets. J'ai posté rapidement une première démo (pour montrer que le projet revit, j'espère pour longtemps ^^ et aussi pour avoir les premiers avis même si le tiens rajoute du taf, mais c'est le rôle de tout programmeurs ^^ même amateur (je pense que mes 2 futurs années de DUT GEII devrais m'apporter des connaissances utiles pour la prog)).
Sinon chez moi ca rame pas mal
Je te crois sans problème, mon code est actuellement taillé à la hache ^^. J'essayerais quand il aura nettement avancé de passer à des outils comme la lime pour les détails ^^.
Plus sérieusement, il n'est absolument pas optimisé, je tenterais de le faire par la suite même si je ne suis pas un boss la dedans.
Je trouve ca abusé de la part de professionnels et je vous encourage à ne pas suivre la même voie ^^
Déjà notre projet est gratos, sa change directement la voie, plus qu'a dépasser leur qualité.


Bon peut-être une autre démo ce soir (toujours pas pour 98 dsl encore une fois :cry: ). Suivant ce que j'arrive à faire.

[Edit]

Sa ne sera pas pour ce soir, la gestion du spingadget déconne à mort et je peine sur le découpage de l'image de base pour les fenêtres de taille différente de l'image :evil:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Je suis ton projet avec attention. Continue comme ca... mais pense aux différentes versions de Windows :)
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Progi1984 a écrit :mais pense aux différentes versions de Windows :)
C'est qui qui est prévu :wink: . Simple je n'ai pas encore le niveau pour trouver les différences d'apis entre les différentes versions de Windows et entre moins pour trouver des solutions de remplacement.

J'ai pas pu mettre en ligne une nouvelle démo (principalement pour le réglage de la transparence) car j'ai trouvé un gros bug : le spingadget que j'avais mis est figé :evil: .

Donc je fini avec mais redimensionnement d'image et je m'attaque à ce bug.
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Excusez de mon absence, je reprends le projet en route beaucoup de changement personnel en bref je suis au états unis maintenant donc j'ai pas trop avancé.

Je suis impressioné ou tu en ai arrivé, bravo Dorian. :10:

Donc si tu ai sur un truc en particulier tu peux me filer du boulot. et puis n'hésites pas à me contacter sur msn
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Pour info, la fonction de transparence (et le pack layer) n'a été créé qu'à partir de win 2000 donc 98 et 95 pas de transparence la seule méthode et de se créer la fonction soit même avec des screenshots...

Donc ça en vaut-il l'intéret de coder une mulititude de fonctions pour créer une fonction transprente qui mangera des ressources! et de plus les pcs qui sont resté sous 98 c souvent pour une question de performance, donc ça en vaut-il la peine?

Je me trompe peut-être, n'hésitez pas à critiquer ;)

(Il existe bien cette fonction : SetWindowLong_(WindowID(window), #GWL_EXSTYLE, #WS_EX_TRANSPARENT) mais dans le genre fonctionnel c pas ça)
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Je suis désolé, sa n'a pas avancé comme je l'espérais (manque de motivation par rapport à la masse de bouleau à faire, sais pas trop par où commencer sans mettre un bordel énorme dans mon code, ma classe en C# qui m'a pris un peu de temps, CSS ^^).

Donc voilà une nouvelle démo. (Toujours pas compatible avec 98, désolé Dr. Dri, j'ai installé un 98 et j'ai vu l'empleur des dégâts. Faudra que j'y trouve une solution ou que tu passe sous XP :lol: ).

Bon donc la seul nouveauté est : On peut enfin avoir une fenêtre qui n'a pas la même taille que l'image. D'ailleurs l'image à été réduite à son plus stricte minimum pour gagner ~290Ko dans le cas présent.

Par contre faudra un moyen pour stocker les paramètres de découpages qlq parts pour les skins différents (cf. Procédure ResizeWindowImage) ainsi qu'optimiser ma procédure si c'est faisable :oops: .

J'ai aussi réglé (de manière pas très propre mais sa marche ^^) un problèle qui était lié au redimensionnent (l'extérieur des arrondis du boutons et du progressbar ainsi que 70% du checkbox était noir).

J'ai remis un peu d'ordre dans les procedures (ainsi qu'une petite remise en forme car le code d'origine avait une inddentation très ... aléatoire ^^). Les procédures sont a nouveau dans un fichier séparé pour être plus facile à lire.

euh que dire de plus ? Si comment peut-on remplacer les fonctions de pure par les notres ?

Sinon n'ésitez pas à donner vos avis sur ce qu'il faut rajouter, changer, ce qui va pas, bref tout ^^.

@Gillou : Euh pour le partage des tâches, je sais pas trop comment on va s'organiser, il faudrait que tu regarde un peu le code et que l'on se mette d'accord :wink:

EDIT : j'oubliais, j'ai mis un SpinGadget pour régler la transparence. Par contre regardez pas son thread car c'est honteux de le faire de cette manière mais vu que les events Skin et Pure sont un peu en conflit j'ai fait comme sa ^^
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Salut à tous amis skinneur !

Moi j'aime bien skinner mes applications.
Je ne m'embete pas, je fais un fond sous photoshop, je place cela dans mon répertoire avec mon fichier de base d'application. Je définis les zone des boutons avc un petit logiciel perso qui me crer les lignes de codes suivant la position des boutons. Et le tour est joué !

Les fonctions importante : retaillage des gadget automatique, resize de la fenetre.

Le code est séparer entre lib perso et code, plus le logiciel de découpe d'image. Mais si des personnes sont vraiment intéressé je peux essayer de compiler tout cela avec un peu d'aide....

Vous rouverez içi un exemple de skin :
http://www.cpure.net/Prog.exe

a+
stef
Vive le temps libre !
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

En lancant l'exécutable, j'ai eu pas un problème mais un commentaire :
- je lance l'exé
- j'ai une bordure verte autour de la fenetre
- 1sec aprés, l'exé skinné se lance

Sinon bon boulot !

PS : j'adore le style de la fenetre :)
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Vous travaillez encore dessus ?

Car je m'attaque a votre projet un peu (en fait, j'ai un demi heure au boulot tous les jours de temps libre, alors autant m'occuper d'un projet utile), et je viens de finir le skin d'un bouton (ca marche parfaitement)...
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Je verrais ce type de systeme fonctionner avec GDI+ (puis ce que des gens bien attentionnés ont déjà maché le travail); comment faisiez vous avant?
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Bah c'est con que l'hébergeur est laché car tu aurais pu voir le code. Il faudrait que je le remette en ligne.

Alors c'est pas bien rapide pour les très grosses fenêtres (mais je ne suis pas un expert donc je me débrouille avec ce que je connais ^^ ) :
- Pour les régions, c'est de l'API
- Pour la gestions des gadgets, bah c'est une liste avec toutes (enfin presque) du gadget et si la souris est dessus sa fait un truc, si elle clique dessus sa renvoi un event ...
- Pour le redimensionnement des fenêtres et boutons (à partir des images de base) c'est fait avec les fonctions de découpe d'image de Pure (c'est ici que la rapidité prend un coup sévère car ma méthode est certainement très lourde)
- La transparence est reprise du code source d'origine donc je sais pas trop comment sa marche mais c'est de l'API.
- Il reste beaucoup d'image qui reste chargées en mémoire et là encore c'est pas top pour les perfs :/

Bref il nous faudrait quelqu'un des meilleurs que moi pour tout ce qui est optimisation :oops: .

Par contre dès que j'ai un peu de temps, j'irais voir cette histoire de GDI+. C'est plus rapide que du Pure ?

En tout cas la première approche que j'ai eu avec le GDI (sous C#.Net 2) n'était pas très concluente car l'affichage déconnais lors des réductions des fenêtres dans la barre et lors de leur réaffichage (tout les dessins en GDI avait disparu :evil: )
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Mon message est passé à la trappe ?
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

ouais, tous les membres de se forums se sont concerté pour t'ignorer è_é
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Progi1984 a écrit :Mon message est passé à la trappe ?
Euh oui dsl, je l'avais po vu.

Bah malheureusement j'ai pas eu trop le temps de m'y remettre (bien que le projet n'est pas abandonné :!: ) : Repris de l'IUT, la plus part du temps libre est le midi, donc sa m'aide pas vraiment (sachant qu'il me faut entre 1h30 et 2h pour faire l'allez-retour) et je n'ai pas encore de portable donc je peux pas le faire le midi, des DS tout les lundis, des prépa de TP à faire, des exo à faire ... Bref tout le bordel qui va avec l'IUT. Et pour tout achevé j'ai des cours de conduites à prendre et je ne suis pas là le week-end.

Bref c'est pas le top. J'aurais peut-être plus de temps à partir du lundi (1 semaine de vacance ^^).

Donc j'ai remit le zip en ligne : ici (c'est la première fois que je me sers de cette hébergeur donc je sais pas ce qu'il donne ^^).

Donc malgrès le nom du zip, c'est bien le code d'exemple avec la lib et les images.

Donc pour le moment je ne modifie rien (sauf peut-être à partir de lundi) et bien évidemment, toutes aides est accéptée :wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Utilise cet hébergeur là : http://www.penguinbyte.com/apps/pbwebstor/logon.php

Dédié à PB !
Répondre