谈谈VCL程序标准化 (0分)

  • 主题发起人 laozhongcheng
  • 开始时间
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
静态库(VanSTL)的话只需要参照里面的Demo就可以了
把下载后的压缩包解压缩到一个目录中
打开demo中的工程文件 直接编译
详细的使用说明要等到动态库(VanRTL)完成之后才提供
 
C

chemer

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi5可以使用吗?
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
hehe Delphi5能不能使用 我不太清楚 应该可以吧
不过最好是把controls.pas forms.pas dialogs.pas 三个文件中添加的代码
手工转到D5的源文件中,因为我修改的是D6的源代码,不清楚D6源码是不是和D5的代码
相同,不同的话强行替换可能会出问题。所以建议手工进行转移。
 

逍遥泿子

Unregistered / Unconfirmed
GUEST, unregistred user!
先保存哦
 
C

chemer

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi5的改动确实非常大。我直接TMainForm = class (TVanForm)
表面上看运行正常,任务栏、最小化、闪烁标题栏均正常。
但是VanDialogs.pas怎么都用不了,里边TFocusState,TOpenOptionEx在作怪,可能
Delphi5没有这些类。
所以现在Delphi5唯一的问题就是通用对话框的标题栏不能闪烁、通用对话框左侧的“
我的电脑”、“我的文档”等列表不能显示。

测试环境:Windows 2000 Professional + Delphi 5 Update Pack 1
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
在回答你的问题
1.我知道实际上不是,是由CreateWindow或CreateWindowEx来创建的。所以实际
上也是一个窗口,几乎所有的创建控件的操作都交给了CreateWindow和CreateWindowEx
这两个API,但是Win32懂得如何管理他自己直接创建的Dialog box,但是不会
管理VCL的dialog box(应该是modal form)。
2.TApplication是TComponent的一个继承类,实际上这个类只是众多窗体之间
交流的媒介而已,比如提示、异常等等和整个程序相关的东西都在TApplication中
处理,目的我想是为了方便吧。所以,我尽力保留了这个类。
3.这个不太清楚。但是VCL的切合更不好。通过Win32 API很轻易就制作出有两个
任务栏按钮的窗口的程序,但是VCL不行,如果利用Win32 API又用不了VCL提供的控件。

新版本 V2.0 Beta2 发布预告(可能17号)
这次加强了对模式对话框(包括message box)的处理
还有 chemer说的SystemMenu的Hint也加上了
加强了STL和RTL之间的整合
还有一些工作需要处理 所以预计在17号发布 请密切注意
bug可以直接发送给laozhongcheng@163.com 我会尽快回复
 
C

chemer

Unregistered / Unconfirmed
GUEST, unregistred user!
还是只能用于Delphi6吗,真希望在Delphi5中也可以正常使用,毕竟还有一大批DFW在用D5呀。
 
X

xwings

Unregistered / Unconfirmed
GUEST, unregistred user!
支持. 我顶... [:D][:D]
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢各位了
V2.0 beta2发布!
1.修正了在使用TApplication.MessageBox显示对话框和公共对话框时禁止活动
的窗体仍然可以进行操作的bug
2.删除了TUniqueArrayManager类(没有多大用处)
3.可以指定的窗体的物主,可以指定任意一个已经存在的Windows窗口作为
vftDialog和vftChild的物主(测试功能,但应该会保留,btw,可以指定Delphi的
主窗口当vftDialog和vtfChild的物主,vftDialog经过了测试,得到的结果正常,
但是好像没有程序如此设计,看起来很怪异,vftChild未经测试)。
4.修正了当窗体的WindowStyle属性为wsMinimized的时候,启动时不正常的bug
(注意显示窗体必须使用TApplication.Restore或TVanForm.Restore,否则显示会
不正常)
5.RTL和STL进行了整合,所有的参数设置在TVanAppManager里面
6.增加了TVanModalFormManager对模式对话框和message box进行管理
7.增加了SystemMenu的hint(注意是字符串资源,可以进行国际化)

VanRTL增加了条件编译,应该可以运用于D5(如果不行,请将错误信息e-mail给我,
谢谢),VanSTL可能需要重新进行修改,预计需要一天时间,
明天应该可以发布for D5的版本(V2.0 beta2.1)。
大家可以进行一下测试。功能都差不多都具备了。
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
注意,此版本不含VanDialogs.pas和相应的包文件,请使用V1.32替代。
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
刚刚装上了d5,但是没有Update Pack 2安装,所以想请大家帮个忙。
请大家帮忙看一下以下三个文件在Update Pack 2中有没有更新
controls.pas forms.pas dialogs.pas
如果有更新,请把最新的文件压缩后发给我,谢谢。
如果没有的话,我就会按照d5的原始版本中的上述三个文件进行修改。
 
K

kkyy

Unregistered / Unconfirmed
GUEST, unregistred user!
下载不了,速度慢,发个给俺们看看吧,kkyy.kkyy@163.com
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
已经更新了下载 注意:现在支持Delphi 5
D5的支持文件在vcl5目录中
Demo也已经经过修正
(原来的用于测试WindowState为wsMinimized的情况,忘了改回来了)
D6工作于Update Pack 2,D5工作于原始版本
如果安装了D5的Update Pack
而Update Pack修改了controls.pas forms.pas dialogs.pas三个文件 请不要使用
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
再次升级到V2.0 beta3
1.修正了不能使用ToolBar2000等控件的bug
由于以前的代码从AfterConstruction移植到Create,所以使用CreateNew的
控件将不加入VanFormManager,不受到VL的管理。最大可能保证了兼容性。
2.修正了使用VanRTL时异常处理不正常的bug
基本上等同于V2.0正式版了 同样不包含VanDialogs.pas
http://codecentral.borland.com/codecentral/ccWeb.exe/listing?id=18693

如果想获得D6的vandialogs.pas
从http://codecentral.borland.com/codecentral/ccWeb.exe/listing?id=18700下载
VanRTL 1.32
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
bug修正 停靠不正常的bug彻底解决(其实就是把要停靠的窗体的Parent设为接受的控件
即 Windows.SetParent ( Docking.Handle, AcceptControl.Handle)就可以了)
新版本等晚上测试完后就上传 敬请期待
 
L

laozhongcheng

Unregistered / Unconfirmed
GUEST, unregistred user!
VL V2.0beta3更新下载
1.彻底修正了停靠的bug,提供ProperDocking和修改过的ManualDock过程解决
VanRTL的停靠问题。在实现停靠完后一定要调用ProperDocking,这个过程内部调用了
Windows.SetParent,只需要提供Sender :TObject和Source : TDragDockObject
就可以了(OnDragDock事件中直接套进去OK)
2.修正了当使用Application.Handle作为对话框控件的物主时,窗口仍然可以
操作的bug,修正后的版本当对话框控件弹出时,当前活动的窗体将不可操作
3.修正了Delphi 5 VCL覆盖代码的部分问题
感谢各位的支持。
 
顶部