Package gestion complet de skin (avec editeur & exemple d'utilisation)

Soyez le premier à donner votre avis sur cette source.

Vue 14 711 fois - Téléchargée 10 754 fois

Description

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 / Exemple :


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

Codes Sources

A voir également

Ajouter un commentaire Commentaires
benalioua1975 Messages postés 94 Date d'inscription samedi 31 décembre 2005 Statut Membre Dernière intervention 26 juin 2013
4 mai 2008 à 11:13
je veux telecherger ce package
assadhouna Messages postés 1 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 11 octobre 2006
11 oct. 2006 à 17:19
Bonjour,
je suis tres interesse par le composant et j voulais l'elargir au combobox et scrollbar. As tu travaillé dessus?
Merci.
GordoCabron Messages postés 29 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 14 mars 2007
6 mai 2006 à 11:16
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.
cs_kevino Messages postés 3 Date d'inscription jeudi 8 septembre 2005 Statut Membre Dernière intervention 17 décembre 2006
6 mai 2006 à 09:28
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
GordoCabron Messages postés 29 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 14 mars 2007
31 mai 2005 à 21:11
moi pareil D6, tu peux donner le message d'erreur exact stp.
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.