📄 9933.txt
字号:
================================================================
《编 程 技 术》
一份属于广大编程爱好者的电子杂志
这是一份完全关于探讨编程的免费电子杂志
您可以任意传播本刊,但必须保持它的完整
本刊承诺绝不向订户发送任何形式的垃圾邮件!
================================================================
第33期 99/11/23 本期发送数: 5825
================================================================
◆本期栏目◆
*刊首语*
*友情推荐*
【终·极·指·南】免费电脑网络杂志
*网友作品*
UniView 1.2
《户籍管理1.8》
201电话卡密码破解程序
座位表
挑战者II(小游戏) (新)
*技术文档*
Dephi:使用TStream读写数据的技巧
Delphi显示Windows图标
如何在C++ Builder中显示透明位图
PB中一个类Word打印对话框的实现
自制《仙剑》简体中文版
用asp建立BBS站
*下载专区*
4个ActiveX控件下载
*有问必答*
****************************************************************
****************************************************************
◆刊首语◆
由于本人学校考试缘故,本期刊物延迟了两天发送。希望大家没有等
急。
****************************************************************
****************************************************************
◆友情推荐◆
【终·极·指·南】免费电脑网络杂志
刊物介绍:
【IT新闻】:搜索IT界重大新闻。
【复活节彩蛋】:向你介绍各种软件、电影及游戏等鲜为人知的小秘密。
【技巧园地】:奉送流行软件的使用技巧。
【工具锦囊】:向你介绍最新的好用的软件。
【网络快递】:各种免费资源快速提供。
【交流天地】:提供完全自由的主页介绍、交友、问答的空间。
本刊物订阅方法:
在线订阅:
http://ponlines.my169.com/ 或 http://rondec.126.com/
E-MAIL订阅:
majordomo@ms1.e-lists.com.cn 正文为subscribe ultimateguide
****************************************************************
****************************************************************
◆网友作品◆
006.
名称:UniView
版本:1.2
作者:chcw
Email: chcw@163.net
主页: 无
运行平台: Windows95&98
性质:免费软件
下载地址: http://www.newhua.com/down/UniView.zip (523KB)
功能简介:
UniView是功能强大的图片浏览器,它能对多种常见格式的图像文件进行浏
览和格式转换.
主要特点:
1.支持的图像格式:
UniView可以读入以下图象格式文件:
*.UFO(加密漫画文件格式,UniView无须口令,即可读入该种格式文件),
*.AFI,*.VST, *.TGA, *.PNG, *.PCC, *.PCX, *.TIFF(包括多页TIFF文件),
*.TIF, *.JPG, *.JPEG, *.BMP, *.GIF(包括动画GIF文件), *.WMF, *.EMF,
*.ICO, *.FIF, *.PBM, *.PGM, *.PPM, *.MAC, *.IMG,*.PCD
UniView可以将读入的图象文件转化为以下格式:
*.BMP, *.GIF, *.JPG, *.TIF, *.PCX, *.PNG, *.EMF, *.TGA. (以及将动
画GIF文件转换为*.AVI格式)
2.显示图像前对图像进行抖动预处理, 使图像得到优化的显示.
3.支持对图像进行缩放, 旋转, 自动调整大小, 全屏幕显示, 手工滚动,
打印等操作.
4. 支持对图片进行正向、逆向和随机方式的幻灯浏览.
5. 支持将图片以平铺、居中或拉伸方式设置为墙纸.
6.支持文件的Drag & Drop(拖放)操作.
7.支持对图像文件进行批量格式转换.
8.支持对图像文件格式进行关联; 动态调整屏幕显示模式等操作.
007.
软件名称:《户籍管理1.8》
下载地址:http://xf-bbs.hb.cninfo.net/~xcsoft/down/hjgl.zip
主页地址:http://xcsoft.yeah.net
硬件要求:386以上
内存:1M
硬盘:2M空间
运行平台:DOS或WIN95/98下的MS-DOS
支持的汉字平台:UCDOS等汉字平台或WIN95/98的PDOS95
软件性质:共享软件
软件介绍:
村务管理之户藉管理是村居管理户口的好软件!
一个非常适和村居基层单位部门使用的户口管理软件,
从此再也不必为查户口,登记户口烦恼了!!!
008.
201电话卡密码破解程序 201craker ( 严禁将本程序用于非法目的 )
下载地址:
201电话卡密码破解程序 Ver1.1 68k
http://www.zg169.net/~jamesxia/201c11.zip
201电话卡密码破解程序 Ver1.1 源程序 21k
http://www.zg169.net/~jamesxia/201c11s.zip
主页地址: http://jamesxia.yeah.net
201电话卡是中国电信在各大城市发行的一种有帐号、密码及一定面额的电
话卡,可以在任何一部音频电话上拨打。主要用于各大城市的大学中!
201craker的作用就是测试201电话卡的密码。
特点:
1、全中文界面
2、各项设置完全,全面适应各地不同的拨号方法。
3、支持1~9位密码, 密码不足6位时加“#”。
4、受到201电话卡拨号的限制,每测试一个密码约需要20秒左右的时间,
破解一个4位的密码需要50个小时左右。
5、本软件是自由软件,你可以自由传播本软件及修改源程序,但严禁将本
程序用于非法目的。
6、本软件将不定期进行升级,欢迎访问我的主页。
009.
名称:座位表
版本:无
作者:麦杰
e-mail:maijie@soim.net
主页:无
运行平台:windows95/98
性质:自由软件
下载方法:e-mail联系
功能简介:全国统一的’保险代理人员资格考试‘由广播电视大学系统组
织考试,使用’保险代理人员资格考试管理系统‘处理考员信息及安排考
试工作,但该软件缺少打印座位表的功能,本人用vfp5中文版编写了打印
座位表的小软件,能打印考室座位表,经用广西全区1999第二次’资格考
试‘的数据调试,所打印出来的座位表中的准考证号码及相应的姓名与用’
管理系统‘中的’打印考室人员清单‘中的清单完全一致。
010.
1.名 称:挑战者II(小游戏) (VB 6.0 开发)
2.连接地址:http://topgold.163.net/game1.zip
作者邮箱: coolblue@china.com
作者主页: http://topgold.163.net
您自己开发过软件吗? 您有自己满意的作品吗? 您希望发布推广您的作品
吗? 本刊竭诚为您提供宣传空间。有意的朋友请把您的作品介绍以及下载
地址、您的网址、联系方法等相关信息发给我(具体格式请参照上面)。
本刊免费为您宣传三期。如有疑问可以与我联系。
我的信箱: yaozheng@kali.com.cn
****************************************************************
****************************************************************
◆技术文档◆
Dephi:使用TStream读写数据的技巧
作者: 张堂辉
---- 在Dephi中提供了一个抽象的数据类型TStream来支持对流式数据的操
作。这些数据通常来自文件、数据库、内存对象、OLE对象等,TStream提
供了统一、简洁的方法来进行数据的读写。在通常情况下,我们并不需要
直接使用TStream类,对流式数据的读写封装在VCL控件的方法中。但是如
果这些方法无法满足我们的要求,就需要自己手动控制数据的读写。
一、 TStream的常用的方法和属性:
----1.function Read(var Buffer; Count: Longint): Longint; virtual; abstract
----2.function Write(const Buffer; Count: Longint): Longint; virtual; abstract;
----3.function Seek(Offset: Longint; Origin: Word): Longint; virtual; abstract;
----4.property Position: Longint;
----5.property Size: Longint
---- Read,Write,Seek都是纯虚函数,提供了数据读写和定位的抽象的
方法。Read方法将数据从Stream中读到Buffer缓冲区中,Write则实现相反
的操作,返回值表示实际读写数据的大小。Seek提供了在Stream中移动数
据指针的方法。参数Origin可以取soFromBeginning,soFromCurrent,
soFromEnd 三个值,Offset是偏移量,返回值是当前Stream数据指针的位置。
---- Position表示了数据指针在Stream中的位置。这个属性是可读写的,
它实际上就是通过调用Seek方法实现的,所以实际使用时使用这个属性更
为方便一些。Size属性表示当前Stream的大小,对于不同的Stream,有些
时候是只读的。
二、 Stream数据的读写。
---- 1. SaveToStream(Stream: TStream ); //将类中的数据写到Stream的当前位置中
---- 2. LoadFromStream(Stream: TStream); //从当前位置读入Stream里的数据
---- 实际使用时我们基本上只要使用上面两个函数就可以了。
三、 例子
---- TStream的继承树图如图1所示(略),实际使用时比较常用的是TFileStream,
TMemoryStream,TblobStream,就以这三种流举一例说明具体用法。
---- 创建一个窗体Form1,放置三个按钮btnRead,btnInvert,btnSave
和一个文件打开对话框OpenDialog1以及数据控件DataSource1,Table1,
test.
---- 使用Dephi提供的Database Desktop创建一个表test,表里有一个
字段域Image,数据库文件名存为test.db。在窗体上放置一个TDatabase
控件dbTest,一个TTable控件Table1,一个DataSource控件DataSource1,
一个TDBNavigator控件DBNavigator1。将dbTest与刚才Desktop创建的数
据库相连,Table1的TableName属性设为test.db,DataSource1的DataSet
属性设为Table1,DBNavigator1的DataSource属性设为DataSource1,
VisibleButtons属性前四个设为TRUE。此外,将dbtest的Connected设为
TRUE,Table1的Active属性设为TRUE,使得数据库一开始就处于打开状态。
---- 事件代码编写如下:
---- 1. btnRead的Click事件,这里演示了TFileStream的用法。
var
MS: TFileStream;
begin
if OpenDialog1.Execute then
begin
MS:=TFileStream.Create
(OpenDialog1.FileName, fmOpenRead);
Image1.Picture.Bitmap.LoadFromStream(MS);
MS.Free;
end;
end;
---- 2. btnInvert的Click事件,这里演示了TMemoryStream的用法。其
中使用了Invert函数,这是一个简单的将图象反色的函数(仅对真彩图象
有效),它返回一个指向处理过的图象数据块的指针。
var
M
S: TMemoryStream;
pImage: pointer;
begin
MS:=TMemoryStream.create;
Image1.Picture.Bitmap.SaveToStream(MS);
MS.Position:=0;
pImage:=Invert(MS.Memory, MS.size);
//Memory属性是指向实际内存块的指针
MS.Write(pImage^,MS.size);
MS.Position:=0;
//上一行代码使指针移到了Stream末尾,所以要复位
Image1.Picture.Bitmap.LoadFromStream(MS);
FreeMem(pImage);
MS.Free;
end;
Invert函数如下:
function TForm1.Invert
(pImage: pointer; size: Integer): pointer;
var
pData, pMem: PChar;
i: Integer;
begin
pMem:=AllocMem(size);
CopyMemory(pMem,pImage,size);
pData:=pMem+54;
for i:=0 to size-54-1 do
begin
pData^:=Char(not integer(pData^));
pData:=pData+1;
end;
Result:=pMem;
end;
---- 1. btnSave的Click事件,这里演示了TMemoryStream的另一种用法,
将Stream中的数据写到数据库中去。
var
MS: TMemoryStream;
begin
MS:=TMemoryStream.create;
Image1.Picture.Bitmap.SaveToStream(MS);
MS.Position:=0;
Table1.Append;
//在数据库中添加一条记录
TBlobField(Table1.FieldbyName
('image')).LoadFromStream(MS);
Table1.Post;
//将所作的更新写入数据库
end;
---- 4. DBNavigator1的Click事件,这里演示了TBlobStream的用法,使
用了和写入时不同的方法来读出数据库的图象数据。
var
MS: TStream;
begin
with Table1 do
MS:=CreateBlobStream
(FieldbyName('image'),bmRead);
Image1.Picture.Bitmap.
LoadFromStream(MS);
MS.Free;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -