WebBrowser 操作记要
WebBrowser1.GoHome; //到浏览器默认主页
WebBrowser1.Refresh; //刷新
WebBrowser1.GoBack; //后退
WebBrowser1.GoForward; //前进
WebBrowser1.Navigate('...'); //打开指定页面
WebBrowser1.Navigate('about:blank'); //打开空页面
--------------------------------------------------------------------------------
//打开空页面, 并写入...
WebBrowser1.Navigate('about:<头><标题>标题>标题><身体>页面内容身体>');
--------------------------------------------------------------------------------
//读取网页脚本中的变量:
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
i: Integer;
begin
s := WebBrowser1.OleObject.document.Script.str;
i := WebBrowser1.OleObject.document.Script.num;
ShowMessage(s); //Hello
ShowMessage(IntToStr(i)); //99
//也可以这样读:
s := WebBrowser1.OleObject.document.parentWindow.str;
i := WebBrowser1.OleObject.document.parentWindow.num;
ShowMessage(s); //Hello
ShowMessage(IntToStr(i)); //99
end;
假如网页中有这样的语句:
--------------------------------------------------------------------------------
//调用网页脚本中的函数:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js
//如需指定脚本语言, 需要:
WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js
end;
假如有这样的脚本:
--------------------------------------------------------------------------------
//判断网页及内部框架网页是否全部下载完毕
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if WebBrowser1.Application = pDisp then
begin
Text := '网页下载完毕!';
end;
end;
--------------------------------------------------------------------------------
//改变背景色或背景图片:
WebBrowser1.OleObject.document.body.bgcolor := '#FF0000';
WebBrowser1.OleObject.document.body.background := '...图片地址';
--------------------------------------------------------------------------------
//操作有 ID 标签的对象:
var
s: string;
begin
s := WebBrowser1.OleObject.document.getElementByID('span1').innerText;
ShowMessage(s); //这是 span1 标签中的内容
//或者:
s := WebBrowser1.OleObject.document.parentWindow.span1.innerText;
ShowMessage(s); //这是 span1 标签中的内容
//隐藏它:
WebBrowser1.OleObject.document.parentWindow.span1.style.display := 'none';
end;
假如网页中有这样的内容:
这是 span1 标签中的内容
--------------------------------------------------------------------------------
//获取网页源代码
var
s: string;
begin
s := WebBrowser1.OleObject.document.body.innerHTML; //body内的所有代码
s := WebBrowser1.OleObject.document.body.outerHTML; //body内的所有代码, 包含body标签
s := WebBrowser1.OleObject.document.documentElement.innerHTML; //html内的所有代码
end;
//获取网页全部源代码
uses ActiveX;
var
ms: TMemoryStream;
begin
if not Assigned(WebBrowser1.Document) then Exit;
ms := TMemoryStream.Create;
(WebBrowser1.Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms), True);
ms.Position := 0;
Memo1.Lines.LoadFromStream(ms, TEncoding.UTF8);
// Memo1.Lines.LoadFromStream(ms, TEncoding.Default); {GB2312 等双字节}
ms.Free;
end;
--------------------------------------------------------------------------------
//WebBrowser 中的右键菜单
//先要添加ApplicationEvents1,指定其Message事件
//屏蔽右键菜单
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
with Msg do
begin
if not IsChild(WebBrowser1.Handle, hWnd) then Exit;
Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);
end;
end;
//替换右键菜单
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var mPoint: TPoint;
begin
if IsChild(WebBrowser1.Handle, Msg.Hwnd) and
((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) then
begin
GetCursorPos(mPoint); //得到光标位置
PopupMenu1.Popup(mPoint.X, mPoint.Y); //弹出popupmenu1的菜单
Handled:=True;
end;
end;
--------------------------------------------------------------------------------
//新页面写入
begin
WebBrowser1.Navigate('about:blank');
WebBrowser1.OleObject.Document.Writeln('ok');
end;
//从流中写入:
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
Memo1.Lines.SaveToStream(ms);
ms.Position := 0;
(WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
ms.Free;
end;
//禁止提示脚步错误
procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WebBrowser1.Silent := True;
end;
//禁止弹出窗口
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
Cancel := True;
end;
Thursday, April 30, 2009
Tuesday, April 28, 2009
Autohidden form which effect like qq
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls; //第1步,加ExtCtrls, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
//第2步 自定义函数GetFormNameAt, 它可获得当前鼠标指针下面的窗体的名称
function GetFormNameAt(const Pos: TPoint): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//*****************************************************************************
//以下是第3步程序代码
function Tform1.GetFormNameAt(const Pos: TPoint): string;
var
w: TWinControl;
begin
//得到鼠标指针下的VCL可视组件
w:= FindVclWindow(Pos);
if (w <> nil) then
begin
//当W的上级Parent不为空时就继续往上找
while w.Parent <> nil do
w:= w.Parent;
//最后返回窗体的名称Name
Result:= w.Name;
end
else
Result:= '';
end;
//******************************************************************************
procedure TForm1.Timer1Timer(Sender: TObject);
var
winPos: TPoint;
t: integer;
b: boolean;
begin
b:= false;
if (form1.Top <= 3) then
begin
b:= true;
t:= 0;
end
else if form1.Left + form1.Width - Screen.Width >= 0 then
begin
b:= true;
t:= form1.Top;
end
else
t:= form1.Top;
if b then
begin
//得到当前鼠标指针的在屏幕上的坐标
GetCursorPos(winPos);
//当鼠标指针下的窗体的Name等于form1.name时
if form1.Name = GetFormNameAt(winPos) then
{在此我们可以为form1取一个特别的名称,以防有别的窗体名称与它相同}
begin
//停用Timer2
form1.timer2.Enabled:= false;
//form1的Top与屏幕对齐
form1.Top:= t;
if t <> 0 then
form1.Left:= Screen.Width - form1.Width;
end
else begin
form1.Timer2.Enabled:= true;
end;
end;
end;
//******************************************************************************
procedure TForm1.Timer2Timer(Sender: TObject);
// 当 top 距屏幕上侧 20 像素时,自动隐藏
begin
if form1.Top <= 20 then
begin
//将form1向上移,在屏幕上方露出3像素
form1.Top:= -(form1.Height - 3);
if (form1.Left + form1.Width > Screen.Width) then
form1.Left:= Screen.Width - form1.Width;
end
// 当 left 距屏幕下侧 20 像素时,自动隐藏
else if form1.Left + form1.Width - Screen.Width >= -20 then
//将form1向右移,在屏幕右方露出4像素
form1.Left:= Screen.Width - 4;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls; //第1步,加ExtCtrls, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
//第2步 自定义函数GetFormNameAt, 它可获得当前鼠标指针下面的窗体的名称
function GetFormNameAt(const Pos: TPoint): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//*****************************************************************************
//以下是第3步程序代码
function Tform1.GetFormNameAt(const Pos: TPoint): string;
var
w: TWinControl;
begin
//得到鼠标指针下的VCL可视组件
w:= FindVclWindow(Pos);
if (w <> nil) then
begin
//当W的上级Parent不为空时就继续往上找
while w.Parent <> nil do
w:= w.Parent;
//最后返回窗体的名称Name
Result:= w.Name;
end
else
Result:= '';
end;
//******************************************************************************
procedure TForm1.Timer1Timer(Sender: TObject);
var
winPos: TPoint;
t: integer;
b: boolean;
begin
b:= false;
if (form1.Top <= 3) then
begin
b:= true;
t:= 0;
end
else if form1.Left + form1.Width - Screen.Width >= 0 then
begin
b:= true;
t:= form1.Top;
end
else
t:= form1.Top;
if b then
begin
//得到当前鼠标指针的在屏幕上的坐标
GetCursorPos(winPos);
//当鼠标指针下的窗体的Name等于form1.name时
if form1.Name = GetFormNameAt(winPos) then
{在此我们可以为form1取一个特别的名称,以防有别的窗体名称与它相同}
begin
//停用Timer2
form1.timer2.Enabled:= false;
//form1的Top与屏幕对齐
form1.Top:= t;
if t <> 0 then
form1.Left:= Screen.Width - form1.Width;
end
else begin
form1.Timer2.Enabled:= true;
end;
end;
end;
//******************************************************************************
procedure TForm1.Timer2Timer(Sender: TObject);
// 当 top 距屏幕上侧 20 像素时,自动隐藏
begin
if form1.Top <= 20 then
begin
//将form1向上移,在屏幕上方露出3像素
form1.Top:= -(form1.Height - 3);
if (form1.Left + form1.Width > Screen.Width) then
form1.Left:= Screen.Width - form1.Width;
end
// 当 left 距屏幕下侧 20 像素时,自动隐藏
else if form1.Left + form1.Width - Screen.Width >= -20 then
//将form1向右移,在屏幕右方露出4像素
form1.Left:= Screen.Width - 4;
end;
end.
Delphi中ShellExecute的妙用
功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。
有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。下面举例说明它的用法。
开始一个新的应用程序
ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil, nil, SW_SHOW);
打开记事本,并打开一个文件(系统能识别记事本应用程序的路径,因此我们不必使用绝对路径)
ShellExecute(Handle, 'open', PChar('notepad'), PChar('c:\test\readme.txt'), nil, SW_SHOW);
打印一个文档
ShellExecute(Handle, 'print', PChar('c:\test\test.doc'), nil, nil, SW_SHOW);
注意:可能你会看到word暂时的被打开,但它会自动关闭。
打开一个HTML页面
ShellExecute(Handle, 'open', PChar('http://www.festra.com/'), nil, nil, SW_SHOW);
你能通过一个已经注册的文件类型来打开应用程序
ShellExecute(Handle, 'open', PChar('c:\test\readme.txt'), nil, nil, SW_SHOW);
用windows Explorer 打开一个目录
ShellExecute(Handle, 'explore', PChar('c:\windows)', nil, nil, SW_SHOW);
运行一个DOS命令并立即返回
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c copy file1.txt file2.txt'), nil, SW_SHOW);
运行一个DOS命令并保持DOS窗口存在
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/k dir'), nil, SW_SHOW);
ShellExecute详解
ShellExecute函数用于打开或者打印一个指定的文件。指定的文件必须是可执行文件或者文档文件。
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
)
* Params(参数解释)
Hwnd
指定父窗口句柄。这个窗口接收工程产生的所有消息。例如:一个工程可以通过消息框报告错误。
lpOperation
以一个以null结束的字符串描述操作的执行。以下的操作字符串是有效的:
行号 参数 含义
1 “open” 函数打开由lpFile指定的文件。这个文件必须是可执行文件或者文档文件。文件夹必须是可打开的文件夹。
2 “print” 函数打印由lpFile指定的文件。这个文件应该是文档文件。如果指定的文件是可执行文件,函数将以open的方式打开这个文件。
3 “explore” 函数将搜索由lpFile指定的文件夹。
lpOperation参数如果为null,函数将以open的方式打开由lpFile指定的文件。
lpFile
以一个null结束的字符串描述打开或者打印指定的文件,或者打开或者搜索指定的
文件夹。函数可以打开一个指定的文件或者文件夹,也可以打印一个文档文件。
lpParameters
如果lpFile指定的是一个可执行文件,lpParameters以一个以null结束的字符串指定该执行文件传给应用软件的参数。
行号 参数 含义
1 SW_HIDE 隐藏这个窗体,并激活其他窗体。
2 SW_MAXIMIZE 最大化指定的窗体。
3 SW_MINIMIZE 最小化指定的窗体,并按顺序激活最上层的窗体。
4 SW_RESTORE 激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大小和位置。应用程序当恢复一个最小化的窗体时将指定标记。
5 SW_SHOW 以当前的大小和位置激活并显示窗体。
6 SW_SHOWDEFAULT
7 SW_SHOWMAXIMIZED 激活并最大化显示窗体。
8 SW_SHOWMINIMIZED 激活并最小化现实窗体。
9 SW_SHOWMINNOACTIVE 最小化窗体,保持其激活状态。
10 SW_SHOWNA 以当前状态显示窗体,保持其激活状态。
11 SW_SHOWNOACTIVATE 以当前的大小和位置显示窗体,并保持其激活状态。
12 SW_SHOWNORMAL 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记。
如果lpField指定的是一个文档文件,lpParameters应该为null。
lpDirectory
以一个以null结束的字符串指定文件开始运行的默认目录。
nShowCmd
如果lpField指定了一个可执行文件,nShowCmd指定这个文件在被打开时如何显示。这个参数可以是以下值中的任何一个:
如果lpField指定的是文档文件,nShowCmd应该为0。
* return Values(返回值)
如果函数执行成功,返回值是已经运行的工程的实例句柄,或者动态数据交换服务器应用程序的句柄。
(具体返回值列表从略,请参考Delphi在线帮助)
* Remarks(注释)
被lpFile参数指定的文件必须是一个可执行文件或者文档文件。如果文件是一个文档文件,ShellExecute函数将根据lpOperation参数决定打开或者打印这个文件。如果是可执行文件,ShellExecute函数将打开它,即使lpOperation参数被指定为printing。
你可以使用ShellExecute打开活着搜索一个文件夹。可以使用以下任意一种方式打开一个文件夹:
ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL);
或者
ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL);
使用下面的调用搜索文件夹:
ShellExecute(handle, "explore", path_to_folder, NULL, NULL, SW_SHOWNORMAL)
如果lpOperation参数为null,函数将打开由lpFile指定的文件。如果lpOperation参数为”open”或者”explore”,函数将强制打开窗体或者资源管理器。
注:在新窗口打开网页的办法
ShellExecute(self.Handle, PChar('open'), PChar('explorer'), PChar(URL), nil, SW_MAXIMIZE);
Q: 如何打开一个应用程序?
ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW) ;
或
ShellExecute(this->m_hWnd,"open","notepad.exe",
"c:\MyLog.log","",SW_SHOW);
Q: 如何打开一个同系统程序相关连的文档?
ShellExecute(this->m_hWnd,"open",
"c:\abc.txt","","",SW_SHOW);
Q: 如何打开一个网页?
ShellExecute(this->m_hWnd,"open","http://www.google.com";,"","", SW_SHOW);
Q: 如何激活相关程序,发送EMAIL?
ShellExecute(this->m_hWnd,"open",
"mailto:nishinapp@yahoo.com","","", SW_SHOW);
Q: 如何用系统打印机打印文档?
ShellExecute(this->m_hWnd,"print",
"c:\abc.txt","","", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件?
ShellExecute(m_hWnd,"find","d:\nish",
NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束?
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c:\MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo; //入口参数
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //分配大小
if(CreateProcess("c:\winnt\notepad.exe", NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox("The process could not be started...");
}
Q: 如何显示文件或文件夹的属性?
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof
SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c:\"; //也可以是文件
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL
有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。下面举例说明它的用法。
开始一个新的应用程序
ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil, nil, SW_SHOW);
打开记事本,并打开一个文件(系统能识别记事本应用程序的路径,因此我们不必使用绝对路径)
ShellExecute(Handle, 'open', PChar('notepad'), PChar('c:\test\readme.txt'), nil, SW_SHOW);
打印一个文档
ShellExecute(Handle, 'print', PChar('c:\test\test.doc'), nil, nil, SW_SHOW);
注意:可能你会看到word暂时的被打开,但它会自动关闭。
打开一个HTML页面
ShellExecute(Handle, 'open', PChar('http://www.festra.com/'), nil, nil, SW_SHOW);
你能通过一个已经注册的文件类型来打开应用程序
ShellExecute(Handle, 'open', PChar('c:\test\readme.txt'), nil, nil, SW_SHOW);
用windows Explorer 打开一个目录
ShellExecute(Handle, 'explore', PChar('c:\windows)', nil, nil, SW_SHOW);
运行一个DOS命令并立即返回
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c copy file1.txt file2.txt'), nil, SW_SHOW);
运行一个DOS命令并保持DOS窗口存在
ShellExecute(Handle, 'open', PChar('command.com'), PChar('/k dir'), nil, SW_SHOW);
ShellExecute详解
ShellExecute函数用于打开或者打印一个指定的文件。指定的文件必须是可执行文件或者文档文件。
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
)
* Params(参数解释)
Hwnd
指定父窗口句柄。这个窗口接收工程产生的所有消息。例如:一个工程可以通过消息框报告错误。
lpOperation
以一个以null结束的字符串描述操作的执行。以下的操作字符串是有效的:
行号 参数 含义
1 “open” 函数打开由lpFile指定的文件。这个文件必须是可执行文件或者文档文件。文件夹必须是可打开的文件夹。
2 “print” 函数打印由lpFile指定的文件。这个文件应该是文档文件。如果指定的文件是可执行文件,函数将以open的方式打开这个文件。
3 “explore” 函数将搜索由lpFile指定的文件夹。
lpOperation参数如果为null,函数将以open的方式打开由lpFile指定的文件。
lpFile
以一个null结束的字符串描述打开或者打印指定的文件,或者打开或者搜索指定的
文件夹。函数可以打开一个指定的文件或者文件夹,也可以打印一个文档文件。
lpParameters
如果lpFile指定的是一个可执行文件,lpParameters以一个以null结束的字符串指定该执行文件传给应用软件的参数。
行号 参数 含义
1 SW_HIDE 隐藏这个窗体,并激活其他窗体。
2 SW_MAXIMIZE 最大化指定的窗体。
3 SW_MINIMIZE 最小化指定的窗体,并按顺序激活最上层的窗体。
4 SW_RESTORE 激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大小和位置。应用程序当恢复一个最小化的窗体时将指定标记。
5 SW_SHOW 以当前的大小和位置激活并显示窗体。
6 SW_SHOWDEFAULT
7 SW_SHOWMAXIMIZED 激活并最大化显示窗体。
8 SW_SHOWMINIMIZED 激活并最小化现实窗体。
9 SW_SHOWMINNOACTIVE 最小化窗体,保持其激活状态。
10 SW_SHOWNA 以当前状态显示窗体,保持其激活状态。
11 SW_SHOWNOACTIVATE 以当前的大小和位置显示窗体,并保持其激活状态。
12 SW_SHOWNORMAL 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记。
如果lpField指定的是一个文档文件,lpParameters应该为null。
lpDirectory
以一个以null结束的字符串指定文件开始运行的默认目录。
nShowCmd
如果lpField指定了一个可执行文件,nShowCmd指定这个文件在被打开时如何显示。这个参数可以是以下值中的任何一个:
如果lpField指定的是文档文件,nShowCmd应该为0。
* return Values(返回值)
如果函数执行成功,返回值是已经运行的工程的实例句柄,或者动态数据交换服务器应用程序的句柄。
(具体返回值列表从略,请参考Delphi在线帮助)
* Remarks(注释)
被lpFile参数指定的文件必须是一个可执行文件或者文档文件。如果文件是一个文档文件,ShellExecute函数将根据lpOperation参数决定打开或者打印这个文件。如果是可执行文件,ShellExecute函数将打开它,即使lpOperation参数被指定为printing。
你可以使用ShellExecute打开活着搜索一个文件夹。可以使用以下任意一种方式打开一个文件夹:
ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL);
或者
ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL);
使用下面的调用搜索文件夹:
ShellExecute(handle, "explore", path_to_folder, NULL, NULL, SW_SHOWNORMAL)
如果lpOperation参数为null,函数将打开由lpFile指定的文件。如果lpOperation参数为”open”或者”explore”,函数将强制打开窗体或者资源管理器。
注:在新窗口打开网页的办法
ShellExecute(self.Handle, PChar('open'), PChar('explorer'), PChar(URL), nil, SW_MAXIMIZE);
Q: 如何打开一个应用程序?
ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW) ;
或
ShellExecute(this->m_hWnd,"open","notepad.exe",
"c:\MyLog.log","",SW_SHOW);
Q: 如何打开一个同系统程序相关连的文档?
ShellExecute(this->m_hWnd,"open",
"c:\abc.txt","","",SW_SHOW);
Q: 如何打开一个网页?
ShellExecute(this->m_hWnd,"open","http://www.google.com";,"","", SW_SHOW);
Q: 如何激活相关程序,发送EMAIL?
ShellExecute(this->m_hWnd,"open",
"mailto:nishinapp@yahoo.com","","", SW_SHOW);
Q: 如何用系统打印机打印文档?
ShellExecute(this->m_hWnd,"print",
"c:\abc.txt","","", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件?
ShellExecute(m_hWnd,"find","d:\nish",
NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束?
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c:\MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo; //入口参数
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //分配大小
if(CreateProcess("c:\winnt\notepad.exe", NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox("The process could not be started...");
}
Q: 如何显示文件或文件夹的属性?
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof
SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c:\"; //也可以是文件
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL
Sunday, April 19, 2009
Paper and article website
论文网[http://www.51lw.com(免费论文下载)
论 文 帝国[http://www.papersempire.com(论文资源)
论 文 资料网[http://www.51paper.net(各专业论文下载)
论 文 快车网[http://www.lun-wen.com(各专业论文下载)
毕 业 论文网[http://www.bylw.com(论文发表等,不错的地方)
专 业 论文网[http://www.dtzcb.net/lunwen(专业论文下载,职称考试)
大学生论文库[http://www.syiae.com/lunwen(看看吧挺好)
轻 松 论文网[http://www.paperease.com(论文网站)
易 起 论文网[http://www.17net.net(不错的地方)
<考试资源>
考试163:http://www.test163.com(大量的资格认真考试试题,计算机,英语视听材料)
IT认证考试资源网[http://www.itexamprep.com(大量IT认证考试题库)
中国大学生网[http://www.chinadaxuesheng.com(题库,模拟题,论文,小学大学)
中国考试网网[http://www.sinoexam.com.cn(太多了)
中国考研网[http://www.好好学习,天天校内an.com(想考研究生来看看吧,大量免费资源)
考研网[http://www.kaoyan.net(也是考研的网站,大量免费资源)
中国自考网[http://www.chinazikao.com(自学考试相关资源)
出国考试网[http://www.007test.com(出国考试过关习题等)
天下资源网[http://www.da126.com(出国考试过关习题,英语视听材料等)
<文学艺术>
白鹿书院[http://www.oklink.net(中国最好的网上读书站点,可以投稿赚稿费)
清韵书院[http://www.qingyun.com(有一大型网上读书站点,看看吧)
潇湘书院[http://www.xxsy.net(挺特别的地方,不过品类齐全)
黄金书屋[http://wenxue.myrice.com(网上看书好地方)
新时代书城[http://www.mypcera.com/book(网上看书好地方)
亦凡书库[http://www.yifan.net(网上看书,不错的地方)
校园文学网[http://www.okqq.net(学生读书的好地方)
中国诗人网[http://www.chinapoet.net(看看吧)
山阳书院[http://www.jzinfo.ha.cn/book(挺全的站点)
网天书城[http://www.net-sky.com/book(网上读书,看看吧)
中华电脑书库[http://www.pcbookcn.com(大量计算机方面图书,可以下载)
考试163[http://www.pcbookcn.com(大量考试方面的图书,可以下载)
<外语学习>
择校学习网[http://www.zexiao.com(出国学习外语,咨询等)
163考试网[http://www.test163.com(要过CET的朋友要去看看,还有听力资料啊)
英语之声[http://www.4english.cn(网上学习英语的好地方)
疯狂英语俱乐部[/]http://www.crazyenglish.org想了解疯狂英语吗?)
在线英语杂志[http://www.englishcn.com(不错的地方)
英语写作网[http://www.4ewriting.com(英语协作技巧等)
英语周报[http://www.ew.com.cn(学习英语的好地方)
英语角[http://www.english-corner.com.cn(看看吧)
<简历制作>
飞达简历网[http://www.jianlishop.com(精美的简历设计网站,大量免费资源)
无忧简历网[http://www.51jianli.com(收费简历设计网站)
我的简历网[http://www.wdjl.net(免费提供电子简历)
视频简历网[http://www.cnvhr.com(想试试视频简历吗)
中国简历网[http://www.5520.com(收费简历设计网站)
简历翻译网[http://www.jlok.com(简历翻译到这里,到外企少不了)
点睛简历网[http://www.doteye.com(收费简历设计)
毕业论文完整收集[http://www.xiaonei.com/crasy](最最权威论文)
Someone补:
中文免费论文地址集锦
一、 综合类
1、蓝之韵论文
http://www.21blue.com 门类较全。
2、学生大论文中心
http://www.studa.com/newpaper/
3、蜂朝无忧论文网
http://www.51lunwen.com/main/index.asp
门类很全。
4、论文下载中心
http://www.studa.net/paper/
门类很全。
5、论文帝国
http://www.papersempire.com/
二、 教育类
1、教研论文交流中心
http://www.k12.com.cn/teacher/resource/lunwen/
以中小学教育为主,基础教育、英语教学文章居多。
2、教育教学论文网
http://www.minaol.com/gb/art/ttd/index.asp
以教育论文为主,包含:语文论文 美术论文 物理论文
化学论文 英语论文 历史论文 德育论文 教学论文
数学论文 音乐论文 生物论文 自然论文 体育论文
地理论文 摄影论文 劳动技术 农村教育 毕业论文
素质论文 医学论文 电子电器学 思维科学 计算机论文
活动课教学 书法篆刻论文 创新教育研究 心理健康教育
西部教育论文 信息技术论文
3、教育论文
http://dhzyzz.porcelain-china.com/teach.asp
4、中国园丁网论文大观
http://www.teacher.net.cn/papers
5、北大附小学校教师的文章:
http://www.bdfx.net.cn/5jslw.htm
三、 专业类
1、优秀论文杂志
http://www.interpapers.com/kj/
以科技类为主。
2、论文资料网
http://www.51paper.net/
以财经经济管理类为主。
3、法律图书馆
http://www.law-lib.com/
文如其名。
4、法学论文资料库
http://www.law-lib.com/lw/
文如其名。
5、中国总经理网论文集
http://www.cnceo.com/school/lwj.asp
6、mba职业经理人论坛
http://mba.001.com.cn/mbamba.htm
7、中国农业在线-农业论文
http://www.agrionline.net.cn/keji/lunwenzy/
8、体育论文
http://www.zxty.net/product4.htm
9、财经学位论文下载中心
http://www.forumcn.com/sblw/
10、公开发表论文_深圳证券交易所
http://www.sse.org.cn/sse/yjkw/gkfblw.asp
11、中国路桥资讯网论文资料中心
http://www.lqzx.com/lunwen.htm
12、论文商务中心
http://doc.cei.gov.cn/
13、法律帝国:
http://www.fl365.com/gb/lawthinker/bbs/default.asp
四、 论文写作教学类
1、学术论文
http://www.hrexam.com/advanced1.htm
其实是学术论文的写作网站。
五、 博硕士论文
1、论文统计
http://www.sci.com.cn/
实际上就是万方的论文统计。
2、台湾博硕士论文咨讯网
http://datas.ncl.edu.tw/theabs/00/
3、北京大学学位论文样本收藏
http://www.lib.pku.edu.cn/xwlw.html
4、学位论文 (清华大学)
http://www.lib.tsinghua.edu.cn/new/thesis.html
中国科技论文在线http://www.paper.edu.cn/
论文中国 :http://www.chinawrite.com/
新浪论文网分类:http://dir.sina.com.cn/search_dir/jy/lw/
中国论文联盟:http://www.lwlm.com/
大学生论文库http://www.syiae.com/lunwen
论文资料网:http://www.51paper.net/
论文下载中心:http://www.studa.net/paper/
毕业论文网:http://www.bylw.com/
学位论文:http://www.lib.tsinghua.edu.cn/NEW/thesis.html
无忧论文网:http://www.51lunwen.com/
北京语言文化大学论文库:http://lib.blcu.edu.cn/dt1000/bys/bys.htm
论 文 帝国[http://www.papersempire.com(论文资源)
论 文 资料网[http://www.51paper.net(各专业论文下载)
论 文 快车网[http://www.lun-wen.com(各专业论文下载)
毕 业 论文网[http://www.bylw.com(论文发表等,不错的地方)
专 业 论文网[http://www.dtzcb.net/lunwen(专业论文下载,职称考试)
大学生论文库[http://www.syiae.com/lunwen(看看吧挺好)
轻 松 论文网[http://www.paperease.com(论文网站)
易 起 论文网[http://www.17net.net(不错的地方)
<考试资源>
考试163:http://www.test163.com(大量的资格认真考试试题,计算机,英语视听材料)
IT认证考试资源网[http://www.itexamprep.com(大量IT认证考试题库)
中国大学生网[http://www.chinadaxuesheng.com(题库,模拟题,论文,小学大学)
中国考试网网[http://www.sinoexam.com.cn(太多了)
中国考研网[http://www.好好学习,天天校内an.com(想考研究生来看看吧,大量免费资源)
考研网[http://www.kaoyan.net(也是考研的网站,大量免费资源)
中国自考网[http://www.chinazikao.com(自学考试相关资源)
出国考试网[http://www.007test.com(出国考试过关习题等)
天下资源网[http://www.da126.com(出国考试过关习题,英语视听材料等)
<文学艺术>
白鹿书院[http://www.oklink.net(中国最好的网上读书站点,可以投稿赚稿费)
清韵书院[http://www.qingyun.com(有一大型网上读书站点,看看吧)
潇湘书院[http://www.xxsy.net(挺特别的地方,不过品类齐全)
黄金书屋[http://wenxue.myrice.com(网上看书好地方)
新时代书城[http://www.mypcera.com/book(网上看书好地方)
亦凡书库[http://www.yifan.net(网上看书,不错的地方)
校园文学网[http://www.okqq.net(学生读书的好地方)
中国诗人网[http://www.chinapoet.net(看看吧)
山阳书院[http://www.jzinfo.ha.cn/book(挺全的站点)
网天书城[http://www.net-sky.com/book(网上读书,看看吧)
中华电脑书库[http://www.pcbookcn.com(大量计算机方面图书,可以下载)
考试163[http://www.pcbookcn.com(大量考试方面的图书,可以下载)
<外语学习>
择校学习网[http://www.zexiao.com(出国学习外语,咨询等)
163考试网[http://www.test163.com(要过CET的朋友要去看看,还有听力资料啊)
英语之声[http://www.4english.cn(网上学习英语的好地方)
疯狂英语俱乐部[/]http://www.crazyenglish.org想了解疯狂英语吗?)
在线英语杂志[http://www.englishcn.com(不错的地方)
英语写作网[http://www.4ewriting.com(英语协作技巧等)
英语周报[http://www.ew.com.cn(学习英语的好地方)
英语角[http://www.english-corner.com.cn(看看吧)
<简历制作>
飞达简历网[http://www.jianlishop.com(精美的简历设计网站,大量免费资源)
无忧简历网[http://www.51jianli.com(收费简历设计网站)
我的简历网[http://www.wdjl.net(免费提供电子简历)
视频简历网[http://www.cnvhr.com(想试试视频简历吗)
中国简历网[http://www.5520.com(收费简历设计网站)
简历翻译网[http://www.jlok.com(简历翻译到这里,到外企少不了)
点睛简历网[http://www.doteye.com(收费简历设计)
毕业论文完整收集[http://www.xiaonei.com/crasy](最最权威论文)
Someone补:
中文免费论文地址集锦
一、 综合类
1、蓝之韵论文
http://www.21blue.com 门类较全。
2、学生大论文中心
http://www.studa.com/newpaper/
3、蜂朝无忧论文网
http://www.51lunwen.com/main/index.asp
门类很全。
4、论文下载中心
http://www.studa.net/paper/
门类很全。
5、论文帝国
http://www.papersempire.com/
二、 教育类
1、教研论文交流中心
http://www.k12.com.cn/teacher/resource/lunwen/
以中小学教育为主,基础教育、英语教学文章居多。
2、教育教学论文网
http://www.minaol.com/gb/art/ttd/index.asp
以教育论文为主,包含:语文论文 美术论文 物理论文
化学论文 英语论文 历史论文 德育论文 教学论文
数学论文 音乐论文 生物论文 自然论文 体育论文
地理论文 摄影论文 劳动技术 农村教育 毕业论文
素质论文 医学论文 电子电器学 思维科学 计算机论文
活动课教学 书法篆刻论文 创新教育研究 心理健康教育
西部教育论文 信息技术论文
3、教育论文
http://dhzyzz.porcelain-china.com/teach.asp
4、中国园丁网论文大观
http://www.teacher.net.cn/papers
5、北大附小学校教师的文章:
http://www.bdfx.net.cn/5jslw.htm
三、 专业类
1、优秀论文杂志
http://www.interpapers.com/kj/
以科技类为主。
2、论文资料网
http://www.51paper.net/
以财经经济管理类为主。
3、法律图书馆
http://www.law-lib.com/
文如其名。
4、法学论文资料库
http://www.law-lib.com/lw/
文如其名。
5、中国总经理网论文集
http://www.cnceo.com/school/lwj.asp
6、mba职业经理人论坛
http://mba.001.com.cn/mbamba.htm
7、中国农业在线-农业论文
http://www.agrionline.net.cn/keji/lunwenzy/
8、体育论文
http://www.zxty.net/product4.htm
9、财经学位论文下载中心
http://www.forumcn.com/sblw/
10、公开发表论文_深圳证券交易所
http://www.sse.org.cn/sse/yjkw/gkfblw.asp
11、中国路桥资讯网论文资料中心
http://www.lqzx.com/lunwen.htm
12、论文商务中心
http://doc.cei.gov.cn/
13、法律帝国:
http://www.fl365.com/gb/lawthinker/bbs/default.asp
四、 论文写作教学类
1、学术论文
http://www.hrexam.com/advanced1.htm
其实是学术论文的写作网站。
五、 博硕士论文
1、论文统计
http://www.sci.com.cn/
实际上就是万方的论文统计。
2、台湾博硕士论文咨讯网
http://datas.ncl.edu.tw/theabs/00/
3、北京大学学位论文样本收藏
http://www.lib.pku.edu.cn/xwlw.html
4、学位论文 (清华大学)
http://www.lib.tsinghua.edu.cn/new/thesis.html
中国科技论文在线http://www.paper.edu.cn/
论文中国 :http://www.chinawrite.com/
新浪论文网分类:http://dir.sina.com.cn/search_dir/jy/lw/
中国论文联盟:http://www.lwlm.com/
大学生论文库http://www.syiae.com/lunwen
论文资料网:http://www.51paper.net/
论文下载中心:http://www.studa.net/paper/
毕业论文网:http://www.bylw.com/
学位论文:http://www.lib.tsinghua.edu.cn/NEW/thesis.html
无忧论文网:http://www.51lunwen.com/
北京语言文化大学论文库:http://lib.blcu.edu.cn/dt1000/bys/bys.htm
Saturday, April 11, 2009
Funny animate caption in delphi about
Drop a button (TButton named "AnimateButton"), a label (TLabel named "lblText") and an edit (TEdit named "editToAnimate") control on a form (named "AnimationForm").
Handle the button's OnClick event:
procedure TAnimationForm.AnimateButtonClick(Sender: TObject) ;
var
c, charInProcess : char;
word : string;
begin
lblText.Caption := '';
for c in editToAnimate.Text do
begin
for charInProcess in ['a' .. c] do
begin
lblText.Caption := word + charInProcess;
lblText.Refresh;
Sleep(100) ;
Application.ProcessMessages;
end;
word := word + c;
end;
lblText.Caption := word;
end;
Handle the button's OnClick event:
procedure TAnimationForm.AnimateButtonClick(Sender: TObject) ;
var
c, charInProcess : char;
word : string;
begin
lblText.Caption := '';
for c in editToAnimate.Text do
begin
for charInProcess in ['a' .. c] do
begin
lblText.Caption := word + charInProcess;
lblText.Refresh;
Sleep(100) ;
Application.ProcessMessages;
end;
word := word + c;
end;
lblText.Caption := word;
end;
Tuesday, April 07, 2009
dynamic create a object in delphi
with TEdit.Create(Self) do
begin
Parent := Self;
Text := 'Hello';
Width := 200;
Top := 100;
Left := 100;
end
begin
Parent := Self;
Text := 'Hello';
Width := 200;
Top := 100;
Left := 100;
end
Saturday, April 04, 2009
all the function about string in delphi
uses StrUtils;【字符串函数大全】
首部 function AnsiResemblesText(const AText, AOther: string): Boolean;
$[StrUtils.pas
功能 返回两个字符串是否相似
说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写
参考 function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc
例子 CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiContainsText(const AText, ASubText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否包含子串ASubText
说明 不区分大小写
参考 function StrUtils.AnsiUppercase; function StrUtils.AnsiPos
例子 CheckBox1.Checked := AnsiContainsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStartsText(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText开头
说明 不区分大小写
参考 function Windows.CompareString
例子 CheckBox1.Checked := AnsiStartsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiEndsText(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText结尾
说明 不区分大小写
参考 function Windows.CompareString
例子 CheckBox1.Checked := AnsiEndsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiReplaceText(const AText, AFromText, AToText: string):
string; $[StrUtils.pas
功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
说明 不区分大小写
参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
例子 Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiMatchText(const AText: string; const AValues: array of
string): Boolean; $[StrUtils.pas
功能 返回字符串数组AValues中是否包含字符串AText
说明 不区分大小写
参考 function StrUtils.AnsiIndexText
例子 CheckBox1.Checked := AnsiMatchText(Edit1.Text, ['a1', 'a2', 'a3',
'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiIndexText(const AText: string; const AValues: array of
string): Integer; $[StrUtils.pas
功能 返回字符串AText在字符串数组AValues中的位置
说明 不区分大小写;如果不包含则返回-1
参考 function SysUtils.AnsiSameText
例子 SpinEdit1.Value := AnsiIndexText(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiContainsStr(const AText, ASubText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否包含子串ASubText
说明 区分大小写
参考 function StrUtils.AnsiPos
例子 CheckBox1.Checked := AnsiContainsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStartsStr(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText开头
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 CheckBox1.Checked := AnsiStartsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiEndsStr(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText结尾
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 CheckBox1.Checked := AnsiEndsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiReplaceStr(const AText, AFromText, AToText: string):
string; $[StrUtils.pas
功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
说明 区分大小写
参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
例子 Edit4.Text := AnsiReplaceStr(Edit1.Text, Edit2.Text, Edit3.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiMatchStr(const AText: string; const AValues: array of
string): Boolean; $[StrUtils.pas
功能 返回字符串数组AValues中是否包含字符串AText
说明 区分大小写
参考 function StrUtils.AnsiIndexStr
例子 CheckBox1.Checked := AnsiMatchStr(Edit1.Text, ['a1', 'a2', 'a3',
'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiIndexStr(const AText: string; const AValues: array of
string): Integer; $[StrUtils.pas
功能 返回字符串AText在字符串数组AValues中的位置
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 SpinEdit1.Value := AnsiIndexStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function DupeString(const AText: string; ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText的ACount个复本
说明 当ACount为0时返回'
参考 function System.SetLength
例子 Edit3.Text := DupeString(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function ReverseString(const AText: string): string; $[StrUtils.pas
功能 返回字符串AText的反序
说明 ReverseString('1234') = '4321'
参考 function System.SetLength
例子 Edit3.Text := ReverseString(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StuffString(const AText: string; AStart, ALength: Cardinal;
const ASubText: string): string; $[StrUtils.pas
功能 返回嵌套字符串
说明 AStart:嵌套开始位置;ALength:嵌套长度;StuffString('abcd', 2, 0, '12') = 'a12bcd'
参考 function System.Copy
例子 Edit3.Text := StuffString(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value,
Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function RandomFrom(const AValues: array of string): string; overload;
$[StrUtils.pas
功能 随机返回字符串数组AValues中的一个元素
说明 之前建议执行Randomize
参考 function System.Random
例子 Randomize; Edit3.Text := RandomFrom(['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function IfThen(AValue: Boolean; const ATrue: string; AFalse: string =
'): string; overload; $[StrUtils.pas
功能 返回指定的逻辑字符串
说明 IfThen(True, '是', '否') = '是';IfThen(False, '是', '否') = '否'
参考
例子 Edit3.Text := IfThen(CheckBox1.Checked, Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function LeftStr(const AText: string; const ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText左边的ACount个字符
说明 LeftStr('123456', 3) = '123'
参考 function System.Copy
例子 Edit3.Text := LeftStr(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function RightStr(const AText: string; const ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText右边的ACount个字符
说明 RightStr('123456', 3) = '456'
参考 function System.Copy
例子 Edit3.Text := RightStr(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function MidStr(const AText: string; const AStart, ACount: Integer):
string; $[StrUtils.pas
功能 返回字符串AText从AStart开始的ACount个字符
说明 其实就是Copy
参考 function System.Copy
例子 Edit3.Text := MidStr(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength:
Integer; SearchString: String; Options: TStringSearchOptions = [soDown]):
PChar; $[StrUtils.pas
功能 返回第一个搜索到的指针位置
说明 这函数常用于文本中搜索字符串
参考
例子
///////Begin SearchBuf
function SearchEdit(EditControl: TCustomEdit; const SearchString: String;
SearchOptions: TStringSearchOptions; FindFirst: Boolean = False): Boolean;
var
Buffer, P: PChar;
Size: Word;
begin
Result := False;
if (Length(SearchString) = 0) then Exit;
Size := EditControl.GetTextLen;
if (Size = 0) then Exit;
Buffer := StrAlloc(Size + 1);
try
EditControl.GetTextBuf(Buffer, Size + 1);
P := SearchBuf(Buffer, Size, EditControl.SelStart, EditControl.SelLength,
SearchString, SearchOptions);
if P <> nil then begin
EditControl.SelStart := P - Buffer;
EditControl.SelLength := Length(SearchString);
Result := True;
end;
finally
StrDispose(Buffer);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SearchOptions: TStringSearchOptions;
begin
SearchOptions := [];
if CheckBox1.Checked then
Include(SearchOptions, soDown);
if CheckBox2.Checked then
Include(SearchOptions, soMatchCase);
if CheckBox3.Checked then
Include(SearchOptions, soWholeWord);
SearchEdit(Memo1, Edit1.Text, SearchOptions);
Memo1.SetFocus;
end;
///////End SearchBuf
━━━━━━━━━━━━━━━━━━━━━
首部 function Soundex(const AText: string; ALength: TSoundexLength = 4):
string; $[StrUtils.pas
功能 返回探测字符串
说明 根据探测法(Soundex)可以找到相进的字符串;http://www.nara.gov/genealogy/coding.html
参考
例子 Edit2.Text := Soundex(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexInt(const AText: string; ALength: TSoundexIntLength =
4): Integer; $[StrUtils.pas
功能 返回探测整数
说明 ALength的值越大解码准确率越高
参考
例子 SpinEdit2.Value := SoundexInt(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function DecodeSoundexInt(AValue: Integer): string; $[StrUtils.pas
功能 返回探测整数的解码
说明 DecodeSoundexInt(SoundexInt('hello')) 相当于 Soundex('hello')
参考
例子 Edit2.Text := DecodeSoundexInt(SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexWord(const AText: string): Word; $[StrUtils.pas
功能 返回探测文字数值
说明 没有参数ALength已经固定为4
参考
例子 SpinEdit2.Value := SoundexWord(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function DecodeSoundexWord(AValue: Word): string; $[StrUtils.pas
功能 返回探测文字数值的解码
说明 DecodeSoundexWord(SoundexWord('hello')) 相当于 Soundex('hello')
参考
例子 Edit2.Text := DecodeSoundexWord(SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexSimilar(const AText, AOther: string; ALength:
TSoundexLength = 4): Boolean; $[StrUtils.pas
功能 返回两个字符串的探测字符串是否相同
说明 Result := Soundex(AText, ALength) = Soundex(AOther, ALength)
参考
例子 CheckBox1.Checked := SoundexSimilar(Edit1.Text, Edit2.Text,
SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexCompare(const AText, AOther: string; ALength:
TSoundexLength = 4): Integer; $[StrUtils.pas
功能 返回比较两个字符串的探测字符串的结果
说明 Result := AnsiCompareStr(Soundex(AText, ALength), Soundex(AOther,
ALength))
参考 function SysUtils.AnsiCompareStr
例子 SpinEdit2.Value := SoundexCompare(Edit1.Text, Edit2.Text,
SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexProc(const AText, AOther: string): Boolean;
$[StrUtils.pas
功能 调用SoundexSimilar返回两个字符串的探测字符串是否相同
说明 系统变量AnsiResemblesProc的默认值
参考 function StrUtils.AnsiResemblesText
例子 [var AnsiResemblesProc: TCompareTextProc = SoundexProc;]
━━━━━━━━━━━━━━━━━━━━━
首部 function NewStr(const S: string): PString; deprecated; $[SysUtils.pas
功能 返回一个新的字符串指针地址
说明 字符串S为空时返回NullStr
参考 procedure System.New
例子
////////Begin NewStr,DisposeStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PString;
begin
P := NewStr(Edit1.Text);
Edit2.Text := P^;
DisposeStr(P);
end;
////////End NewStr,DisposeStr
━━━━━━━━━━━━━━━━━━━━━
首部 procedure DisposeStr(P: PString); deprecated; $[SysUtils.pas
功能 释放字符串指针P资源
说明 配合函数NewStr使用
参考 procedure System.Dispose
例子 <如上参见,如下参见>
━━━━━━━━━━━━━━━━━━━━━
首部 procedure AssignStr(var P: PString; const S: string); deprecated;
$[SysUtils.pas
功能 将字符串S更新给字符串指针P
说明 更新值时会释放以前字符串指针的资源
参考 function SysUtils.NewStr;function SysUtils.DisposeStr
例子
////////Begin AssignStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PString;
begin
P := nil;
AssignStr(P, Edit1.Text);
Edit2.Text := P^;
DisposeStr(P);
end;
////////End AssignStr
━━━━━━━━━━━━━━━━━━━━━
首部 procedure AppendStr(var Dest: string; const S: string); deprecated;
$[SysUtils.pas
功能 在字符串Dest后追加字符串S
说明 相当于Dest := Dest + S;Delphi6已经不建议使用
参考
例子
////////Begin AppendStr
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := Edit2.Text;
AppendStr(S, Edit1.Text);
Edit2.Text := S;
end;
////////End AppendStr
━━━━━━━━━━━━━━━━━━━━━
首部 function UpperCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的大写形式
说明 非小写字符不处理
参考 procedure System.SetLength
例子 Edit2.Text := UpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function LowerCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的小写形式
说明 非大写字符不处理
参考 procedure System.SetLength
例子 Edit2.Text := LowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareStr(const S1, S2: string): Integer; $[SysUtils.pas
功能 返回比较两个字符
说明 当S1>S2返回值>0;当S1 参考
例子 SpinEdit1.Value := CompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareMem(P1, P2: Pointer; Length: Integer): Boolean;
assembler; $[SysUtils.pas
功能 返回比较两个内存指针
说明 CompareMem(PChar('12a'), PChar('12c'), 2)=True;CompareMem(PChar('12a'),
PChar('12c'), 3)=False
参考
例子 CheckBox1.Checked := CompareMem(Self, Form1, 8);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareText(const S1, S2: string): Integer; $[SysUtils.pas
功能 返回比较两个字符串
说明 不区分大小写
参考
例子 SpinEdit1.Value := CompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function SameText(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 不区分大小写
参考
例子 CheckBox1.Checked := SameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiUpperCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的大写形式
说明 ANSI(American National Standards Institute)美国国家标准协会;非小写的字符不变
参考 function Windows.CharUpperBuff
例子 Edit2.Text := AnsiUpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiLowerCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的小写形式
说明 非大写字符不处理
参考 function Windows.CharLowerBuff
例子 Edit2.Text := AnsiLowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiCompareStr(const S1, S2: string): Integer; $[SysUtils.pas
功能 反回比较两个字符串
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareString
例子 SpinEdit1.Value := AnsiCompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiSameStr(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 区分大小写
参考 function SysUtils.AnsiCompareStr
例子 CheckBox1.Checked := AnsiSameStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiCompareText(const S1, S2: string): Integer; $[SysUtils.pas
功能 反回比较两个字符串
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareString
例子 SpinEdit1.Value := AnsiCompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiSameText(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 不区分大小写
参考 function SysUtils.AnsiCompareText
例子 CheckBox1.Checked := AnsiSameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrComp(S1, S2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1 参考 function System.CompareString
例子 SpinEdit1.Value := AnsiStrComp(PChar(Edit1.Text), PChar(Edit2.Text))
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrIComp(S1, S2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareString
例子 SpinEdit1.Value := AnsiStrIComp(PChar(Edit1.Text), PChar(Edit2.Text))
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLComp(S1, S2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareString
例子 SpinEdit1.Value := AnsiStrLComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLIComp(S1, S2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareString
例子 SpinEdit1.Value := AnsiStrLIComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLower(Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串小写形式
说明 非大写字符不处理
参考 function Windows.CharLower
例子 Edit2.Text := AnsiStrLower(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrUpper(Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串大写形式
说明 非小写字符不处理
参考 function Windows.CharUpper
例子 Edit2.Text := AnsiStrUpper(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiLastChar(const S: string): PChar; $[SysUtils.pas
功能 返回字符串S的最后一个指针字符
说明 当字符串S为空串则返回空指针
参考 function SysUtils.ByteType
例子 Edit2.Text := AnsiLastChar(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLastChar(P: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串P的最后一个指针字符
说明 当字符串P为空空指针则返回空指针
参考 function SysUtils.ByteType
例子 Edit2.Text := AnsiLastChar(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function WideUpperCase(const S: WideString): WideString; $[SysUtils.pas
功能 返回双字节字符串的大写形式
说明 WideChar双字节字符
参考 function Windows.CharUpperBuffW
例子 Edit2.Text := WideUpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideLowerCase(const S: WideString): WideString; $[SysUtils.pas
功能 返回双字节字符串的小写形式
说明 我怎么就测试不出来呢
参考 function Windows.CharLowerBuffW
例子 Edit2.Text := WideLowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideCompareStr(const S1, S2: WideString): Integer;
$[SysUtils.pas
功能 返回比较两个双字节字符串
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareStringW
例子 SpinEdit1.Value := WideCompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideSameStr(const S1, S2: WideString): Boolean; $[SysUtils.pas
功能 返回两个双字节字符串是否相同
说明 区分大小写
参考 function SysUtils.WideCompareStr
例子 CheckBox1.Checked := WideSameStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideCompareText(const S1, S2: WideString): Integer;
$[SysUtils.pas
功能 返回比较两个双字节字符串
说明 当S1>S2返回值>0;当S1 参考 function Windows.CompareStringW
例子 SpinEdit1.Value := WideCompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideSameText(const S1, S2: WideString): Boolean;
$[SysUtils.pas
功能 返回两个双字节字符串是否相同
说明 不区分大小写
参考 function SysUtils.WideCompareText
例子 CheckBox1.Checked := WideSameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function Trim(const S: string): string; overload; $[SysUtils.pas
首部 function Trim(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S左右不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := Trim(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function TrimLeft(const S: string): string; overload; $[SysUtils.pas
首部 function TrimLeft(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S左边不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := TrimLeft(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function TrimRight(const S: string): string; overload; $[SysUtils.pas
首部 function TrimRight(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S右边不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := TrimRight(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function QuotedStr(const S: string): string; $[SysUtils.pas
功能 返回字符串S在pascal中的表现形式
说明 单引号中的一个单引号将转成两个
参考 procedure System.Insert
例子 Edit2.Text := QuotedStr(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiQuotedStr(const S: string; Quote: Char): string;
$[SysUtils.pas
功能 返回字符串S以字符Quote为引号的表现形式
说明 AnsiQuotedStr('hello"world',
'@')='@hello"world@';AnsiQuotedStr('hello"world', '"')='"hello""world"'
参考 function SysUtils.AnsiStrScan
例子 Edit2.Text := AnsiQuotedStr(Edit1.Text, '"');
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string;
$[SysUtils.pas
功能 返回以字符Quote为引号的表现形式原形
说明 表现形式非法时Src不变否则为空
参考 function SysUtils.AnsiStrScan
例子
///////Begin AnsiExtractQuotedStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PChar;
begin
P := PChar(Edit1.Text);
Edit2.Text := AnsiExtractQuotedStr(P, '"');
Edit3.Text := P;
end;
///////End AnsiExtractQuotedStr
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiDequotedStr(const S: string; AQuote: Char): string;
$[SysUtils.pas
功能 返回以字符AQuote为引号的表现形式原形
说明 表现形式非法时则返回S
参考 function SysUtils.AnsiExtractQuotedStr
例子 Edit2.Text := AnsiDequotedStr(Edit1.Text, '"');
━━━━━━━━━━━━━━━━━━━━━
首部 function AdjustLineBreaks(const S: string; Style: TTextLineBreakStyle =
{$IFDEF LINUX} tlbsLF {$ENDIF} {$IFDEF MSWINDOWS} tlbsCRLF {$ENDIF}):
string; $[SysUtils.pas
功能 返回将给定字符串的行分隔符调整为CR/LF序列
说明
AdjustLineBreaks('1'#13'2'#13)='1'#13#10'2'#13#10;AdjustLineBreaks('1'#10'2'#10)='1'#13#10'2'#13#10
参考 function SysUtils.StrNextChar
例子
━━━━━━━━━━━━━━━━━━━━━
首部 function IsValidIdent(const Ident: string): Boolean; $[SysUtils.pas
功能 返回字符串Ident是否是正确的标识符
说明 标识符::字母|下划线[字母|下划线|数字]...
参考
例子 CheckBox1.Checked := IsValidIdent(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function IntToStr(Value: Integer): string; overload; $[SysUtils.pas
首部 function IntToStr(Value: Int64): string; overload; $[SysUtils.pas
功能 返回整数Value转换成字符串
说明 Format('%d', [Value])
参考 function SysUtils.FmtStr
例子 Edit2.Text := IntToStr(SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function IntToHex(Value: Integer; Digits: Integer): string; overload;
$[SysUtils.pas
首部 function IntToHex(Value: Int64; Digits: Integer): string; overload;
$[SysUtils.pas
功能 返回整数Value转换成十六进制表现结果;Format('%.*x', [Digits, Value])
说明 参数Digits指定字符最小宽度;最小宽度不足时将用0填充
参考 function SysUtils.FmtStr
例子 Edit2.Text := IntToHex(SpinEdit1.Value, SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt(const S: string): Integer; $[SysUtils.pas
功能 返回字符串S转换成整数
说明 字符串非整数表达时将引起异常
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToIntDef(const S: string; Default: Integer): Integer;
$[SysUtils.pas
功能 返回字符串S转换成整数
说明 字符串非整数表达时则返回默认值Default
参考 procedure System.Val
例子 SpinEdit1.Value := StrToIntDef(Edit1.Text, 0);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToInt(const S: string; out Value: Integer): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成整数Value是否成功
说明 字符串非整数表达时返回False并且Value将输出为0
参考 procedure System.Val
例子
///////Begin TryStrToInt
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
CheckBox1.Checked := TryStrToInt(Edit1.Text, I);
SpinEdit1.Value := I;
end;
///////End TryStrToInt
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt64(const S: string): Int64; $[SysUtils.pas
功能 返回字符串S转换成六十四位整数
说明 字符串非六十四位整数表达时将引起异常
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt64(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt64Def(const S: string; const Default: Int64): Int64;
$[SysUtils.pas
功能 返回字符串S转换成六十四位整数
说明 字符串非六十四位整数表达时则返回默认值Default
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt64Def(Edit1.Text, 0);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToInt64(const S: string; out Value: Int64): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成六十四位整数Value是否成功
说明 字符串非六十四位整数表达时返回False并且Value将输出为0
参考 procedure System.Val
例子
///////Begin TryStrToInt64
procedure TForm1.Button1Click(Sender: TObject);
var
I: Int64;
begin
CheckBox1.Checked := TryStrToInt64(Edit1.Text, I);
SpinEdit1.Value := I;
end;
///////End TryStrToInt64
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToBool(const S: string): Boolean; $[SysUtils.pas
功能 返回字符串S转换成逻辑值
说明 字符非逻辑表达时将引起异常
参考 function SysUtils.TryStrToBool
例子 CheckBox1.Checked := StrToBool(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToBoolDef(const S: string; const Default: Boolean):
Boolean; $[SysUtils.pas
功能 返回字符串S转换成逻辑值
说明 字符非逻辑表达时则返回默认值Default
参考 function SysUtils.TryStrToBool
例子 CheckBox1.Checked := StrToBoolDef(Edit1.Text, False);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToBool(const S: string; out Value: Boolean): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成逻辑值Value是否成功
说明 [注意]0为假非0为真;不是'True'和'False';Delphi6 Bug 如下修正
参考 function SysUtils.AnsiSameText;var SysUtils.TrueBoolStrs;var
SysUtils.FalseBoolStrs
例子
///////Begin TryStrToBool
procedure TForm1.Button1Click(Sender: TObject);
var
B: Boolean;
begin
SetLength(TrueBoolStrs, 2);
SetLength(FalseBoolStrs, 2);
TrueBoolStrs[0] := 'True';
FalseBoolStrs[0] := 'False';
TrueBoolStrs[1] := 'Yes';
FalseBoolStrs[1] := 'No';
CheckBox1.Checked := TryStrToBool(Edit1.Text, B);
CheckBox2.Checked := B;
end;
///////End TryStrToBool
附加
///////Begin TryStrToBool
function TryStrToBool(const S: string; out Value: Boolean): Boolean;
function CompareWith(const aArray: array of string): Boolean;
var
I: Integer;
begin
Result := False;
for I := Low(aArray) to High(aArray) do
if AnsiSameText(S, aArray[I]) then
begin
Result := True;
Break;
end;
end;
var
LResult: Extended;
begin
Result := TryStrToFloat(S, LResult);
if Result then
Value := LResult <> 0
else
begin
Result := True; //修正处
VerifyBoolStrArray;
if CompareWith(TrueBoolStrs) then
Value := True
else if CompareWith(FalseBoolStrs) then
Value := False
else
Result := False;
end;
end;
///////End TryStrToBool
━━━━━━━━━━━━━━━━━━━━━
首部 function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
$[SysUtils.pas
功能 返回逻辑值B转换成字符串
说明 BoolToStr(False, False)='0';BoolToStr(False, True)='-1'
参考 var SysUtils.TrueBoolStrs;var SysUtils.FalseBoolStrs
例子 Edit1.Text := BoolToStr(CheckBox1.Checked, CheckBox2.Checked);
━━━━━━━━━━━━━━━━━━━━━
首部 function LoadStr(Ident: Integer): string; $[SysUtils.pas
功能 返回根据标识Ident的字符串资源
说明 字符串资源是指程序的内部资源
参考 function SysUtils.FindStringResource
例子 Edit2.Text := LoadStr(StrToIntDef(Edit1.Text, 0));
━━━━━━━━━━━━━━━━━━━━━
首部 function FmtLoadStr(Ident: Integer; const Args: array of const):
string; $[SysUtils.pas
功能 返回格式化的字符串资源
说明 字符串资源是指程序的内部资源
参考 function SysUtils.FmtStr;function SysUtils.FindStringResource
例子;
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLen(const Str: PChar): Cardinal; $[SysUtils.pas
功能 返回指针字符串的长度
说明 当指针字符串Str为nil时将触发异常
参考
例子 SpinEdit2.Value := StrLen(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrEnd(const Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串的结尾
说明 当指针字符串Str为nil时将触发异常
参考
例子 Edit2.Text := StrEnd(PChar(Edit1.Text)) - SpinEdit1.Value;
━━━━━━━━━━━━━━━━━━━━━
首部 function StrMove(Dest: PChar; const Source: PChar; Count: Cardinal):
PChar; $[SysUtils.pas
功能 返回将指针字符串Source指定内存数量Count复制覆盖到指针字符串Dest中
说明 Dest没有分配资源将触发异常s
参考 function System.Move
例子
///////Begin StrMove
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: PChar;
begin
vBuffer := '0123456789';
StrMove(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrMove
━━━━━━━━━━━━━━━━━━━━━
首部 function StrCopy(Dest: PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中
说明 Dest应已经分配足够的空间非则将触发异常
参考
例子
///////Begin StrCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: PChar;
begin
GetMem(vBuffer, Length(Edit1.Text) + 1);
StrCopy(vBuffer, PChar(Edit1.Text));
Edit2.Text := vBuffer;
FreeMem(vBuffer);
end;
///////End StrCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrECopy(Dest:PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中的结尾
说明 可以连接指针字符串
参考
例子
///////Begin StrECopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrECopy(StrECopy(vBuffer, PChar(Edit1.Text)), PChar(Edit2.Text));
Edit3.Text := vBuffer;
end;
///////End StrECopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: Cardinal):
PChar; $[SysUtils.pas
功能 返回将指针字符串Source指定长度MaxLen复制到指针字符串Dest中
说明 Dest应已经分配足够的空间非则将触发异常
参考
例子
///////Begin StrLCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrLCopy(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrLCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrPCopy(Dest: PChar; const Source: string): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中
说明 StrLCopy(Dest, PChar(Source), Length(Source))
参考 function SysUtils.StrLCopy
例子
///////Begin StrPCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, PChar(Edit1.Text));
Edit2.Text := vBuffer;
end;
///////End StrPCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrPLCopy(Dest: PChar; const Source: string; MaxLen:
Cardinal): PChar; $[SysUtils.pas
功能 返回将字符串Source指定长度MaxLen复制到指针字符串Dest中
说明 StrLCopy(Dest, PChar(Source), MaxLen)
参考 function SysUtils.StrLCopy
例子
///////Begin StrPLCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPLCopy(vBuffer, Edit1.Text, SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrPLCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrCat(Dest: PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回连接指针字符串Dest和指针字符串Source
说明 StrCopy(StrEnd(Dest), Source)
参考 function SysUntils.StrCopy
例子
///////Begin StrCat
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, Edit1.Text);
StrCat(vBuffer, PChar(Edit2.Text));
Edit3.Text := vBuffer;
end;
///////End StrCat
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLCat(Dest: PChar; const Source: PChar; MaxLen: Cardinal):
PChar; $[SysUtils.pas
功能 返回连接指针字符串Dest和指针字符串Source
说明 [注意]MaxLen指定连接后的最大长度不是指针字符串Source的长度
参考
例子
///////Begin StrLCat
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, Edit1.Text);
StrLCat(vBuffer, PChar(Edit2.Text), SpinEdit1.Value);
Edit3.Text := vBuffer;
end;
///////End StrLCat
━━━━━━━━━━━━━━━━━━━━━
首部 function StrComp(const Str1, Str2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1 参考
例子 SpinEdit1.Value := StrComp(PChar(Edit1.Text), PChar(Edit2.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrIComp(const Str1, Str2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1 参考
例子 SpinEdit1.Value := StrIComp(PChar(Edit1.Text), PChar(Edit2.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1 参考
例子 SpinEdit1.Value := StrLComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLIComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1 参考
例子 SpinEdit1.Value := StrLIComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function StrScan(const Str: PChar; Chr: Char): PChar; $[SysUtils.pas
功能 返回在指针字符串Str搜索字符Chr第一个出现的地址
说明 没有找到则返回空指针
首部 function AnsiResemblesText(const AText, AOther: string): Boolean;
$[StrUtils.pas
功能 返回两个字符串是否相似
说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写
参考 function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc
例子 CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiContainsText(const AText, ASubText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否包含子串ASubText
说明 不区分大小写
参考 function StrUtils.AnsiUppercase; function StrUtils.AnsiPos
例子 CheckBox1.Checked := AnsiContainsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStartsText(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText开头
说明 不区分大小写
参考 function Windows.CompareString
例子 CheckBox1.Checked := AnsiStartsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiEndsText(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText结尾
说明 不区分大小写
参考 function Windows.CompareString
例子 CheckBox1.Checked := AnsiEndsText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiReplaceText(const AText, AFromText, AToText: string):
string; $[StrUtils.pas
功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
说明 不区分大小写
参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
例子 Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiMatchText(const AText: string; const AValues: array of
string): Boolean; $[StrUtils.pas
功能 返回字符串数组AValues中是否包含字符串AText
说明 不区分大小写
参考 function StrUtils.AnsiIndexText
例子 CheckBox1.Checked := AnsiMatchText(Edit1.Text, ['a1', 'a2', 'a3',
'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiIndexText(const AText: string; const AValues: array of
string): Integer; $[StrUtils.pas
功能 返回字符串AText在字符串数组AValues中的位置
说明 不区分大小写;如果不包含则返回-1
参考 function SysUtils.AnsiSameText
例子 SpinEdit1.Value := AnsiIndexText(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiContainsStr(const AText, ASubText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否包含子串ASubText
说明 区分大小写
参考 function StrUtils.AnsiPos
例子 CheckBox1.Checked := AnsiContainsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStartsStr(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText开头
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 CheckBox1.Checked := AnsiStartsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiEndsStr(const ASubText, AText: string): Boolean;
$[StrUtils.pas
功能 返回字符串AText是否以子串ASubText结尾
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 CheckBox1.Checked := AnsiEndsStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiReplaceStr(const AText, AFromText, AToText: string):
string; $[StrUtils.pas
功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
说明 区分大小写
参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
例子 Edit4.Text := AnsiReplaceStr(Edit1.Text, Edit2.Text, Edit3.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiMatchStr(const AText: string; const AValues: array of
string): Boolean; $[StrUtils.pas
功能 返回字符串数组AValues中是否包含字符串AText
说明 区分大小写
参考 function StrUtils.AnsiIndexStr
例子 CheckBox1.Checked := AnsiMatchStr(Edit1.Text, ['a1', 'a2', 'a3',
'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiIndexStr(const AText: string; const AValues: array of
string): Integer; $[StrUtils.pas
功能 返回字符串AText在字符串数组AValues中的位置
说明 区分大小写
参考 function SysUtils.AnsiSameStr
例子 SpinEdit1.Value := AnsiIndexStr(Edit1.Text, ['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function DupeString(const AText: string; ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText的ACount个复本
说明 当ACount为0时返回'
参考 function System.SetLength
例子 Edit3.Text := DupeString(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function ReverseString(const AText: string): string; $[StrUtils.pas
功能 返回字符串AText的反序
说明 ReverseString('1234') = '4321'
参考 function System.SetLength
例子 Edit3.Text := ReverseString(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StuffString(const AText: string; AStart, ALength: Cardinal;
const ASubText: string): string; $[StrUtils.pas
功能 返回嵌套字符串
说明 AStart:嵌套开始位置;ALength:嵌套长度;StuffString('abcd', 2, 0, '12') = 'a12bcd'
参考 function System.Copy
例子 Edit3.Text := StuffString(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value,
Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function RandomFrom(const AValues: array of string): string; overload;
$[StrUtils.pas
功能 随机返回字符串数组AValues中的一个元素
说明 之前建议执行Randomize
参考 function System.Random
例子 Randomize; Edit3.Text := RandomFrom(['a1', 'a2', 'a3', 'a4']);
━━━━━━━━━━━━━━━━━━━━━
首部 function IfThen(AValue: Boolean; const ATrue: string; AFalse: string =
'): string; overload; $[StrUtils.pas
功能 返回指定的逻辑字符串
说明 IfThen(True, '是', '否') = '是';IfThen(False, '是', '否') = '否'
参考
例子 Edit3.Text := IfThen(CheckBox1.Checked, Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function LeftStr(const AText: string; const ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText左边的ACount个字符
说明 LeftStr('123456', 3) = '123'
参考 function System.Copy
例子 Edit3.Text := LeftStr(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function RightStr(const AText: string; const ACount: Integer): string;
$[StrUtils.pas
功能 返回字符串AText右边的ACount个字符
说明 RightStr('123456', 3) = '456'
参考 function System.Copy
例子 Edit3.Text := RightStr(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function MidStr(const AText: string; const AStart, ACount: Integer):
string; $[StrUtils.pas
功能 返回字符串AText从AStart开始的ACount个字符
说明 其实就是Copy
参考 function System.Copy
例子 Edit3.Text := MidStr(Edit1.Text, SpinEdit1.Value, SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength:
Integer; SearchString: String; Options: TStringSearchOptions = [soDown]):
PChar; $[StrUtils.pas
功能 返回第一个搜索到的指针位置
说明 这函数常用于文本中搜索字符串
参考
例子
///////Begin SearchBuf
function SearchEdit(EditControl: TCustomEdit; const SearchString: String;
SearchOptions: TStringSearchOptions; FindFirst: Boolean = False): Boolean;
var
Buffer, P: PChar;
Size: Word;
begin
Result := False;
if (Length(SearchString) = 0) then Exit;
Size := EditControl.GetTextLen;
if (Size = 0) then Exit;
Buffer := StrAlloc(Size + 1);
try
EditControl.GetTextBuf(Buffer, Size + 1);
P := SearchBuf(Buffer, Size, EditControl.SelStart, EditControl.SelLength,
SearchString, SearchOptions);
if P <> nil then begin
EditControl.SelStart := P - Buffer;
EditControl.SelLength := Length(SearchString);
Result := True;
end;
finally
StrDispose(Buffer);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SearchOptions: TStringSearchOptions;
begin
SearchOptions := [];
if CheckBox1.Checked then
Include(SearchOptions, soDown);
if CheckBox2.Checked then
Include(SearchOptions, soMatchCase);
if CheckBox3.Checked then
Include(SearchOptions, soWholeWord);
SearchEdit(Memo1, Edit1.Text, SearchOptions);
Memo1.SetFocus;
end;
///////End SearchBuf
━━━━━━━━━━━━━━━━━━━━━
首部 function Soundex(const AText: string; ALength: TSoundexLength = 4):
string; $[StrUtils.pas
功能 返回探测字符串
说明 根据探测法(Soundex)可以找到相进的字符串;http://www.nara.gov/genealogy/coding.html
参考
例子 Edit2.Text := Soundex(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexInt(const AText: string; ALength: TSoundexIntLength =
4): Integer; $[StrUtils.pas
功能 返回探测整数
说明 ALength的值越大解码准确率越高
参考
例子 SpinEdit2.Value := SoundexInt(Edit1.Text, SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function DecodeSoundexInt(AValue: Integer): string; $[StrUtils.pas
功能 返回探测整数的解码
说明 DecodeSoundexInt(SoundexInt('hello')) 相当于 Soundex('hello')
参考
例子 Edit2.Text := DecodeSoundexInt(SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexWord(const AText: string): Word; $[StrUtils.pas
功能 返回探测文字数值
说明 没有参数ALength已经固定为4
参考
例子 SpinEdit2.Value := SoundexWord(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function DecodeSoundexWord(AValue: Word): string; $[StrUtils.pas
功能 返回探测文字数值的解码
说明 DecodeSoundexWord(SoundexWord('hello')) 相当于 Soundex('hello')
参考
例子 Edit2.Text := DecodeSoundexWord(SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexSimilar(const AText, AOther: string; ALength:
TSoundexLength = 4): Boolean; $[StrUtils.pas
功能 返回两个字符串的探测字符串是否相同
说明 Result := Soundex(AText, ALength) = Soundex(AOther, ALength)
参考
例子 CheckBox1.Checked := SoundexSimilar(Edit1.Text, Edit2.Text,
SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexCompare(const AText, AOther: string; ALength:
TSoundexLength = 4): Integer; $[StrUtils.pas
功能 返回比较两个字符串的探测字符串的结果
说明 Result := AnsiCompareStr(Soundex(AText, ALength), Soundex(AOther,
ALength))
参考 function SysUtils.AnsiCompareStr
例子 SpinEdit2.Value := SoundexCompare(Edit1.Text, Edit2.Text,
SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function SoundexProc(const AText, AOther: string): Boolean;
$[StrUtils.pas
功能 调用SoundexSimilar返回两个字符串的探测字符串是否相同
说明 系统变量AnsiResemblesProc的默认值
参考 function StrUtils.AnsiResemblesText
例子 [var AnsiResemblesProc: TCompareTextProc = SoundexProc;]
━━━━━━━━━━━━━━━━━━━━━
首部 function NewStr(const S: string): PString; deprecated; $[SysUtils.pas
功能 返回一个新的字符串指针地址
说明 字符串S为空时返回NullStr
参考 procedure System.New
例子
////////Begin NewStr,DisposeStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PString;
begin
P := NewStr(Edit1.Text);
Edit2.Text := P^;
DisposeStr(P);
end;
////////End NewStr,DisposeStr
━━━━━━━━━━━━━━━━━━━━━
首部 procedure DisposeStr(P: PString); deprecated; $[SysUtils.pas
功能 释放字符串指针P资源
说明 配合函数NewStr使用
参考 procedure System.Dispose
例子 <如上参见,如下参见>
━━━━━━━━━━━━━━━━━━━━━
首部 procedure AssignStr(var P: PString; const S: string); deprecated;
$[SysUtils.pas
功能 将字符串S更新给字符串指针P
说明 更新值时会释放以前字符串指针的资源
参考 function SysUtils.NewStr;function SysUtils.DisposeStr
例子
////////Begin AssignStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PString;
begin
P := nil;
AssignStr(P, Edit1.Text);
Edit2.Text := P^;
DisposeStr(P);
end;
////////End AssignStr
━━━━━━━━━━━━━━━━━━━━━
首部 procedure AppendStr(var Dest: string; const S: string); deprecated;
$[SysUtils.pas
功能 在字符串Dest后追加字符串S
说明 相当于Dest := Dest + S;Delphi6已经不建议使用
参考
例子
////////Begin AppendStr
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := Edit2.Text;
AppendStr(S, Edit1.Text);
Edit2.Text := S;
end;
////////End AppendStr
━━━━━━━━━━━━━━━━━━━━━
首部 function UpperCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的大写形式
说明 非小写字符不处理
参考 procedure System.SetLength
例子 Edit2.Text := UpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function LowerCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的小写形式
说明 非大写字符不处理
参考 procedure System.SetLength
例子 Edit2.Text := LowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareStr(const S1, S2: string): Integer; $[SysUtils.pas
功能 返回比较两个字符
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := CompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareMem(P1, P2: Pointer; Length: Integer): Boolean;
assembler; $[SysUtils.pas
功能 返回比较两个内存指针
说明 CompareMem(PChar('12a'), PChar('12c'), 2)=True;CompareMem(PChar('12a'),
PChar('12c'), 3)=False
参考
例子 CheckBox1.Checked := CompareMem(Self, Form1, 8);
━━━━━━━━━━━━━━━━━━━━━
首部 function CompareText(const S1, S2: string): Integer; $[SysUtils.pas
功能 返回比较两个字符串
说明 不区分大小写
参考
例子 SpinEdit1.Value := CompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function SameText(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 不区分大小写
参考
例子 CheckBox1.Checked := SameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiUpperCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的大写形式
说明 ANSI(American National Standards Institute)美国国家标准协会;非小写的字符不变
参考 function Windows.CharUpperBuff
例子 Edit2.Text := AnsiUpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiLowerCase(const S: string): string; $[SysUtils.pas
功能 返回字符串S的小写形式
说明 非大写字符不处理
参考 function Windows.CharLowerBuff
例子 Edit2.Text := AnsiLowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiCompareStr(const S1, S2: string): Integer; $[SysUtils.pas
功能 反回比较两个字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiCompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiSameStr(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 区分大小写
参考 function SysUtils.AnsiCompareStr
例子 CheckBox1.Checked := AnsiSameStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiCompareText(const S1, S2: string): Integer; $[SysUtils.pas
功能 反回比较两个字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiCompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiSameText(const S1, S2: string): Boolean; $[SysUtils.pas
功能 返回两个字符串是否相等
说明 不区分大小写
参考 function SysUtils.AnsiCompareText
例子 CheckBox1.Checked := AnsiSameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrComp(S1, S2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiStrComp(PChar(Edit1.Text), PChar(Edit2.Text))
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrIComp(S1, S2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiStrIComp(PChar(Edit1.Text), PChar(Edit2.Text))
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLComp(S1, S2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiStrLComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLIComp(S1, S2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := AnsiStrLIComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLower(Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串小写形式
说明 非大写字符不处理
参考 function Windows.CharLower
例子 Edit2.Text := AnsiStrLower(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrUpper(Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串大写形式
说明 非小写字符不处理
参考 function Windows.CharUpper
例子 Edit2.Text := AnsiStrUpper(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiLastChar(const S: string): PChar; $[SysUtils.pas
功能 返回字符串S的最后一个指针字符
说明 当字符串S为空串则返回空指针
参考 function SysUtils.ByteType
例子 Edit2.Text := AnsiLastChar(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiStrLastChar(P: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串P的最后一个指针字符
说明 当字符串P为空空指针则返回空指针
参考 function SysUtils.ByteType
例子 Edit2.Text := AnsiLastChar(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function WideUpperCase(const S: WideString): WideString; $[SysUtils.pas
功能 返回双字节字符串的大写形式
说明 WideChar双字节字符
参考 function Windows.CharUpperBuffW
例子 Edit2.Text := WideUpperCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideLowerCase(const S: WideString): WideString; $[SysUtils.pas
功能 返回双字节字符串的小写形式
说明 我怎么就测试不出来呢
参考 function Windows.CharLowerBuffW
例子 Edit2.Text := WideLowerCase(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideCompareStr(const S1, S2: WideString): Integer;
$[SysUtils.pas
功能 返回比较两个双字节字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := WideCompareStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideSameStr(const S1, S2: WideString): Boolean; $[SysUtils.pas
功能 返回两个双字节字符串是否相同
说明 区分大小写
参考 function SysUtils.WideCompareStr
例子 CheckBox1.Checked := WideSameStr(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideCompareText(const S1, S2: WideString): Integer;
$[SysUtils.pas
功能 返回比较两个双字节字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := WideCompareText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function WideSameText(const S1, S2: WideString): Boolean;
$[SysUtils.pas
功能 返回两个双字节字符串是否相同
说明 不区分大小写
参考 function SysUtils.WideCompareText
例子 CheckBox1.Checked := WideSameText(Edit1.Text, Edit2.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function Trim(const S: string): string; overload; $[SysUtils.pas
首部 function Trim(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S左右不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := Trim(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function TrimLeft(const S: string): string; overload; $[SysUtils.pas
首部 function TrimLeft(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S左边不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := TrimLeft(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function TrimRight(const S: string): string; overload; $[SysUtils.pas
首部 function TrimRight(const S: WideString): WideString; overload;
$[SysUtils.pas
功能 返回除去字符串S右边不可见字符
说明 小于#32的字符看作不可见字符
参考 function System.Copy
例子 Edit2.Text := TrimRight(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function QuotedStr(const S: string): string; $[SysUtils.pas
功能 返回字符串S在pascal中的表现形式
说明 单引号中的一个单引号将转成两个
参考 procedure System.Insert
例子 Edit2.Text := QuotedStr(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiQuotedStr(const S: string; Quote: Char): string;
$[SysUtils.pas
功能 返回字符串S以字符Quote为引号的表现形式
说明 AnsiQuotedStr('hello"world',
'@')='@hello"world@';AnsiQuotedStr('hello"world', '"')='"hello""world"'
参考 function SysUtils.AnsiStrScan
例子 Edit2.Text := AnsiQuotedStr(Edit1.Text, '"');
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string;
$[SysUtils.pas
功能 返回以字符Quote为引号的表现形式原形
说明 表现形式非法时Src不变否则为空
参考 function SysUtils.AnsiStrScan
例子
///////Begin AnsiExtractQuotedStr
procedure TForm1.Button1Click(Sender: TObject);
var
P: PChar;
begin
P := PChar(Edit1.Text);
Edit2.Text := AnsiExtractQuotedStr(P, '"');
Edit3.Text := P;
end;
///////End AnsiExtractQuotedStr
━━━━━━━━━━━━━━━━━━━━━
首部 function AnsiDequotedStr(const S: string; AQuote: Char): string;
$[SysUtils.pas
功能 返回以字符AQuote为引号的表现形式原形
说明 表现形式非法时则返回S
参考 function SysUtils.AnsiExtractQuotedStr
例子 Edit2.Text := AnsiDequotedStr(Edit1.Text, '"');
━━━━━━━━━━━━━━━━━━━━━
首部 function AdjustLineBreaks(const S: string; Style: TTextLineBreakStyle =
{$IFDEF LINUX} tlbsLF {$ENDIF} {$IFDEF MSWINDOWS} tlbsCRLF {$ENDIF}):
string; $[SysUtils.pas
功能 返回将给定字符串的行分隔符调整为CR/LF序列
说明
AdjustLineBreaks('1'#13'2'#13)='1'#13#10'2'#13#10;AdjustLineBreaks('1'#10'2'#10)='1'#13#10'2'#13#10
参考 function SysUtils.StrNextChar
例子
━━━━━━━━━━━━━━━━━━━━━
首部 function IsValidIdent(const Ident: string): Boolean; $[SysUtils.pas
功能 返回字符串Ident是否是正确的标识符
说明 标识符::字母|下划线[字母|下划线|数字]...
参考
例子 CheckBox1.Checked := IsValidIdent(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function IntToStr(Value: Integer): string; overload; $[SysUtils.pas
首部 function IntToStr(Value: Int64): string; overload; $[SysUtils.pas
功能 返回整数Value转换成字符串
说明 Format('%d', [Value])
参考 function SysUtils.FmtStr
例子 Edit2.Text := IntToStr(SpinEdit1.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function IntToHex(Value: Integer; Digits: Integer): string; overload;
$[SysUtils.pas
首部 function IntToHex(Value: Int64; Digits: Integer): string; overload;
$[SysUtils.pas
功能 返回整数Value转换成十六进制表现结果;Format('%.*x', [Digits, Value])
说明 参数Digits指定字符最小宽度;最小宽度不足时将用0填充
参考 function SysUtils.FmtStr
例子 Edit2.Text := IntToHex(SpinEdit1.Value, SpinEdit2.Value);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt(const S: string): Integer; $[SysUtils.pas
功能 返回字符串S转换成整数
说明 字符串非整数表达时将引起异常
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToIntDef(const S: string; Default: Integer): Integer;
$[SysUtils.pas
功能 返回字符串S转换成整数
说明 字符串非整数表达时则返回默认值Default
参考 procedure System.Val
例子 SpinEdit1.Value := StrToIntDef(Edit1.Text, 0);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToInt(const S: string; out Value: Integer): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成整数Value是否成功
说明 字符串非整数表达时返回False并且Value将输出为0
参考 procedure System.Val
例子
///////Begin TryStrToInt
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
CheckBox1.Checked := TryStrToInt(Edit1.Text, I);
SpinEdit1.Value := I;
end;
///////End TryStrToInt
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt64(const S: string): Int64; $[SysUtils.pas
功能 返回字符串S转换成六十四位整数
说明 字符串非六十四位整数表达时将引起异常
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt64(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToInt64Def(const S: string; const Default: Int64): Int64;
$[SysUtils.pas
功能 返回字符串S转换成六十四位整数
说明 字符串非六十四位整数表达时则返回默认值Default
参考 procedure System.Val
例子 SpinEdit1.Value := StrToInt64Def(Edit1.Text, 0);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToInt64(const S: string; out Value: Int64): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成六十四位整数Value是否成功
说明 字符串非六十四位整数表达时返回False并且Value将输出为0
参考 procedure System.Val
例子
///////Begin TryStrToInt64
procedure TForm1.Button1Click(Sender: TObject);
var
I: Int64;
begin
CheckBox1.Checked := TryStrToInt64(Edit1.Text, I);
SpinEdit1.Value := I;
end;
///////End TryStrToInt64
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToBool(const S: string): Boolean; $[SysUtils.pas
功能 返回字符串S转换成逻辑值
说明 字符非逻辑表达时将引起异常
参考 function SysUtils.TryStrToBool
例子 CheckBox1.Checked := StrToBool(Edit1.Text);
━━━━━━━━━━━━━━━━━━━━━
首部 function StrToBoolDef(const S: string; const Default: Boolean):
Boolean; $[SysUtils.pas
功能 返回字符串S转换成逻辑值
说明 字符非逻辑表达时则返回默认值Default
参考 function SysUtils.TryStrToBool
例子 CheckBox1.Checked := StrToBoolDef(Edit1.Text, False);
━━━━━━━━━━━━━━━━━━━━━
首部 function TryStrToBool(const S: string; out Value: Boolean): Boolean;
$[SysUtils.pas
功能 返回字符串S转换成逻辑值Value是否成功
说明 [注意]0为假非0为真;不是'True'和'False';Delphi6 Bug 如下修正
参考 function SysUtils.AnsiSameText;var SysUtils.TrueBoolStrs;var
SysUtils.FalseBoolStrs
例子
///////Begin TryStrToBool
procedure TForm1.Button1Click(Sender: TObject);
var
B: Boolean;
begin
SetLength(TrueBoolStrs, 2);
SetLength(FalseBoolStrs, 2);
TrueBoolStrs[0] := 'True';
FalseBoolStrs[0] := 'False';
TrueBoolStrs[1] := 'Yes';
FalseBoolStrs[1] := 'No';
CheckBox1.Checked := TryStrToBool(Edit1.Text, B);
CheckBox2.Checked := B;
end;
///////End TryStrToBool
附加
///////Begin TryStrToBool
function TryStrToBool(const S: string; out Value: Boolean): Boolean;
function CompareWith(const aArray: array of string): Boolean;
var
I: Integer;
begin
Result := False;
for I := Low(aArray) to High(aArray) do
if AnsiSameText(S, aArray[I]) then
begin
Result := True;
Break;
end;
end;
var
LResult: Extended;
begin
Result := TryStrToFloat(S, LResult);
if Result then
Value := LResult <> 0
else
begin
Result := True; //修正处
VerifyBoolStrArray;
if CompareWith(TrueBoolStrs) then
Value := True
else if CompareWith(FalseBoolStrs) then
Value := False
else
Result := False;
end;
end;
///////End TryStrToBool
━━━━━━━━━━━━━━━━━━━━━
首部 function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
$[SysUtils.pas
功能 返回逻辑值B转换成字符串
说明 BoolToStr(False, False)='0';BoolToStr(False, True)='-1'
参考 var SysUtils.TrueBoolStrs;var SysUtils.FalseBoolStrs
例子 Edit1.Text := BoolToStr(CheckBox1.Checked, CheckBox2.Checked);
━━━━━━━━━━━━━━━━━━━━━
首部 function LoadStr(Ident: Integer): string; $[SysUtils.pas
功能 返回根据标识Ident的字符串资源
说明 字符串资源是指程序的内部资源
参考 function SysUtils.FindStringResource
例子 Edit2.Text := LoadStr(StrToIntDef(Edit1.Text, 0));
━━━━━━━━━━━━━━━━━━━━━
首部 function FmtLoadStr(Ident: Integer; const Args: array of const):
string; $[SysUtils.pas
功能 返回格式化的字符串资源
说明 字符串资源是指程序的内部资源
参考 function SysUtils.FmtStr;function SysUtils.FindStringResource
例子
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLen(const Str: PChar): Cardinal; $[SysUtils.pas
功能 返回指针字符串的长度
说明 当指针字符串Str为nil时将触发异常
参考
例子 SpinEdit2.Value := StrLen(PChar(Edit1.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrEnd(const Str: PChar): PChar; $[SysUtils.pas
功能 返回指针字符串的结尾
说明 当指针字符串Str为nil时将触发异常
参考
例子 Edit2.Text := StrEnd(PChar(Edit1.Text)) - SpinEdit1.Value;
━━━━━━━━━━━━━━━━━━━━━
首部 function StrMove(Dest: PChar; const Source: PChar; Count: Cardinal):
PChar; $[SysUtils.pas
功能 返回将指针字符串Source指定内存数量Count复制覆盖到指针字符串Dest中
说明 Dest没有分配资源将触发异常s
参考 function System.Move
例子
///////Begin StrMove
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: PChar;
begin
vBuffer := '0123456789';
StrMove(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrMove
━━━━━━━━━━━━━━━━━━━━━
首部 function StrCopy(Dest: PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中
说明 Dest应已经分配足够的空间非则将触发异常
参考
例子
///////Begin StrCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: PChar;
begin
GetMem(vBuffer, Length(Edit1.Text) + 1);
StrCopy(vBuffer, PChar(Edit1.Text));
Edit2.Text := vBuffer;
FreeMem(vBuffer);
end;
///////End StrCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrECopy(Dest:PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中的结尾
说明 可以连接指针字符串
参考
例子
///////Begin StrECopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrECopy(StrECopy(vBuffer, PChar(Edit1.Text)), PChar(Edit2.Text));
Edit3.Text := vBuffer;
end;
///////End StrECopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: Cardinal):
PChar; $[SysUtils.pas
功能 返回将指针字符串Source指定长度MaxLen复制到指针字符串Dest中
说明 Dest应已经分配足够的空间非则将触发异常
参考
例子
///////Begin StrLCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrLCopy(vBuffer, PChar(Edit1.Text), SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrLCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrPCopy(Dest: PChar; const Source: string): PChar;
$[SysUtils.pas
功能 返回将指针字符串Source复制到指针字符串Dest中
说明 StrLCopy(Dest, PChar(Source), Length(Source))
参考 function SysUtils.StrLCopy
例子
///////Begin StrPCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, PChar(Edit1.Text));
Edit2.Text := vBuffer;
end;
///////End StrPCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrPLCopy(Dest: PChar; const Source: string; MaxLen:
Cardinal): PChar; $[SysUtils.pas
功能 返回将字符串Source指定长度MaxLen复制到指针字符串Dest中
说明 StrLCopy(Dest, PChar(Source), MaxLen)
参考 function SysUtils.StrLCopy
例子
///////Begin StrPLCopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPLCopy(vBuffer, Edit1.Text, SpinEdit1.Value);
Edit2.Text := vBuffer;
end;
///////End StrPLCopy
━━━━━━━━━━━━━━━━━━━━━
首部 function StrCat(Dest: PChar; const Source: PChar): PChar;
$[SysUtils.pas
功能 返回连接指针字符串Dest和指针字符串Source
说明 StrCopy(StrEnd(Dest), Source)
参考 function SysUntils.StrCopy
例子
///////Begin StrCat
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, Edit1.Text);
StrCat(vBuffer, PChar(Edit2.Text));
Edit3.Text := vBuffer;
end;
///////End StrCat
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLCat(Dest: PChar; const Source: PChar; MaxLen: Cardinal):
PChar; $[SysUtils.pas
功能 返回连接指针字符串Dest和指针字符串Source
说明 [注意]MaxLen指定连接后的最大长度不是指针字符串Source的长度
参考
例子
///////Begin StrLCat
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrPCopy(vBuffer, Edit1.Text);
StrLCat(vBuffer, PChar(Edit2.Text), SpinEdit1.Value);
Edit3.Text := vBuffer;
end;
///////End StrLCat
━━━━━━━━━━━━━━━━━━━━━
首部 function StrComp(const Str1, Str2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := StrComp(PChar(Edit1.Text), PChar(Edit2.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrIComp(const Str1, Str2: PChar): Integer; $[SysUtils.pas
功能 返回比较两个指针字符串
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := StrIComp(PChar(Edit1.Text), PChar(Edit2.Text));
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := StrLComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function StrLIComp(const Str1, Str2: PChar; MaxLen: Cardinal): Integer;
$[SysUtils.pas
功能 返回比较两个指针字符串指定长度
说明 当S1>S2返回值>0;当S1
例子 SpinEdit1.Value := StrLIComp(PChar(Edit1.Text), PChar(Edit2.Text),
SpinEdit2.Value)
━━━━━━━━━━━━━━━━━━━━━
首部 function StrScan(const Str: PChar; Chr: Char): PChar; $[SysUtils.pas
功能 返回在指针字符串Str搜索字符Chr第一个出现的地址
说明 没有找到则返回空指针
get text from file
procedure TForm1.Button1Click(Sender: TObject);
var f:TFileStream;
begin
F:=TFileStream.Create('LZTT.c',fmOpenRead);
memo1.Lines.LoadFromStream(f);
f.Free;end;
procedure TForm1.Button2Click(Sender: TObject);
const filename='lztt.c';
var filecontent:tstringlist;
begin
filecontent:=tstringlist.Create;
if FileExists(FileName) then
begin
FileContent.LoadFromFile(FileName);
label1.caption:=filecontent[0];
FileContent.Free;
end;
end;
var f:TFileStream;
begin
F:=TFileStream.Create('LZTT.c',fmOpenRead);
memo1.Lines.LoadFromStream(f);
f.Free;end;
procedure TForm1.Button2Click(Sender: TObject);
const filename='lztt.c';
var filecontent:tstringlist;
begin
filecontent:=tstringlist.Create;
if FileExists(FileName) then
begin
FileContent.LoadFromFile(FileName);
label1.caption:=filecontent[0];
FileContent.Free;
end;
end;
Friday, April 03, 2009
repick up delphi
Have not use the delphi language for several years,but now want to pick it up and want to program some useful thing....
the differentce between procedure and function
function is mainly used in the case it must return a value.Where as a procedure may or may not return a value or may return more than one value using the OUT parameter.
the differentce between procedure and function
function is mainly used in the case it must return a value.Where as a procedure may or may not return a value or may return more than one value using the OUT parameter.
Subscribe to:
Posts (Atom)
