delphi
文章平均质量分 56
newweapon
-- We r sinking!
-- What r u thinking about?
展开
-
基于ActiveX 控件开发动态Web页
Web页面的开发主要分为三类:静态Web页面、半动态Web页面以及Client端动态页面。本文重点论述基于ActiveX Control(控件)动态实时页面的开发。 ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该原创 2006-04-21 13:11:00 · 3397 阅读 · 3 评论 -
GifImage的下载安装和使用
GifImage是Delphi中用来处理Gif图像的控件。1. 下载:GifImage2.2-D567,(把下面没显示出来的图片右键另存为后缀为rar的文件即可)2. 安装:Component -> Install Component -> 定位到gifimage.pas即可3. 使用:在自已的程序中使用,只要在unit中加入:gifimage,就可以用timage打开原创 2008-05-27 10:15:00 · 2700 阅读 · 2 评论 -
一些有关音频处理的网站(主要是mp3&wav)
1. http://www.mp3-tech.org/ 有关MP3技术的网站,Programmers corner 列出了一些有关MP3编码和解码的小项目。 2. http://symmetrica.net/newac/ New Audio Components for Delphi 一个可以处理大多数音频的Delphi的控件,非常强大。只不过有些音频(如MP3)的处理依原创 2008-08-19 15:50:00 · 1054 阅读 · 0 评论 -
如何使用默认浏览器在新窗口中打开 URL
From: http://nio.infor96.com/archives/78在使用 Delphi 编写程序时,经常需要直接使用浏览器打开一个 URL,简单的方法是用 ShellExecute,例如:ShellExecute(Application.Handle, open, PChar(url), nil, nil, SW_SHOW);这种方法的缺点是:不会重新创建浏览器实例(转载 2008-05-28 17:22:00 · 868 阅读 · 0 评论 -
Delphi: 一个用来控制系统音量的类
From: http://dev.21tx.com/2005/05/06/10945.html一个用来控制系统音量的类,包括了调节左右声道、静音等功能,已被收入CNpack。 // --[Yoyoworks]---------------------------------------------------------------- // 工程名称:prjPowerFlashPlayer /转载 2008-05-28 20:28:00 · 1269 阅读 · 0 评论 -
Delphi实现MP3 互相转换 WAV (无需任何第三方dll)
From: http://www.programbbs.com/doc/3152.htm一:MP3转换为WAVfunction acmDriverEnumCallback(hadid: HACMDRIVERID; dwInstance: DWORD; fdwSupport: DWORD): BOOL; stdcall;var driver转载 2008-06-03 20:58:00 · 2448 阅读 · 0 评论 -
Delphi中文本文件Utf-8和Ansi转换
注意:没有仔细验证正确性。const IS_TEXT_UNICODE_ASCII16 = $1; IS_TEXT_UNICODE_REVERSE_ASCII16 = $10; IS_TEXT_UNICODE_STATISTICS = $2; IS_TEXT_UNICODE_REVERSE_STATISTICS = $20; IS_TEXT_UNICODE_CONTROLS = $4;原创 2008-06-05 16:53:00 · 4157 阅读 · 0 评论 -
Delphi判断文本文件的编码格式
今天在网上看到一位老兄写的判断记事本保存的文本的四种格式的判断,觉得非常不错。Notepad(记事本)只支持四种格式:ANSI/Unicode/Unicode big endian/UFT-8,在Delphi中如何判断与读取这些不同格式的文本呢?首先,不同编码的文本,是根据文本的前两个字节来定义其编码格式的。定义如下:ANSI: 无格式定义;Unicode:原创 2008-06-06 23:06:00 · 2321 阅读 · 1 评论 -
Side-by-side Assemblies
From: http://msdn.microsoft.com/en-us/library/aa376307(VS.85).aspxA Windows side-by-side assembly is described by manifests. A side-by-side assembly contains a collection of resources—a group of DLL转载 2008-06-17 14:09:00 · 1442 阅读 · 0 评论 -
Delphi检查进程是否在运行
From: http://www.cnblogs.com/taobataoma/archive/2007/08/20/862668.html{ Check if a process from the task list is active. } uses TlHelp32; function processExists(exeFileName: string): Boole转载 2008-06-19 13:25:00 · 1134 阅读 · 0 评论 -
Delphi防止同时出现多个应用程序实例--CreateMutex
From: http://www.cnblogs.com/taobataoma/archive/2007/08/15/856415.html 多实例指同时有同一个应用程序的多个副本在运行。同一个应用程序的多个副本可以相互独立地同时运行,是Win32操作系统提供的一个功能。但有时,我们可能希望用户启动应用程序后就不再启动它的别的副本。比如某种设备资源的控制程序,像调制解调器和并行端口。这种转载 2008-06-19 13:19:00 · 774 阅读 · 0 评论 -
Delphi中处理UTF8格式的文本
前面有篇文章写了DELPHI中UTF-8格式转ANSI格式。当时那个格式仅限于Windows记事本保存的UTF-8格式,不支持一般的UTF-8格式。于是又在网上找了一个新的转一般UTF-8的函数。代码如下:function UTF8ToAnsiString(utf8str:string; CodePage: integer):AnsiString;var i:integer;原创 2008-06-21 13:51:00 · 1651 阅读 · 0 评论 -
Delphi的Split函数
因为Delphi中并没有自带的分拆字符串的函数,但实际编程中又经常会用到。在网上找了一段代码,在使用中发现有Bug,没有考虑到分拆符可能不只一个字符的情况。下面是修改过后的代码(红色部分是修改的代码):function SplitStr(const Source, Splitter: String):TStringList;var temp: String; i:原创 2008-06-21 13:55:00 · 871 阅读 · 0 评论 -
Delphi中类似Map的HashTable
From: http://topic.csdn.net/t/20050518/10/4015559.html unit UnitHasedTable; interface uses Classes; type TStringHashedTable = class(TPersisten转载 2008-06-21 21:26:00 · 1430 阅读 · 0 评论 -
Delphi中截取文件名不含后缀部分
当文件名含有中文时,不能直接用LeftStr(FileName, Length(FileName - 4))或者用Pos来定位"."的位置来获取。因为中文一个字符相当与两个英文字符。这样截取往往还是把整个FileName都截下来了。应当使用Copy函数,如下:TmpFileLength := Pos(extFile, FileName);TmpFileName := Copy(File原创 2008-06-23 16:54:00 · 2171 阅读 · 2 评论 -
Delphi关闭程序前确认
使用Form的FormCloseQuery事件: procedure TMainFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin Canclose := MessageBox(真的要退出吗?, 提示, MB_YESNO+MB_ICON原创 2008-08-08 09:51:00 · 1258 阅读 · 0 评论 -
TStringGrid使用
StringGrid行列的增加和删除typeTExCell = class(TStringGrid)publicprocedure DeleteRow(ARow: Longint);procedure DeleteColumn(ACol: Longint);procedure InsertRow(ARow: LongInt);procedure InsertColumn(ACol: Lo转载 2008-08-06 14:02:00 · 919 阅读 · 0 评论 -
用Delphi写一个超级简单的(wav, mp3)播放器
使用Delphi中System中的MediaPlayer控件。 因为我主要是需要使用播放声频文件中的片断,比如 21000ms ~35000ms。在Delphi中可以使用MediaPlayer的StartPos和EndPos来实现。 在编程过程中主要遇到的问题是:当播放wav格式时,利用设置StartPos和EndPos可以播放任意位置的片断,但是当播放mp3时,StartPo原创 2008-04-21 20:34:00 · 2475 阅读 · 0 评论 -
Delphi多线程编程中的技巧
(1)创建线程MsgThread := TMsgThread.Create(False) ; //创建并执行线程MsgThread := TMsgThread.Create(True) ; //创建线程后挂起constructor Create(CreateSuspended: Boolean); 中的参数CreateSuspended表示创建后是否挂起线程。转载 2008-07-14 10:10:00 · 760 阅读 · 0 评论 -
Delphi线程的安全关闭
在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。常用来结束线程的代码为: PcmThrd.Terminate; PcmThrd.WaitFor;即先触发Terminate方法,然后等待线程的结束。这种方法要求线程不能使用 FreeOnTerminate := True; ,否则在WaitFor即将结束的时候会原创 2008-07-14 11:02:00 · 2423 阅读 · 0 评论 -
Delphi中的goto语句
软件行业中有个经典的原则就是“能不用goto语句,就尽量不用。”,因为大量使用goto语句的程序将很难弄清逻辑,不利于程序的调试和后期维护。不过,有时候简单地使用goto却能给程序带来简介。比如一个函数中有很多判断,而中间有较多的条件需要及时返回,并在返回前做一些相同的操作,比如恢复几个按钮的状态,这时候使用一个goto语句就比较合适了。以下是一个例子:procedur原创 2008-07-17 13:34:00 · 2565 阅读 · 1 评论 -
Delphi在Image中响应键盘事件
众所周知,Delphi中的Image是没有键盘事件的,但是在很多应用程序中(特别是个人版的桌面软件),对界面美观要求比较高的,都会使用图片来做UI,这样就直接把Form给覆盖住了。但同时我们又希望能使用F1来显示帮助、或者使用回车/空格来按下一个图片按钮。可是,Image却偏偏没有键盘事件,那我们怎么办呢?其实Image没有键盘事件,也没有关系的。我们同样用Form的OnKeyDown事件中原创 2008-07-17 19:21:00 · 1606 阅读 · 0 评论 -
Delphi中Owner和Parent的区别
From: http://topic.csdn.net/u/20080602/12/bac38c5f-4ece-4dd4-af36-83a0921c6303.html?seed=2118508818 Parent属性是指构件的包容器,构件只能在此范围内显示和移动。举例子如下: (1)在Form1的窗体上,放一个Panel1,并将Panel1拉大, (2)在Panel1上放一Bu转载 2008-07-20 21:45:00 · 1079 阅读 · 0 评论 -
Unicode与字符集函数
From: http://www.utf.com.cn/article/s319 近日闲来无事,前一阵子又被Unicode搞的焦头烂额,于是想看看MSDN吧!英文的看起来真费劲,为了以后省点劲,翻译总结了一下,备查。英文水平有限,如有出入,请参见MSDN。第一个就是宽字符到多字节字符转换函数,函数原型如下:int WideCharToMultiByte(UINT CodePage,D转载 2008-07-22 16:26:00 · 560 阅读 · 0 评论 -
UTF-8 字符集基础
From: http://www.javaresearch.org/article/46058.htm字符集简史在所有字符集中,最知名可能要数被称为ASCII的7位字符集了。它是美国信息交换标准委员会(American Standards Committee for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9转载 2008-07-22 17:03:00 · 790 阅读 · 0 评论 -
WideString 还是 AnsiString ?谈谈字符编码
From:http://blog.csdn.net/xwchen/archive/2007/03/21/1536829.aspx 作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-1 这篇这次不给分了,我发现我的分开始只降不升了,长此以往,岂不穷死。 正在装载数据…… 本来这一篇是讲关于XML字符编码的,我转载 2008-07-22 16:10:00 · 752 阅读 · 0 评论 -
Delphi中使用WebBrowser控件中载入的页面的script
使用如下语句即可:webrowser1.OleObject.document.script.doSomething(parameter);在网上看到还可以如下使用,不过我没用过。uses MSHTML; //use IHTMLDocument2 procedure TForm1.BitBtn1Click(Sender: TObject); b原创 2008-05-20 23:45:00 · 719 阅读 · 0 评论 -
Delphi组件事件动态添加函数
比如想在窗体初始化的时候给一个TImage的OnClick事件动态绑定一个函数OpenTestForm,可以使用如下方法。1. 定义procedure OpenTestForm,并实现:procedure OpenTestForm(Sender:TObject);impelmentationprocedure TMainForm.OpenCourseList(Sender:TObjec原创 2008-05-21 14:51:00 · 2501 阅读 · 1 评论 -
Delphi中如何使Label固定宽度且自动换行
问:如何使Delphi中如何使Label固定宽度且自动换行,高度根据文字的内容而定?答:设置AutoSize := True; WordWrap := True; Width := YourHeight; Constraints.MinWidth := YourHeight; Constraints.MaxWidth := YourHeight; 搞定~原创 2008-08-06 15:08:00 · 10033 阅读 · 2 评论 -
Delphi连接带密码的Access
1)双击ADOConnection控件,然后点击Build...按钮,在“提供者”页中选择“Microsoft Jet 4.0 OLE DB Provider”,然后点击“下一步”按钮,在“连接”页中选择要连接的Access数据库的路径和数据库的文件名,这时如果点“测试连接”按钮时,出现“初始化提供者时发生错误,测试连接失败,密码无效”的错误提示。 2)点“所有”页,然后双击“Jet原创 2008-08-05 13:28:00 · 1142 阅读 · 0 评论 -
Delphi中用ADO连接数据库
*注: 此文适合Delphi新手阅读,特别是连接数据库方面还一懂半懂甚至根本不懂的新手; 本文章以Delphi 7和SQL Server 2000为例,控件名均为系统默认,如Unit1,DataModule1,Edit1,ADOCommand1,ADODataSet1,ADOConnection1,DataSource1等等。 初初接触Delphi时,想转载 2008-08-05 13:51:00 · 1659 阅读 · 0 评论 -
Delphi最小化窗体的两种方法
1. 利用wm_SysCommand及参数sc_Minimize:procedure TForm1.ImgBtnMiniClick(Sender: TObject);begin SendMessage(handle, wm_SysCommand, sc_Minimize, 0);end;2. 利用WindowState:procedure TForm1.ImgBtnMiniCli原创 2008-05-26 15:51:00 · 2419 阅读 · 0 评论 -
Delphi:TMemoryStream类--二进制大对象与数据库的交互
Q:如何将一个大的二进制数组保存到数据库,并从数据库再次取回到数组?A:使用TMemoryStream类对象,使用内存流对象的WriteBuffer/ReadBuffer方法和数据库BLOB字段对象的SaveToStream/WriteFromStream方法。以下是我做的一个例子,Form1只有一个按钮,但是要usesDataModule2;DataModule2里包含一个ADOTa转载 2008-09-28 20:14:00 · 2053 阅读 · 2 评论