2010-11-28 82 views
3

我剛剛收到了一些我的Delphi Pro 6應用程序的藝術家渲染圖像,我將用它來檢修它的外觀和感覺。問題是,我的應用程序與其他Delphi應用程序一樣,使用VCL自定義控件庫,並且這些控件通常不會改變其外觀和感覺。我也大量使用開源的JEDI JVCL庫。如何使用Delphi 6應用程序?

如果有人在那裏有一個一些小技巧,文章,網頁或任何談論從圖像努力reskin或檢修一個Delphi 6應用程序,我希望瞭解一下吧。這是一個擁有大量複雜TFrame後代的大型應用程序,並且大量使用JEDI VCL頁面控件,因此切換到全新的組件庫是不現實的。

我有一個想法,我還沒有嘗試過的是採取每個頂級窗體,並將其嵌套在另一個TForm中,方法是將當前窗體的Parent屬性更改爲新的TForm並設置當前窗體的AlphaBlend屬性,它是透明的。然後,我將新外殼或主TForm的背景設置爲包含新外觀的圖像,以便通過透明窗體進行流血。這種方法看起來有點笨拙,我擔心調整問題的大小,但這是我想知道是否可用的技術。

+0

不是要去工作,`WS_EX_LAYERED`只能用於頂級窗口。所以沒有兒童窗口的alpha混合(這是你會得到,如果你父母的形式與其他)。 – 2010-11-28 15:57:21

回答

3

使用換膚庫像VCLSKIN或DevExpress的皮膚。

3

幾乎所有皮膚引擎都有自己的皮膚編輯器。所以你只需要偷看一下(Chris Thornton沒有提到AlphaControls和DynamicSkinForm)。然後你需要給你的藝術家一個皮膚編輯器,並讓他用這個工具重新繪製他的皮膚。

0

這聽起來像您的UI和業務邏輯緊密耦合。它在RAD風格的開發項目中很常見。你會很好地打破這種耦合。許多UI architectural patterns之一將有助於這一點。我更喜歡MVP Passive View,因爲它將UI中的所有邏輯移入可以獨立測試的類中。根據您的應用程序的架構,其他模式可能更合適。

我會直言不諱。在現有的應用程序中解耦UI是一個單調乏味並且有時很困難的過程。如果您可以通過對其背後的邏輯進行最小限度的更改來自由更改用戶界面,就會帶來收益。

相關問題