⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9922.txt

📁 关于编程技术技巧的文章
💻 TXT
📖 第 1 页 / 共 4 页
字号:
(myChAR),20,MF_BYPOSITION);
mm6:=string(pchar(mychar));
for start3:=0 to listbox1.items.count-1 do
begin
mm4:=listbox1.Items[start3];
mm3:= mm4;
if (string(mm6)=trim(mm3)) then
begin
for start4:=21 to length(mm4) do
begin
mm5:=mm5+mm4[start4];
end;
end;
end;
if mm5<>'' then
modifymenu(mainmenu,start1,MF_BYPOSITION,
getmenuitemid(mainmenu,start1),pchar(mm5));
childmenu:=getsubmenu(MAINMENU,start1);
childnum:=getmenuitemcount(childmenu);
//汉化下拉菜单
for start2:=0 to childnum do
begin
mm5:='';
getmenustring(childmenu,start2,PCHAR
(mychar),20,MF_BYPOSITION);
mm6:=string(pchar(mychar));
for start3:=0 to listbox1.items.count-1 do
begin
mm4:=listbox1.Items[start3];
mm3:= mm4;
if (string(mm6)=trim(mm3)) then
begin
for start4:=21 to length(mm4) do
begin
mm5:=mm5+mm4[start4];
end;
end;
end;
if mm5<>'' then

modifymenu(childmenu,start2,MF_BYPOSITION,
getmenuitemid(childmenu,start2),pchar(mm5));
c2menu:=getsubmenu(childMENU,start2);
c2num:=getmenuitemcount(c2menu);
for start5:=0 to c2num do
begin
mm5:='';
getmenustring(c2menu,start5,PCHAR
(mychar),20,MF_BYPOSITION);
mm6:=string(pchar(mychar));
for start3:=0 to listbox1.items.count-1 do
begin

mm4:=listbox1.Items[start3];
mm3:= mm4;
if (string(mm6)=trim(mm3)) then
begin
for start4:=21 to length(mm4) do
begin
mm5:=mm5+mm4[start4];
end;
end;
end;
if mm5<>'' then
modifymenu(c2menu,start5,MF_BYPOSITION,
getmenuitemid(c2menu,start5),pchar(mm5));
END;

END;
end;

end;

procedure TForm1.FormActivate(Sender: TObject);
begin
//要汉化的系统的窗口标题
//mystr:='adobe photoshop';
mystr:='frontpage explorer';
mychar:=' ';
//装入已编辑好的中英文菜单对照文件
listbox1.items.loadfromfile('myfile2.txt');
end;

end.

***********************************************************
 
                     在PB应用中实现声音与动画

                  珠海远都软件有限公司   卞国斌

---- 在 设 计 应 用 程 序 过 程 中, 恰 当 地 应 用 电 脑 声 音 与 动
画 技 术, 可 以 为 用 户 提 供 更 加 直 观、友 好、 引 人 注 目 的 
操 作 界 面。 下 面 笔 者 介 绍 一 下 在PowerBuild 应 用 中 实 现 声 
音 与 动 画 的 一 种 简 便 方 法: 

1.作 为 举 例, 创 建 一 个MDI 风 格 的 窗 口w_audani。 在 这 个 窗 
口 上 放 置 一 个 含 声 音、 动 画 两 个 带 图 标 的 菜 单 项 的 菜 
单m_audani, 一 个 图 象 框p_1。 整 个 窗 口 的 外 观 如 下:  

2.制 备 声 音 和 图 象 文 件。 本 例 中 选 用 了 一 个adu.wav 的 声 
音 文 件 和 四 个ani1.bmp、ani2.bmp 、ani3.bmp、ani4.bmp 用 于 动 画 
素 材 的 分 离 图 象 文 件。 

3.定 义 程 序 编 制 中 要 用 到 的 变 量: (1) 定 义 一 个 整 型 实 
例 变 量, 用 作 图 象 计 数 integer picturenub  (2) 定 义 一 个 外 
部 函 数, 使 在PowerBuild 编 程 中 可 以 调 用Windows  32-bit API 声 
音 播 放 函 数 

function boolean sndplaysounda
(string soundname, uint flags) &
library "winmm.dll"

4.为 窗 口w_audani 编 制 事 件 处 理 程 序。 程 序 行 中// 后 的 为 
说 明 文 字。 
(1) 在 窗 口 的 打 开(Open) 事 件 下 输 入 程 序: 

//声音菜单项置选中属性
m_audani.m_1.m_aud.checked = true
//动画菜单项置选中属性
m_audani.m_1.m_ani.checked = true
//图象计数器置初值
picturenub = 1
//定义每隔半秒钟触发一次窗口的timer事件
timer(0.5,this)

---- (2) 在 窗 口 的 计 时 器(Timer) 事 件 下 输 入 程 序: 

