Delphi 技术
文章平均质量分 63
sunstone
这个作者很懒,什么都没留下…
展开
-
delphi的资源文件
很古老话题了,不过今天碰到了,就捡起来研究和总结一下。delphi可以把各种资源文件整合到exe文件中,这样调入速度快。一 bmp图像,有两种方法procedure TfrMain.btnCanvasPic(Sender: TObject);var bBitmap : TBitmap;begin bBitmap := TBitmap.Create; try bBitmap.Handl原创 2009-10-22 08:08:00 · 1096 阅读 · 0 评论 -
delphi修改默认打印机
uses WinSpool, ... ;procedure ChangeDefaultPrinter(const Name: string) ;var W2KSDP: function(pszPrinter: PChar): Boolean; stdcall; H: THandle; Size, Dummy: Cardinal; PI:原创 2011-06-10 20:59:00 · 4177 阅读 · 0 评论 -
用Delphi打印各类文档
ShellExecute(Handle, print, PChar(c:/document.doc), nil, nil, SW_HIDE) ;Drop a TComboBox on a form. Name it "cboPrinter". Set Style to csDropDownLidtPut the next two lines in the fo转载 2011-06-10 20:57:00 · 2465 阅读 · 0 评论 -
把字节数显示成kb或gb的函数
<br />经常用到把字节数显示成kb或gb,函数如下<br /> <br />function FormatByteSize(const bytes: Longint): string;<br /> const<br /> B = 1; //byte<br /> KB = 1024 * B; //kilobyte<br /> MB = 1024 * KB; //megabyte<br /> GB = 1024 * MB; //gigabyte<br /> begin<br /> if翻译 2010-12-22 13:31:00 · 1993 阅读 · 0 评论 -
Firebird数据库版本差别
http://www.firebirdsql.org/index.php?op=guide&id=techspec Firebird Technical SpecificationsUpdated 2007-07-16 and subject to reviewDatabase Limits ItemFirebird 2.xFirebi翻译 2009-11-19 19:18:00 · 2413 阅读 · 0 评论 -
将memo转化为JPG输出
unit s1;interfaceuses Windows, Messages, SysUtils, Graphics, Controls, Forms, StdCtrls, Classes;type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TO转载 2009-11-17 20:11:00 · 943 阅读 · 0 评论 -
ini文件还有64K的限制么?
今天用delphi2010和Delphi7测试了一下ini读写,已经没有64k的限制了,估计限制这事已经是老黄历了!原创 2009-11-17 16:50:00 · 1325 阅读 · 1 评论 -
关于Record类型RTTI反射的用途和方法
问题的引入:准备做一个多国语言软件,发现信息变量(都是字符串)数量庞大,如果简单的通过 “变量=readstring”从ini文件中获取的话,几百个变量就是几百行,这个工作量非常大,而且也不易维护。如果使用RTTI反射机制,未来变量变化时,赋值程序不用修改,只需修改变量结构,这是一劳永逸的做法。 注意:本例程使用delphi2010,delphi老版本不支持record类型原创 2009-11-17 01:01:00 · 3568 阅读 · 1 评论 -
statusbar学习(2)—在statusbar上显示图标和自动以颜色
procedure TForm2.FormCreate(Sender: TObject);begin StatusBar1.Panels[0].Style := psOwnerDraw; StatusBar1.Panels[1].Style := psOwnerDraw;end; procedure TForm2.StatusBar1DrawPanel(StatusBar: TStat原创 2009-11-13 22:18:00 · 3916 阅读 · 0 评论 -
合并动态数组
procedure TForm2.btn1Click(Sender: TObject);var arr1, arr2: TBytes; len: Integer;begin SetLength(arr1, 3); SetLength(arr2, 3); arr1[0] := 65; arr1[1] := 66; arr1[2] := 67; arr2[0] := 68; ar转载 2009-11-13 20:09:00 · 2319 阅读 · 0 评论 -
使用TWebBrowser组件保存网页为html和mht文件
一、保存为HTML文件uses ActiveX;...procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;var PersistStream: IPersistStreamInit; Stream: IStream; FileStream: TFileStream;begin if not As翻译 2009-11-09 10:44:00 · 4031 阅读 · 0 评论 -
如何知道鼠标点击的statusbar的位置
procedure TForm2.StatusBar1Click(Sender: TObject);var mpt: TPoint; x: integer; j: integer; panel: integer;begin if (StatusBar1.SimplePanel) OR (StatusBar1.Panels.Count = 0) then begin Memo1.L原创 2009-11-07 17:11:00 · 1306 阅读 · 0 评论 -
在windows右键菜单中加上关联
uses Registry;function RegisterFileTypeCommand(fileExtension, menuItemText, target: string) : boolean;var reg: TRegistry; fileType: string;begin result := false; reg := TRegistry.Create; with原创 2009-10-22 21:24:00 · 1354 阅读 · 0 评论 -
combobox和listbox的文字可以右对齐显示
combobox和listbox的文字可以右对齐显示么?答案是可以的,但是必须使用ComboBox1DrawItem,自行画内容。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type原创 2009-10-22 08:06:00 · 6515 阅读 · 0 评论 -
在消息窗口中显示进度条
动态创建消息窗口,并在窗口中显示一个进度条,在进度条范围内选择按钮unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls;type TForm1 = c原创 2009-10-22 07:58:00 · 2157 阅读 · 0 评论 -
详解Variant 的相关函数
1.VarArrayCreate()和VarArrayOf()这两个常用就不说了2.VarArrayRedim()函数能修改variant数组的最高限。3.VarArrayDimCount()函数返回Variant数组的维数,4.VarArrayLowBound()和VarArr原创 2011-07-22 23:20:52 · 2647 阅读 · 0 评论