begin process at 2010 02 10 13:52:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :9 074 / 9 621

Auteur : GordoCabron

Ecrire un message privé
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

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

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 :)

 Sources du même auteur

Source avec Zip COMPRESSION HUFFMAN,LZW (UNITES AUTONOMES COMMENTEE)
Source avec Zip Source avec une capture CHANGEUR DE PAPIER PEINT ALEATOIRE (SYSTRAY ICON, CONFIG BAS...
Source avec Zip Source avec une capture SUIVI DE NUTRITION AVEC BASE D'ALIMENTS

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

Commentaires et avis

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 !!

Commentaire de SOUMIA le 15/03/2005 15:15:33

Salu ,

c'est Magnifique ,bravo ...

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+

Commentaire de tigrou19 le 21/03/2005 14:12:25

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

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

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

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

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

Commentaire de GordoCabron le 31/05/2005 21:11:14

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

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

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.

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.

Commentaire de benalioua1975 le 04/05/2008 11:13:20

je veux telecherger ce package

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,343 sec (3)

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