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

Soyez le premier à donner votre avis sur cette source.

Vue 14 084 fois - Téléchargée 10 691 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

Messages postés
94
Date d'inscription
samedi 31 décembre 2005
Statut
Membre
Dernière intervention
26 juin 2013

je veux telecherger ce package
Messages postés
1
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
11 octobre 2006

Bonjour,
je suis tres interesse par le composant et j voulais l'elargir au combobox et scrollbar. As tu travaillé dessus?
Merci.
Messages postés
29
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
14 mars 2007

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.
Messages postés
3
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
17 décembre 2006

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
Messages postés
29
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
14 mars 2007

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.