我把xpmenu改了一下,可以真正实现xp效果.(100分)

  • 主题发起人 主题发起人 www
  • 开始时间 开始时间
W

www

Unregistered / Unconfirmed
GUEST, unregistred user!
效果当然截获事件后是画出来的。
大家看看效果怎么样??有没有必要做下去??
http://www.tommstudio.com/newclub30/d_viewdownload.asp?type=kongjian&id=692
 
继续努力
 
不错,挺漂亮的,先下回来看看
 
谢谢,我喜欢哦
 
这是一个具有窗体dock功能的控件。带全部源码及例子。。
其实源码很小,仅几K而已。
http://www.tommstudio.com/newclub30/d_viewdownload.asp?type=kongjian&id=691
 
不错,支持
 
蛮好的
不过BUTTON的点击效果不是十分强烈
而且闪烁较厉害

Toolbar 象没改变嘛
ComboBox1的下拉框选中颜色能换成XP的效果么

 
闪烁 问题正是我想问大家的,有什么好的办法可以消除闪烁?
这个控件我只改了一部分,button,bitbtn,speedbtn,combobox,memo,richedit,edit
其他的都还没有动手。如果大家觉得有必要的话我会继续改其他的。

我觉得用这个控件的最大的好处就是可以使用delphi的标准控件,变成xp风格而不用改变
原有的程序.
 
D5下可以运行么?
我的运行出现错误提示:
Error reading XPmenu1.Dimlevel:property does not exist
 
增加对ip4000控件的支持,更改如下,Twwdbedit没问提,其他的画到里面去啦
procedure TXPMenu.InitItems(wForm: TWinControl; Enable, Update: boolean);
.....
....
if not (csDesigning in ComponentState) then
if
{$IFDEF VER6U}
((Comp is TCustomCombo) and (xcCombo in FXPControls)) or
((Comp is TCustomLabeledEdit) and (xcEdit in FXPControls)) or
((Comp.ClassName = 'TwwDBComboBox') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBLookupCombo') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBLookupComboDlg') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBDateTimePicker') and (xcCombo in FXPControls)) or //bysjw

{$ELSE}
((Comp is TCustomComboBox) and (xcCombo in FXPControls)) or
((Comp.ClassName = 'TwwDBComboBox') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBLookupCombo') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBLookupComboDlg') and (xcCombo in FXPControls)) or //bysjw
((Comp.ClassName = 'TwwDBDateTimePicker') and (xcCombo in FXPControls)) or //bysjw
{$ENDIF}
((Comp is TEdit) and (xcEdit in FXPControls)) or
((Comp.ClassName = 'TMaskEdit') and (xcMaskEdit in FXPControls)) or
((Comp.ClassName = 'TDBEdit') and (xcMaskEdit in FXPControls)) or
((Comp.ClassName = 'TwwDBEdit') and (xcMaskEdit in FXPControls)) or //bysjw
((Comp is TCustomMemo) and (xcMemo in FXPControls)) or
((Comp is TCustomRichEdit) and (xcRichEdit in FXPControls)) or

((Comp is TCustomCheckBox) and (xcCheckBox in FXPControls)) or
((Comp is TRadioButton) and (xcRadioButton in FXPControls)) or
((Comp.ClassName = 'TBitBtn') and (xcBitBtn in FXPControls)) or
((Comp.ClassName = 'TButton') and (xcButton in FXPControls)) or
((Comp.ClassName = 'TUpDown') and (xcButton in FXPControls)) or
((Comp is TSpeedButton) and (xcSpeedButton in FXPControls)) or
((Comp is TCustomPanel) and (xcPanel in FXPControls)) or
((Comp is TCustomGroupBox) and (xcGroupBox in FXPControls))
then
if ((TControl(Comp).Parent is TToolbar) and (xccToolBar in FXPContainers)) or
((TControl(Comp).Parent is TCoolbar) and (xccCoolbar in FXPContainers)) or
((TControl(Comp).Parent is TCustomPanel) and (xccPanel in FXPContainers)) or
((TControl(Comp).Parent is TControlbar) and (xccControlbar in FXPContainers)) or
((TControl(Comp).Parent is TScrollBox) and (xccScrollBox in FXPContainers)) or
((TControl(Comp).Parent is TCustomGroupBox) and (xccGroupBox in FXPContainers)) or
((TControl(Comp).Parent is TTabSheet) and (xccTabSheet in FXPContainers)) or
((TControl(Comp).Parent.ClassName = 'TdxTabSheet') and (xccTabSheet in FXPContainers)) or //DeveloperExpress
((TControl(Comp).Parent is TPageScroller) and (xccPageScroller in FXPContainers)) or
{$IFDEF VER5U}
((TControl(Comp).Parent is TCustomFrame) and (xccFrame in FXPContainers)) or
{$ENDIF}
((TControl(Comp).Parent.ClassName = 'TDBCtrlPanel') and (xccFrame in FXPContainers)) or

((TControl(Comp).Parent is TCustomForm) and (xccForm in FXPContainers))


then
 
我也试了试,不错:)如果能解决闪烁问题,会比较实用:)

另外你判断控件类型的那一大段代码是不是可以改一下方式?像现在这样的话,
要新支持一种控件都要去代码里改。是否可以换一个思路,比如针对属性?按
外观属性分类,这样支持的控件会比较多,扩展也比较容易:)
 
不像不像! 人家XP菜单的阴影是半透明的,你的是黑的。
 
可否在替换windowsproc过程时进行控件类型判断,直接将相关的绘制过程赋给windowproc
而不要统统在一个过程中去判断是什么类型的控件然后调用相应的绘制过程,这样一来闪烁
的问题可以解决,另外对新控件的支持改动只要添加新的绘制过程就行且结构比较清析。
另外,有没有办法可以实现在主Form中放置一个该控件而能实现所有Form都有该功能,不要
每个Form都入一个XPMENU太烦。
 
老大再加一个grid的滚动条吧,我就缺这个。
 
继续努力,双手双脚支持你!!!
 
系统升级中

非常抱歉,我们的服务器正在升级,请稍候再来访问.

谢谢您的支持.

:(
 
最新的XPMenu已做到这一点了,版本2.23
http://www.shagrouni.com/english/software/xpmenu.html
 
后退
顶部