Une petite question a ceux qui utilise le ribbon de devexpress; j'ai fais une petite appli, uniquement avec le ribbon et elle prend 70Mo en mémoire ....
est ce que vous avez le meme probleme ?
Une petite question a ceux qui utilise le ribbon de devexpress; j'ai fais une petite appli, uniquement avec le ribbon et elle prend 70Mo en mémoire ....
est ce que vous avez le meme probleme ?
Quelle version des composants as-tu ?
Je suppose que tu utilises les skins avec le Ribbon.
A partir de la build 34, il est possible de ne plus charger les skins directement dans l'application mais de créer un fichier de ressources. Résultat des courses un bon coup d'amincissant au niveau de l'exécutable et de même en mémoire lors du lancement.
L'applicatif sur lequel je travaille actuellement emporte avec lui les ribbons, plus les différents joujoux offerts par devExpress. De plus, j'ai pas mal de classes et pas mal d'instances créées au démarrage. J'utilise encore les InstantObject donc gourmand pour le peu que les classes soient assez importantes. Je suis tout particulièrement l'état de la mémoire lors de l'exécution de l'applicatif. Pour te donner une idée, je tourne autour de 58Mo après lancement de l'applicatif.
Pour te donner une autre idée, avec 10 skins passés en ressource l'exécutable a diminué de plus de 6MO. En revanche, je n'ai pas relevé le gain en mémoire.
[Edit]
Je viens de faire un test avec l'un des exemples fournis avec les ribbons (RibbonNotepadDemo.exe). Après lancement, il occupe 14 Mo en mémoire.
Je suis en build 37
[/Edit]
Pensez à utiliser les tags dans le titre.
Avant de poser une question reportez-vous à la FAQ Delphi
Respectez les règles du forum.
En effet le problème vient peut etre de là, j ai toutes les skins dans mon exe.
Qu'elle est la méthode a suivre pour charger les skins en tant que ressource ?
Première étape avec le skin editor, tu ouvres un projet tu y ajoutes les skins désirés puis tu "Save as" en choisissant (*.skinres). Tu as alors un fichier de ressources indépendant.
Ensuite pour les ribbons il faut que la propriété ColorSchemeName ait la valeur userSkin:
- dxRibbon1.ColorSchemeName := 'userSkin';
De même pour les skinContoller si tu en utilises
- dxSkinController1.SkinName := 'userSkin';
Pour charger le skin au run-time
avec skinFileName = nom_de_ton_fichier.skinres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 skinName.Caption := 'Blue'; dxSkinsUserSkinLoadFromFile(skinFileName,skinName.Caption);
Tu peux aussi utiliser les stream avec la fonction:
function dxSkinsUserSkinLoadFromStream(AStream: TStream; const ASkinName: string = ''): Boolean;
Par ailleurs, tu peux également utiliser les skins au design time, pour cela il suffit de charger les packages (bpl) à moins que tu ne l'ais déjà fait.
Pensez à utiliser les tags dans le titre.
Avant de poser une question reportez-vous à la FAQ Delphi
Respectez les règles du forum.
Bonjour,
Super ces bouts de code.
Mais par hasard, connaissez vous un code pour lister les skins dans la ressource.
Merci
On progresse .....
oui c est possible regarde dans l unité de la fonction dxSkinsUserSkinLoadFromFile. (désolé je ne me souviens plus du nom)
Merci rvzip64,
Effectivement j'avais déjà rechercher dans l'unité en question donc voici la fonction qui liste les skin dispo dans une ressource skinres via un stream
Unité dxSkinsDefaultPainters
ou via un fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function dxSkinsUserSkinPopulateSkinNames(AStream: TStream; AList: TStrings): Boolean;
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function dxSkinsUserSkinPopulateSkinNames(const AFileName: string; AList: TStrings): Boolean; overload;
On progresse .....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager