2010-11-28 36 views
3

Je viens de recevoir des images d'artistes de mon application Delphi Pro 6 que je vais utiliser pour en améliorer l'aspect et la convivialité. Le problème est bien sûr que mon application, comme n'importe quelle autre application Delphi, utilise la bibliothèque de contrôle personnalisé VCL et que ces contrôles se peignent eux-mêmes et d'une manière qui souvent n'est pas propice à modifier leur apparence. J'utilise aussi beaucoup la librairie JEDCL open source JEDI. Si quelqu'un a quelques conseils, articles, pages web ou tout ce qui parle de travailler à partir d'une image pour reskin ou réviser une application Delphi 6, j'apprécierais savoir à ce sujet. C'est une grande application avec des tonnes de descendants TFrame complexes et une utilisation intensive du contrôle de page VCL JEDI, donc passer à une nouvelle bibliothèque de composants n'est pas pratique. Une idée que je n'avais pas encore essayée est de prendre chaque forme de niveau supérieur et de l'imbriquer dans un autre TForm en changeant la propriété Parent du formulaire courant au nouveau TForm et en définissant la propriété AlphaBlend du formulaire courant afin que c'est transparent. Ensuite, je définirais l'arrière-plan du nouveau shell ou de l'hôte TForm sur une image contenant le nouveau look et la nouvelle sensation de manière à ce que le fond transparent soit filtré. Cette approche semble un peu compliquée et je m'inquiète du redimensionnement des problèmes, mais c'est le genre de technique que je me demande si elle est utilisable.Comment reskin une application Delphi 6?

+0

Ne fonctionne pas, 'WS_EX_LAYERED' ne peut être utilisé que pour les fenêtres de niveau supérieur. Donc, pas de mélange alpha pour les fenêtres enfants (ce qui est ce que vous obtiendrez si vous parent un formulaire avec un autre). –

+0

Merci pour le conseil Sertac. –

Répondre

3

Utilisez une bibliothèque de skinning comme les habillages VCLSkin ou DevExpress.

3

Presque tous les moteurs de la peau ont leurs propres éditeurs de peau. Il suffit donc d'en jeter un coup d'œil (Chris Thornton n'a pas mentionné AlphaControls et DynamicSkinForm). Ensuite, vous devez donner à votre artiste cet éditeur de peau, et lui demander de redessiner sa peau avec cet outil.

0

Il semble que votre interface utilisateur et votre logique métier soient étroitement couplées. C'est assez commun parmi les projets de développement de style RAD. Vous feriez bien de rompre ce couplage. Un des nombreux UI architectural patterns aidera avec ceci. Je préfère MVP Passive View autant que possible car il déplace toute la logique hors de l'interface utilisateur dans des classes qui peuvent être testées isolément. L'un des autres modèles peut être plus approprié en fonction de l'architecture de votre application.

Je serai franc. Découpler l'interface utilisateur dans une application existante est un processus fastidieux et parfois difficile. La récompense vient quand vous pouvez librement changer l'interface utilisateur avec des changements minimes à la logique derrière elle.