全局界面控件VCLSkin使用手记及发现的一些问题(请大家一起来讨论) (300分)

  • 主题发起人 叮叮当当
  • 开始时间

叮叮当当

Unregistered / Unconfirmed
GUEST, unregistred user!
一直想找个好些的全局界面控件来用,以前找过一阵子,但用了几个都觉得不满意。最近浏览网站时发现了VCLSkin(别笑我落伍啊),用了一下感觉很不错,现成可用的界面皮肤也不乏优秀之品。但是当应用到自己的程序里,细细品味的时候终于发现了几个问题。下面提出来和大家一起交流一下,看看大家是不是也发现过,对这些问题是怎么想的,或者有没有处理的好方法。

其中1、2两条要眼尖的朋友才会发现,粗心的可能不会察觉到。

1. 窗体显现出来的时候先显示的是未Skin的界面,数百毫秒后才显示Skin之后的界面。
当窗体上控件较多时,这个问题可能会更突出。

2. 通过窗口右上角的最小化按钮最小化窗体时,标题栏会被未Skin的样式覆盖一下再淡入到任务栏。

3. 每当TRichEdit(或TMemo)有内容更新时,滚动条会不自然地闪动。
另外,当控件中的内容不需要滚动条时滚动条也会出现。

4. 会导致TStatusBar的OnDrawPannel事件无效,从而使自定义图标无法在状态栏控件上显示。

以上针对VCLSkin v2.45,暂时就发现这4条,若有新的发现再补充。
另外说说对VCLSkin比较满意的地方,也是很多同类控件不如它的地方:

1. 按钮、核选框、菜单等控件对鼠标点击的响应没有延迟,不会出现鼠标点得快、控件响应慢的问题。
2. 优秀的、现成的界面皮肤比较多,省去了用户的设计工作。

SUIPack 4我也用过,感觉不如VCLSkin,大家觉得呢?
 
[?][:)][:(!][:(][:D][:)]
 
提贴给分,可是恶意灌水是不给分的哦。[8D]

贴几张VCLSkin的PP界面图。
Image1.gif


Image2.gif


Image3.gif


Image6.gif


Image7.gif


Image8.gif


Image9.gif


Image10.gif
 
择优而用之,提倡!
XPMenu VCLSKIN之类的控件使用的确很是方便.VCLSKIN的滚动条好象是后绘上去的.效果不是很好.它本身就用了控件自绘!
 
我也用vclskin,第一个问题在设计的时候就把它激活,就没有程序开始执行时几百毫秒的延时问题了。

我还发现了一个bug,就是开启了vclskin后,历遍主菜单,根据要求设置主菜单子项的enable属性后,主界面的刷新非常的慢,慢的都不能忍受。

问题三:可以设置vclskin,让它不支持TMemo和TRichEdit,就可以解决问题。

不过我还是认为vclskin是目前为止最好的界面控件。
 
PageControl,如果有太多的页面,就会显示 < > 按钮,但是在按了之后,就不会再显示了.但是能按.按的时候会显示.
 
XPMenu VCLSKIN之类的控件使用的确很是方便.
这些小问题,不知道升级时能改不。
我把VCLSKIN用在DLL/COM封装的窗口中,总是退出时报错,去掉就好了。
 
同意楼上,在dll封装的窗口中有问题!
而且,我不知道它有没有办法支持第三方控件,或者怎样修改才能支持,我用infopower
 
To: mrzj

我是在设计期把VCLSkin的Active属性设成True的呀,第1个问题还是存在的。大概是因为窗体各控件首次Paint的时候VCLSkin才开始接管显示工作,所以未Skin的界面会先闪现一段时间。其实这个问题不难解决,可以这样:
procedure TForm1.FormCreate(Sender: TObject);
var
Left_BK: Integer;
begin
Left_BK := Left; // 备份窗体X坐标
Left := 0 - Width*2; // 使窗体在看不到的地方先显现出来
Show;
Application.ProcessMessages;
Left := Left_BK; // 恢复窗体X坐标,在正确的位置显示,
end; // 此时界面已经Skin过了。

你说的 历遍主菜单设置子菜单项的Enable属性会很慢 的问题我还没碰到,等会试试看。

>问题三:可以设置vclskin,让它不支持TMemo和TRichEdit,就可以解决问题。
确实不让它Skin这两种控件就没有问题了,但实际上并没有解决问题。

谢谢你的发言。
 
bini 的问题说得不是很清楚。
apw 和 vmao 的问题好像是VCLSkin的高级(或者特殊)应用了,不懂,看看有没有别的朋友能解决。
 
因为耗用的资源多了,自然就慢了
 
我一直在用VclSkin,总体上它还是很不错的,比较其他界面控件,简单易用,占资源少。
当然也有不少缺点,比如说滚动条,箭头明显看的出画的不够精细,滚动时刷新不好,可以看到重画的过程;StatusBar右下角的Resize标记被消掉了。
希望在在后继版本中可以看到这些bug被修正。
 
谢谢easykey!你说的这些问题基本上我都碰到了。
 
请教一个问题,如何把窗口标题放在确定的位置?
 
我发现其提供的一皮肤,表单最大化时最大化按钮显示不正常,贼大!
 
To: pass-1
可能是该皮肤没做好。
 
还有一个问题,就是动态改变label.caption的内容时,label会变成本身的界面颜色,不是skin的颜色。
 
楼上的错也!错也!
最强大界面组件是BusinessSkinForm,组件数目最多,功能最齐全,其次分别是
Raize
ThemeEngine
VCLSkin
 
但skin是最方便的界面控件,只要放一个控件整个程序的界面都改掉了。
 
To: hgf
我试过了,你说的这个问题不会发生。不论Label的Transparent置True与否,在运行期更改TLabel的Caption都能正确显示底色。也许你用的VCLSkin版本比较低?
 

Similar threads

D
回复
0
查看
750
DelphiTeacher的专栏
D
D
回复
0
查看
752
DelphiTeacher的专栏
D
D
回复
0
查看
600
DelphiTeacher的专栏
D
顶部