Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PACKAGE GESTION COMPLET DE SKIN (AVEC EDITEUR & EXEMPLE D'UTILISATION)


Information sur la source

Catégorie :Graphique Niveau : Expert Date de création : 15/03/2005 Date de mise à jour : 31/05/2005 16:13:58 Vu / téléchargé: 8 359 / 9 529

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
   J'en avait marre de toujours mettre en place le meme code a chaque fois que je vouslait faire une application un peu plus jolie que la moyenne, alors j'ai commencer a cree quelques composants. La je me suis un peu emballe et apres quelque nuit blanche j'ai deboucher sur un package complet (rapport a mon utilisation, on peu toujours rajouter!!!) de gestion de skin.

  Le concept de base, une skin=un fichier. Le fichier en question contient un descriptif des comosant visuelles present dans mon application avec les valeurs a leurs assignees. Je source contient un editeur pour ce type de fichier.

  Quand je cree un application, je cree une skin par defaut. Dans une form de l'application je cree un SkinChargeur qui sert justement a charger la skin pardefaut. Apres quoi je cree des composant skinable qui font reference a cette skin (cf application test).  Pour qu'une skin soit compatible il suffit qu'elle est le meme squelette.

   Je sais c pas super clair mais en regardant l'application de test ca devrait s'eclairer, sinon cous reste plus qu'a demander.



Merci pour votre temps ;)
 

Source

  • unit main;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, SkinChargeur, SkinButton, SkinPanel, SkinLabel, SkinCheck;
  • type
  • TForm1 = class(TForm)
  • SkinPanel1: TSkinPanel;
  • SkinButton1: TSkinButton;
  • SkinCheck1: TSkinCheck;
  • SkinLabel1: TSkinLabel;
  • SkinButton2: TSkinButton;
  • OpenDialog1: TOpenDialog;
  • SkinChargeur1: TSkinChargeur;
  • procedure SkinCheck1Change(Sender: TObject);
  • procedure SkinButton1Click(Sender: TObject);
  • procedure SkinButton2Click(Sender: TObject);
  • procedure FormCreate(Sender: TObject);
  • private
  • { Private declarations }
  • public
  • { Public declarations }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • //-------------------------------------------------------------------
  • procedure TForm1.SkinCheck1Change(Sender: TObject);
  • begin
  • // Activation / desactivation des autres composants
  • SkinButton1.Enabled:=not SkinCheck1.Etat;
  • SkinButton2.Enabled:=not SkinCheck1.Etat;
  • //changement du texte du label
  • if not SkinCheck1.Etat then
  • SkinLabel1.Caption:='Actif'
  • else
  • SkinLabel1.Caption:='Inactif';
  • end;
  • //-------------------------------------------------------------------
  • procedure TForm1.SkinButton1Click(Sender: TObject);
  • begin
  • // action du bouton 1 : fermer
  • Form1.close;
  • end;
  • //-------------------------------------------------------------------
  • procedure TForm1.SkinButton2Click(Sender: TObject);
  • begin
  • //action du bouton 2 : choix d'une autre skin
  • if OpenDialog1.Execute then
  • SkinChargeur1.CompatibleLoadFromFile(OpenDialog1.FileName);
  • end;
  • //-------------------------------------------------------------------
  • procedure TForm1.FormCreate(Sender: TObject);
  • begin
  • //au demarage changement de la couleur du texte
  • //n'affectera que la skin par default
  • SkinLabel1.Couleur:=clRed;
  • end;
  • //-------------------------------------------------------------------
  • end.
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SkinChargeur, SkinButton, SkinPanel, SkinLabel, SkinCheck;

type
  TForm1 = class(TForm)
    SkinPanel1: TSkinPanel;
    SkinButton1: TSkinButton;
    SkinCheck1: TSkinCheck;
    SkinLabel1: TSkinLabel;
    SkinButton2: TSkinButton;
    OpenDialog1: TOpenDialog;
    SkinChargeur1: TSkinChargeur;
    procedure SkinCheck1Change(Sender: TObject);
    procedure SkinButton1Click(Sender: TObject);
    procedure SkinButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
//-------------------------------------------------------------------
procedure TForm1.SkinCheck1Change(Sender: TObject);
begin
        // Activation / desactivation des autres composants
        SkinButton1.Enabled:=not SkinCheck1.Etat;
        SkinButton2.Enabled:=not SkinCheck1.Etat;

        //changement du texte du label
        if not SkinCheck1.Etat then
                SkinLabel1.Caption:='Actif'
        else
                SkinLabel1.Caption:='Inactif';
end;
//-------------------------------------------------------------------
procedure TForm1.SkinButton1Click(Sender: TObject);
begin
        // action du bouton 1 : fermer
        Form1.close;
end;
//-------------------------------------------------------------------
procedure TForm1.SkinButton2Click(Sender: TObject);
begin
        //action du bouton 2 : choix d'une autre skin
        if OpenDialog1.Execute then
                SkinChargeur1.CompatibleLoadFromFile(OpenDialog1.FileName);