---- // 如 果 声 音 菜 单 项 被 选 中, 则 调 用Windows 32-bit API 声 
音 播 放 函 数 播 放 声 音 文 件。 函 数 第 一 个 参 数 指 出 要 播 
放 的 声 音 文 件 名, 第 二 个 指 出 函 数 播 放 属 性, 属 性3 为 异 
步、 不 缺 省 

IF m_audani.m_1.m_aud.checked = true THEN
sndplaysounda("aud.wav",3)
END IF
//如果动画菜单项被选中,则播放动画
IF m_audani.m_1.m_ani.checked = true THEN
CHOOSE CASE picturenub
//当图象计数为1时,播放第1张图象
CASE 1
p_1.picturename = "ani1.bmp"
//当图象计数为2时,播放第2张图象
CASE 2
p_1.picturename = "ani2.bmp"
//当图象计数为3时,播放第3张图象
CASE 3
p_1.picturename = "ani3.bmp"
//当图象计数为4时,播放第4张图象
CASE 4
p_1.picturename = "ani4.bmp"
//恢复图象计数
picturenub = 0
END CHOOSE
//图象计数增1
picturenub ++
END IF

5.为 菜 单m_audani 编 制 事 件 处 理 程 序: 
(1) 在 菜 单 项 声 音(m_aud) 的 单 击(Clicked) 事 件 下 输 入 程 序: 
// 使 该 菜 单 项 的 选 中 属 性 反 转 起 到 开 关 的 作 用, 即 原 来
为 选 中 的 变 为 不 选 中, 未 选 中 的 则 现 在 变 成 选 中 
this.checked = not this.checked 
(2) 在 菜 单 项 动 画(m_ani) 的 单 击(Clicked) 事 件 下 输 入 程 序: 

//同样,使该菜单项的选中属性反转
this.checked = not this.checked

6.执 行 该 程 序 的 大 致 情 况 是: 
(1) 启 动 程 序 后, 自 动 打 开 以 上 图 示 的 窗 口; 
(2) 窗 口 计 时 器 按 每 半 秒 钟 触 发 一 次 事 件 处 理 程 序, 播 
放 声 音 和 图 象 文 件, 周 而 复 始 以 产 生 动 画 效 果; 
(3) 单 击 声 音 或 动 画 菜 单 项( 工 具 图 标), 可 以 控 制 声 音 
或 动 画 是 否 播 放。 

***********************************************************
***********************************************************

◆有问必答◆

063. 回答请mailto: yaozheng@kali.com.cn?subject=063
请问如何在VFP5中设数据库共享,也就是数据库在一台机中,修改
添加等都在此机中,其它多台计算机通过局域网共享数据库,调用
浏览数据,并且能够随时更新数据。 hwj@ynmail.com

064. 回答请mailto: yaozheng@kali.com.cn?subject=064
我现在很想学VC,有较强的Pascal功底,但不想转到DELPHI。可否
推荐几本适合初学者又有一定深度的VC教材。 xiezhe@163.net	

065. 回答请mailto: yaozheng@kali.com.cn?subject=065
请问有谁知道类似于Outlook Express中右上方邮件列表一样的控件
(可以整行选中,同时可以很方便地按某列排序)?烦请告知。非常
感谢。 phoenixtree@263.net

066. 回答请mailto: yaozheng@kali.com.cn?subject=066
小弟用VFP5作一个多条件的查询程式,如下:
      SELECT *;
        FROM CJK;
        WHERE       tf  $  CJK.编号; 
               and  zc  $  CJK.类别;
      ORDER BY CJK.编号;
      INTO TABLE cjk-find

(CJK 为数据库名,tf与zc为两条件变量)
在使用中,如果tf与zc为两条件变量有值时,查询结果正确,但如
果前面的查询条件输入时如果只输入了其中一项,因为另一项为空,
查询将为结果为空。 hwj@ynmail.com

如果您有什么疑难问题,就请把问题发往 yaozheng@kali.com.cn
主题为“提问”,我会把问题放在杂志上的,希望编程高手们能
不吝赐教,也希望这个栏目能成为大家交流的场所。

***********************************************************
***********************************************************

◆编者的话◆


本刊已加入【CHINA-EZL】中国电子杂志联盟
联盟主页地址 http://china-ezl.yeah.net

如果您觉得这份刊物还不错的话,欢迎把它介绍给您的朋友.
不知道您看了这期刊物有什么想法或者是意见,欢迎向我提出来.
本人感激不尽,我的联系方法如下:

E-mail:yaozheng@kali.com.cn
ICQ#:  43260473
Homepage:http://biancheng.126.com 【163】
          http://person.zj.cninfo.net/~yao 【169】
◆欢迎光临我的主页,一个集编程、软件、鬼故事为主的个人主页         
                                                

◆《编程技术》订、退方法:

请到本刊主页进行订退工作 http://person.zj.cninfo.net/~yao

投稿:向yaozheng@kali.com.cn发封邮件     主题:投稿
提问:向yaozheng@kali.com.cn发封邮件     主题:提问

**************************THE END**************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -