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

📄 9926.txt

📁 关于编程技术技巧的文章
💻 TXT
📖 第 1 页 / 共 4 页
字号:

---- 下 面 的 小 程 序 可 实 现 图 标 文 件 到 位 图 文件 的 转 换, 
它 能 够 把 所 给 定 的 图 标 文 件 转 换为 同 名 的 位 图 文 件, 
程 序 中 只 是 简 单 地 通 过程 序 扩 展 名 来 判 断 图 标 文 件 
和 位 图 文 件。 

---- 各 部 件 及 其 主 要 属 性 设 置 如 下:

部 件 属 性 属 性 值
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 + -