扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:陈明 来源:yesky 2007年11月1日
关键字:
Word_FileStream:=TFileStream.Create(Target_Name,fmOpenWrite or fmCreate); Word_FileStream.Position:=0; |
保存到数据库的Image字段:
TBlobField(AdoQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream); |
从数据库读取文件到本地硬盘:
TBlobField(ADOQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream); |
释放文件流:
Word_FileStream.Free; |
六、全局消息的定义
因为word和Delphi程序是两个软件,相互之间通讯比较麻烦,所以使用全局消息的方法进行。全局消息必须首先注册,Windows返回系统空闲的消息号,当注册的消息相同时,Windows系统返回同一个值,这样就保证了使用这个消息号在两个程序之间通讯。
定义消息的办法:
szMessageString: pchar = 'XIDIAN_11_Stone'; FMyJoinMessage := RegisterWindowMessage(szMessageString); |
发送消息的方法:
SendMessage(对方句柄,消息,消息附带短变量,消息附带长变量)
七、Delphi程序接收消息的方法
Delphi接收消息有两种,一是重载特定消息,二是重载WndProc函数,在里面选择相应消息进行处理。
方法一,每次只能处理一条消息,而法二能够同时处理多条消息。
对于法二,声明如下:
procedure WndProc(var Message: TMessage);override |
必须注意,使用时需要在处理完自己消息处理后继承WndProc(Message)函数,否则系统会崩溃!
八、Word中Combo对话框的动态生成以及Change事件
建立类模块Combohander,在内部定义事件
Public WithEvents ComboBoxEvent As Office.CommandBarComboBox |
定义Combo控件产生事件的模块
Dim ctlComboBoxHandler As New ComboBoxHandler |
产生Combo对话框
Set Cbo_ChooseDoc = CommandBars("添加的菜单").Controls.Add(Type:=msoControlComboBox, Temporary:=True) |
进行文件句柄设置,以产生Combo_Change事件
Set ctlComboBoxHandler.ComboBoxEvent = Cbo_ChooseDoc |
产生事件后,在类模块Combohander内选择ComboBoxEvent的Change事件,即可书写事件代码
Sub ComboBoxEvent_Change(ByVal Ctrl As Office.CommandBarComboBox) |
九、一些Word的事件
VBA代码中处理的Word事件有:Document_Close
Application事件中需要处理的有:DocumentBeforeClose,DocumentChange。
Document_Close:事件在文档关闭时产生事件
DocumentBeforeClose:在文档被关闭以前先于Word判断文档是否保存,给出相应提示并进行相应处理。
DocumentChange:文档切换,在文档从自己修改的文稿和其他人修改的文稿之间切换产生事件,主要处理设置文档权限等。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者