📄 9926.txt
字号:
---- 下 面 的 小 程 序 可 实 现 图 标 文 件 到 位 图 文件 的 转 换,
它 能 够 把 所 给 定 的 图 标 文 件 转 换为 同 名 的 位 图 文 件,
程 序 中 只 是 简 单 地 通 过程 序 扩 展 名 来 判 断 图 标 文 件
和 位 图 文 件。
---- 各 部 件 及 其 主 要 属 性 设 置 如 下:
部 件 属 性 属 性 值
Form1 Name ‘Form1’
Caption ‘ICO= >BMP’
StaticText1 Name ‘StaticText1’
Caption ‘ 图 标 文 件:’
Edit1 Name ‘Edit1’
Text ‘’
BitBtn_Browse Name ‘BitBtn_Browse’
Caption ‘ 浏 览...’
BitBtn_Convert Name ‘BitBtn_Convert’
Caption ‘ 转 换’
OpenDialog1 Name ‘OpenDialog1’
Filter ‘ 图 标 文 件(*.ico)|*.ico’
---- 实 现 转 换 的 源 程 序 如 下 所 示:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TForm1 = class(TForm)
StaticText1: TStaticText;
BitBtn_Convert: TBitBtn;
OpenDialog1: TOpenDialog;
BitBtn_Browse: TBitBtn;
Edit1: TEdit;
procedure BitBtn_BrowseClick(Sender: TObject);
procedure BitBtn_ConvertClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BitBtn_BrowseClick(Sender: TObject);
begin
if opendialog1.Execute then
edit1.Text := opendialog1.filename;
end;
procedure TForm1.BitBtn_ConvertClick(Sender: TObject);
var
Icon1:Ticon;
Bitmap1:Tbitmap;
FileName,FileExt:String;
begin
if FileExists(Edit1.Text) then
begin
FileExt:= ExtractFileExt(Edit1.Text);
if UpperCase(FileExt)='.ICO' then
begin
FileName:=copy(edit1.text,0,pos('.ico',edit1.text)-1);
icon1:=ticon.create;
bitmap1:=tbitmap.create;
icon1.loadfromfile(edit1.text);
Bitmap1.Width := Icon1.Width;
Bitmap1.Height := Icon1.Height;
Bitmap1.Canvas.Draw(0, 0, Icon1 );
Bitmap1.SaveToFile(FileName+'.bmp');
Icon1.Free;
Bitmap1.Free;
ShowMessage('文件转换成功!');
end
else
ShowMessage('所给定的文件不是图标文件!');
end
else
ShowMessage('所给文件不存在!');
end;
end.
****************************************************************
用POWERBUILDER 6.0绘制对比图形
山东胜利石油管理局 收获
---- 作 为 一 个 完 善 的 信 息 系 统, 它 给 用 户 的界 面 应 该 是
图 文 并 茂 的, 尤 其 是 在 同 一 坐 标内 绘 出 各 种 指 标 对 比
曲 线, 就 更 加 生 动 和 直观 了, 目 前 这 种 需 求 是 比 较 迫 切
的, 为 此, 笔者 以POWERBUILDER6.0 作 为 开 发 工 具, 数 据 库 选
用ORACLE7, 作 了 本 文, 详 解 一 下 这 种 对 比 图 的 产生 方 法。
---- 一、 建 表
---- 如 果 在 同 一 坐 标 系 内 绘 制 多 条 曲 线, 在建 表 的 过 程
中 就 应 该 考 虑 到 表 的 结 构 问 题,一 般 建 立 三 个 字 段 就 行
了。 举 一 个 例 子, 我们 要 在 同 一 坐 标 系 内 绘 出 钢 材、 煤、
水 泥 和石 灰 的 进 货 曲 线, 表(JHTAB) 的 结 构 包 含 时 间(SJ)、
类 别(LB)、 数 量(SL) 三 个 字 段 就 行 了, 并 将SJ 和LB 设 为
主 键。
---- 二、 所 用 到 的 数 据 窗 口 介 绍
---- 建 立 窗 口W_1, 在 上 边 建 立 两 个 数 据 窗口DW_1、DW_2,DW_1
的 数 据 窗 口 类 型 选 图 形 格 式, 用 来 产 生 对 比 图;DW_2 为
数 据 维 护 窗 口,选 择GRID 式, 数 据 维 护 完 毕,DW_1 中 立 即 动
态 地刷 新 图 形。
---- 三、 详 细 编 程 过 程
---- 1、 和ORACLE 数 据 库 连 接 的SCRIPT 语 句
//dbt
SQLCA.DBMS ="o72"
SQLCA.LogID ="zb"
SQLCA.LogPass ="zbpasswd"
SQLCA.UserID ="zb"
SQLCA.ServerName="@snt2"
Connect using sqlca;
open(w_1)
---- 2、 建 立 窗 口W_1
---- 3、 数 据 窗 口dw_1 的 制 作 过 程
---- 选 择 图 形 类 型GRAPH, 在 图 形 中 选 择 折 线 型。 横 坐 标
(CATEGORY) 选 择SJ( 时 间), 纵 坐 标 (VALUE) 选 择SL( 数 量),
类 别(SERIES) 选 择LB,即 建 立 一 折 线 图 形 的 数 据 窗 口。
---- 4、 数 据 窗 口dw_2 的 制 作 过 程
---- 数 据 窗 口dw_2 是 为 维 护 数 据 用 的, 选GRID 型。
---- 5、 填 写 窗 口W_1 的OPEN 事 件
dw_1.SetTransObject(sqlca)
dw_1.Retrieve()
dw_2.SetTransObject(sqlca)
dw_2.Retrieve()
---- 这 样 以 来, 只 要 运 行 程 序, 就 会 将 原 有 的 数 据 调 入 数
据 窗 口, 并 显 示 图 形 和 数 据。
---- 6、 数 据 维 护 过 程 所 用 的SCRIPT 语 句( 各 按 钮 介 绍)
---- 增 加( 记 录):dw_2.insertrow(dw_1.getrow()+1)
---- 删 除( 当 前 记 录):dw_2.deleterow(0)
---- 放 弃( 当 前 的 修 改):dw_2.retrieve()
---- 存 盘( 并 刷 新dw_1 的 图 形):
dw_2.update()
commit;
dw_1.Retrieve()
---- 四、 结 语
---- 通 过 上 边 的 介 绍, 读 者 也 许 会 感 叹 竟 然 如 此 简 单, 但
这 种 思 路 来 之 不 易, 笔 者 深 有 体 会, 希 望 能 对 关 心 这 方
面 编 程 的 用 户 带 来 帮 助。
****************************************************************
****************************************************************
◆下载专区◆
Small C Compiler / Small Assembler 2.2 (565 K)
一个简单的C语言编译器及汇编程序。
此Small-C编译器执行于总体C语言的一个子集中,并产生Microsoft汇编语
言输出。这个Small Assembler读取ASCII资源文件并写出标准.OBJ文件格式
的目标文件。这些功能使Small Assembler与DOS带来的连接器相兼容。
Small Assembler不带有自己的连接器--它必需与DOS连接器共同使用。
下载地址: http://www.users.uswest.net/~sdiggins/smallc22.zip
CdBase Control 0.5 (54K)
一个 ActiveX 定制工具,可以存取 Internet CD 数据库 (CDDB)。
CDDB 数据库是一个 CD 的信息数据库。使用时根据 CD 音轨中包含的唯一
标识符 CDID 来向 CDDB 进行查询,然后 CDDB 服务器会把对应的歌手、
标题、歌曲列表等信息发回来。这个控件可以简化 CDDB 的操作。
下载地址: http://www.mcs.com/~bdring/cddb/CdBase_ocx.zip
相关地址: http://www.mcs.com/~bdring/cddb/cddb.html
Lyrics Control 1.0.1 (13K)
一个 ActiveX 控件,可以用来存取国际上的歌词服务器
---- www.lyrics.ch 。
这个歌词服务器提供了一个包含有成千上万的歌词的数据库。使用这个控
件时,键入简单的几个单词即可获取完整的歌词来。你可以按照歌手、相
册和歌曲等信息对服务器进行查询。如果没有找到这样的歌曲,Lyrics控
件将弹出一个包含有当前所有歌曲的对话框来。
系统要求:Microsoft Internet Transfer Control (msinet.ocx), which
comes with Visual Basic Professional and Enterprise Edition
下载地址: http://www.mcs.com/~bdring/cddb/LyricCtl.zip
相关地址: http://www.mcs.com/~bdring/cddb/cddb.html
****************************************************************
****************************************************************
◆有问必答◆
★本期回答★
●077. 回答请mailto: yaozheng@kali.com.cn?subject=077
请问如何在vb中将数据列表框与文本框建立联系,例如,在数据库中有一
表,包括姓名、电话号码、地址、联系方法等。现在有一列表框和数个文
本框,列表框内显示姓名,几个文本框分别显示电话号码、地址等。当我
从列表框中选择姓名时,文本框则显示相应电话号码,地址等。望能告知
方法。不胜感谢。 qy515@tjmail.com
答:
A.
下面的p_name是姓名,Tel是电话,address是地址
这段代码你应该看的明白,有问题E_Mailto: luozhijian@21cn.com。
Private Sub Form_Load()
Data1.Refresh
While Not Data1.Recordset.EOF
If Not IsNull(Data1.Recordset.Fields("p_name")) Then
List1.AddItem Data1.Recordset.Fields("p_name")
End If
Data1.Recordset.MoveNext
Wend
End Sub
Private Sub List1_Click()
Text1.Text = ""
Text2.Text = ""
If List1.Text <> "" Then
Data1.Recordset.FindFirst "p_name='" & List1.Text & "'"
If Not IsNull(Data1.Recordset.Fields("Tel")) Then
Text1.Text = Data1.Recordset.Fields("Tel")
End If
If Not IsNull(Data1.Recordset.Fields("address")) Then
Text2.Text = Data1.Recordset.Fields("address")
End If
End If
End Sub
B.
对於这个问题,你可以这样解决它.比如显示姓名的列表框名称为LstName,
显示电话和地址的文本框分别为txtPhone,txtAddress.
在列表框LstName的Change事件中书写如下的代码:
Dim dbsTemp as DataBase
Dim recTemp as Recordset
if Trim$(LstName.text)<>"" then
....... '这段代码连接你的数据库
set recTemp=dbsTemp.OpenRecordset("select name,address from MyTable")
'MeTable就是你的存放电话和地址的表
if recTemp is Nothing then
msgbox Errors(0).Description
else
txtPhone=recTemp.fields(0).value
txtAddress=recTemp.fields(1).value
end if
end if
__________________________________________________________________
★本期提问★
078. 回答请mailto: yaozheng@kali.com.cn?subject=078
请问如何在VC中设置对话框上的按钮背景色,按钮为图标按钮.
望指点一条明路,不胜感激! tangweiqi@263.net
079. 回答请mailto: yaozheng@kali.com.cn?subject=079
在vb中用存储过程,怎么返回一个查询结果集 yxq@iinchina.net
080. 回答请mailto: yaozheng@kali.com.cn?subject=080
怎样备份数据表到a:盘 nhlzm@163.net
081. 回答请mailto: yaozheng@kali.com.cn?subject=081
在VC++6.0下如何何取256色图像的调色板信息,及把调色板信息置给256色
图像? 8911@163.net
提问信箱: yaozheng@kali.com.cn?subject=question
如果您有什么疑难问题,请发到上面的信箱里,我会及时把您的问题放在
杂志上的,希望编程高手们能不吝赐教,也希望这个栏目能成为大家交流
的场所。
****************************************************************
****************************************************************
◆编者的话◆
本刊已加入【CHINA-EZL】中国电子杂志联盟
联盟主页地址 http://china-ezl.yeah.net
◆欢迎光临我的个人主页
●《编程技术》 http://person.zj.cninfo.net/~yao
本刊的同名主页,主要以收集各类编程工具和程序源代码为主。
●《C++ Builder世界》 http://cppbuilder.soim.net
本人最新制作的个人主页,是一个探讨C++ Builder编程的专题
网站,为广大的C++ Builder爱好者搜集关于C++ Builder的一切。
◆《编程技术》订、退方法:
请到本刊主页进行订退工作 http://person.zj.cninfo.net/~yao
如果您觉得这份刊物还不错的话,欢迎把它介绍给您的朋友.
不知道您看了这期刊物有什么想法或者是意见,欢迎向我提出来.
本人感激不尽,我的联系方法如下:
E-mail:yaozheng@kali.com.cn
ICQ#: 43260473
**************************THE END**************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -