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

📄 9912.txt

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

MouDrv 2, 0, 0, 0 '隐藏鼠标光标                

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

                       Delphi的竖排标签

                         作者:赖立谦

  大家知道用Deiphi开发应用程序时标签是必不可少的,但是Deiphi
提供的Label构件只支持横排方式的标签,而不支持竖排方式标签。

  怎么办?

  编写一段简单的函数就可以把标签从横排变成竖排。因为中文字
符集是用两个字节表示一个字符的,所以应在字符串的每两个字节之
间加入回车换行符。这个函数的参数是一字符串,返回值是在中文字
符之间添加了回车换行符的一个新的字符串。

  下面就举例说明:我们以竖排方式显示一首诗。

  新建一工程。

  首先在implementation部分定义一个字符串数组常量poemary,
该数组的每一个成员顺序存放了诗中的一句。

  const

  poemary: array[0..6] of string = ('游子吟', '慈母手中线',

  '游子身上衣', '临行密密缝', '意恐迟迟归', '谁言寸草心',

    '报得叁春晖');

  随后,在implementation部分加入字符串转换函数,代码如下:

  function convertstring(source:string):string;

  var

  i,j:integer;

  a,b:array[0..50] of char;

  begin

  StrPCopy(a, source) ;

  j:=0; i:=0;

  while (a[j] <>#0) do begin

  b[i]:=a[j];

  if (j mod 2=1)and(j>0) then begin

  Inc(i); b[i]:=#13;

  end;

  Inc(j); Inc(i);

  end;

  b[i-1]:=#0;

  result:= strpas(b);

  end;


  最后添加Form1的OnCreate事件。注意:要在uses子句中添加单
元名称stdctrls。

  procedure TForm1.FormCreate(Sender: TObject);

  var

  labary:array[0..6] of Tlabel;

  i:integer;

  begin

  for i:=0 to 6 do

  begin

  labary[i]:=Tlabel.Create(self);

  labary[i].parent:=self;

  labary[i].caption:=convertstring(poemary[i]);

  labary[i].top:=(form1.Height-labary[i].height) div 2;

  labary[i].left:=10+i*33;

  end;

  end;

  此程序在Windows 95,Delphi3.0环境中运行通过。  

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

                   基于JPEG格式的图像数据库实现

                          作者:江明富  

  用VFP5.0开发多媒体应用时,存储图像通常使用的是BMP格式。
然而,由于幅面较大的BMP图像存储时占用存储空间较大,对于要管
理大量图像的应用,硬盘空间的占用将成为一个大问题。在众多图像
文件格式中JPEG格式压缩率最高,用JPEG格式将图像压缩20倍后,图
像仍然很清晰。VFP5.0能处理JPEG图像吗?回答是肯定的,我们可以
利用Wang图像控件达到目的。

  Wang图像控件由Wang图像编辑控制、图像扫描控制、图像管理控
制及图像缩略图控制组成,它是一组Windows 95自带的控件,选择安
装Windows 95附件中的映像即可安装该控件。

  Wang图像控件提供了图像扫描、图像打印、图像缩放、图像旋转、
在图像上加标签、生成缩略图、图像文件管理等功能,并且这些功能
的实现都可编程控制。这些控件的详细资料请参看Windows 95目录下
的Help\Wangocxd.hlp。

  一、图像的扫描输入、存储、显示

  创建“表单1.SCX”(见图)。插入Wang图像扫描对象imgscan的方
法是,在表单中插入“OLE容器控件”,出现“Insert Object”窗口
后,选“Insert Control”,在“Object Type”列表中选择“Wang
图像扫描控制”,再点“OK”按钮;插入Wang图像编辑对象imgedit1,
将其AutoRefresh属性置为.T.,ImagePalette属性置为3,ImageControl
属性置为imgscan;再插入其它对象(按钮名称:左旋90度:btnleft,
扫描:btnscan,保存:btnsave,退出:btnexit),并置
text1.value=100,btnsave.enabled=.f.

  btnscan.click过程为:

  if thisform.imgscan.scanneravailable()&&如果安装了扫描
仪thisform.imgscan.DestImageControl=′imgedit1′&&扫描到
imgedit1thisform.imgscan.scanto=0thisform.imgscan.startscan
&&开始扫描if thisform.imgscan.statuscode=0&&扫描成功

  thisform.btnsave.enabled=.t.&&允许保存endif

  elsemessagebox(′扫描仪未安装好′,16)

  endif

  btnsave.click过程(保存按钮)为:

  local m.fn

  m.fn=sys(3)+′.jpg′

  thisform.imgedit1.saveas(m.fn,1,6,6,64,.f.) 

  *把图像以JPEG格式存在临时文件中这里把64改为128、256、
....、16384 ,可得到不同压缩率

  appe memo pic from (fn) overwrite&&图像存入数据库

  erase (fn)

  btnexit.click过程为:

  thisform.release

  btnleft.click过程为:

  if thisform.imgedit1.imagedisplayed()&&如果已经显示了
图像

  thisform.imgedit1.rotateleft&&左旋90度

  endif

  text1.valid过程为:

  thisform.imgedit1.zoom=this.value&&改变图像显示大小

  表单1的init过程为:

  if eof()

  append blank

  endif

  public grph&&下面几条命令实现JPG图像的显示

  grph=sys(3)+′.jpg′

  if not empty(pic)&&如果本记录已经存有图像copy memo pic

  to (grph)thisform.imgedit1.image=m.grph&&就显示图像
thisform.imgedit1.displaythisform.btnsave.enabled=.t.

  endif

  这里把JPG图像存储在二进制备注型字段中。假设表文件image.dbf
有一二进制备注型字段pic(下同),执行下列语句:

  use image

  ...&&把记录指针定位到所需位置

  do form表单1.SCX

  可以扫描图像存入当前记录,如果当前记录已存有图像,也可修
改(旋转)已有图像。如果经常修改库中的图像,FPT文件会不断增
大,可打开库,执行Pack命令。

  

  二、在报表中插入数据库中存储的图像

  在VFP5.0的报表中,只能插入“图片/OLE绑定型控

  件”,图片只支持BMP格式,故为了在报表中打印JPG图像,必须
在打印前将JPG格式转换成BMP格式。下面新建报表imagerpt.frm,在
“页标头”部分插入了一“域控件”,“表达式”位置填入pimage(),
由pimage.prg临时生成要打印的图片文件(同一页面中要打印多张图
片时,生成多个临时文件),在“细节”部分插入一“图片/OLE绑
定型控件”,在其“图片来源”中,填入文件名(tmp);pimage.prg
内容如下:

  if file(tmp)

  erase (tmp)&&删除前一页生成的JPG文件

  tmp=left(m.tmp,12) 

  erase (tmp)&&删除前一页生成的BMP文件

  endif

  tmp=sys(3)+′.jpg′

  if not empty(pic)

  copy memo pic to (tmp)&&生成JPG文件

  myform.imgedit.image=m.tmp

  myform.imgedit.display

  myform.imgedit.saveas(m.tmp+′.bmp′,3,7,1,0,.t.)&&转
换成BMP文件

  myform.imgedit.cleardisplay&&清除显示的图像

  tmp=m.tmp+′.bmp′

  endif

  return 

  这里设计的报表不能单独运行,因为使用的对象在报表中没有定
义,要用下面这段程序调用:

  private myform,tmp

  MyForm = CREATEOBJECT(″form″)

  *在表单中加入图像编辑控件

  MyForm.AddObject(″imgedit″,″olecontrol″,
″wangimage.editctrl.1″)

  tmp=sys(3)+′.bmp′

  use image

  report form imagerpt preview for not empty(pic)

  if file(m.tmp)

  erase (tmp)

  tmp=left(m.tmp,12)

  erase (tmp)

  endif

  release myform

  三、图像的引入和导出

  图像的引入是指把现有的图像文件加入数据库,图像的导出是指
把库中存储的图像取出,供其它程序使用。

  Wang图像编辑控件能识别BMP、JPG、TIFF等格式的文件,用下面
这段程序可将现有文件转换成JPG格式,存入数据库中:

  private myform,tmp

  MyForm = CREATEOBJECT(″form″)

  MyForm.AddObject(″imgedit″,″olecontrol″,
″wangimage.editctrl.1″)

  tmp=sys(3)+′.jpg′

  use image

  ...&&定位记录到所需位置

  myform.imgedit.image=′要入库的图像文件名′

  myform.imgedit.display

  myform.imgedit.saveas(m.tmp,1,6,6,64,.t.)&&转换成JPG文

  append memo pic from (tmp) overwrite

  use

  erase (tmp)

  release myform
                     
*****************************************************
 
                           如何制作帮助文件
                              
                              文/何发武      
    
    帮助文件是任何全功能的、基于Windows的应用程序的一个很重要的组成部
分。如果一个商品化的软件没有健全完整、特色丰富的联机帮助手册,那么可以肯
定它不是一个成熟的软件,因为不提供帮助就好象是假定用户从来不会有问题。其
实帮助文件的制作是应用程序设计工作中相当重要的一环,也是程序员必备的编程
技巧之一,可惜这方面的书籍介绍的比较少。现略为谈谈制作帮助文件技巧及所需
要的工具。
    为了管理和显示帮助文件,WINDOWS有自己的帮助引擎(winhelp.exe或
winhlp32.exe)。这个应用程序能管理含有多种字体和颜色的帮助文件,并提供索
引和搜索能力。大多数商业应用程序都使用WINDOWS帮助引擎来显示帮助文件。制
作帮助文件需要两个工具:一个是帮助编器(如HC.EXE)和能够以RTF(Rich Text 
Format)格式的创建和保存文档的应用程序(如Word)。
    要生成自己程序的帮助文件,可以使用工具Microsoft Help Compiler(HC.EXE)

⌨️ 快捷键说明

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