end;
//-------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
        //au demarage changement de la couleur du texte
        //n'affectera que la skin par default
        SkinLabel1.Couleur:=clRed;
end;
//-------------------------------------------------------------------
end.

Conclusion

mise a jour : aucune idee (mais disons : bientot !!!)

bug : ca a l'air d'etre enfin stable mais bon la perfection ca n'existe pas.

truc a faire:
   - "SkinCanvasCopy.pas" c'est du bricolage provisoire, si vous jetez un oeil soyez comprehensif
   - Rajouter un composant type barre de defilement
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

21 mars 2005 12:46:07 :
Rajout d'un algorithme de compression (type LZW) sur la sauvegarde de skin (vers fichier skin et vers *.dfm).
31 mai 2005 16:00:49 :
- retrait de visualclx - ajout de SkinImageList, un TImageList dont le contenu depent de la skin.
31 mai 2005 16:13:58 :
Fichier en trop dans le zip, desole :)

Commentaires et avis

signaler à un administrateur
Commentaire de emmanuelgo le 15/03/2005 11:57:06

dans ce post : http://www.delphifr.com/code.aspx?ID=29293 , tu as dit :
bonjour,

emmanuelgo si t'es toujours interesé par l'interface du programme j'ai fait un package de gestion de skin  qui en reprend les grande lignes.

http://www.delphifr.com/code.aspx?ID=301212

a+

alors je viens jeter un oeil !

ben j'ai pas encore télécharger ni regarder...mais si ça marche (et je n'en doute pas...) c'est du beau boulot, bravo...
bon pour l'instant je ne préfére pas utiliser de composant supplémentaire, donc je me débrouille tout seul, avec les TImages, les transparences et tout ça....un peu usine à gaz delphi de ce point de vue là je trouve mais bon....
jespere bientot mettre en ligne une source avec une jolie interface !!
merci pour ton travail en tout cas !!

signaler à un administrateur
Commentaire de SOUMIA le 15/03/2005 15:15:33

Salu ,

c'est Magnifique ,bravo ...

signaler à un administrateur
Commentaire de GordoCabron le 15/03/2005 18:56:34

Salut

       Je comprends tres bien ton point de vu, je ne me sers quasi jamais de se que je programme. C'est juste pour le plaisir d'arriver a le faire, et c'est de loin plus amusant quand on le fait entierement par soit meme.

bonne prog, a+

signaler à un administrateur
Commentaire de tigrou19 le 21/03/2005 14:12:25

Je viens d'installé le packtage
Bravo super boulot Merci

signaler à un administrateur
Commentaire de GordoCabron le 23/03/2005 00:47:36

merci

si y'a un composant que t'aimerais voir dans le package y'a qu'a demande (dans la mesure du possible). Je suis en train de faire un composant barre de defilement pour pouvoir faire un mediaplayer perso.

bye

signaler à un administrateur
Commentaire de cincap le 31/05/2005 08:23:13

Bonjour,

J'ai Delphi 6 et à l'installation j'obtiens l'erreur

visualclx est manquant.

Merci

signaler à un administrateur
Commentaire de GordoCabron le 31/05/2005 16:05:29

Salut

Code mise a jour, plus besoin de visualclx, ajout d'un composant TImageList skinable, la liste d'image est conenue dans la skin.

bonne prog

signaler à un administrateur
Commentaire de cincap le 31/05/2005 20:47:45

L'installation réussie, mais en mettant le composant label, message d'erreur qui ne trouve pas le dcu ?

même chôse pour le test

Merci encore de vérifier je possède D6

signaler à un administrateur
Commentaire de GordoCabron le 31/05/2005 21:11:14

moi pareil D6, tu peux donner le message d'erreur exact stp.

signaler à un administrateur
Commentaire de kevino le 06/05/2006 09:28:42

bonjour, je n arrive pas  acreer mes propres (*.skn) est ce qu'il y a une applications qui les converti de (*.bmp) ou quoi?   Merci

signaler à un administrateur
Commentaire de GordoCabron le 06/05/2006 11:16:00

bonjour

   oui y'a un programme, dans le repertoire editeur, chaque fenetre doit avoir son panel (le fond de la fenetre) et par dessus les elements actifs. Tout les elements se charge a partir de bmp. J'ai laisse un exemplde dans le zip (repertoire Test9 ouvre les fichier skn avec l'editeur pour voir comment ils sont fait.

signaler à un administrateur
Commentaire de assadhouna le 11/10/2006 17:19:10

Bonjour,
je suis tres interesse par le composant et j voulais l'elargir au combobox et scrollbar. As tu travaillé dessus?
Merci.

signaler à un administrateur
Commentaire de benalioua1975 le 04/05/2008 11:13:20

je veux telecherger ce package

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.