1. 配置文件TIniFile 类操作:
1) INI文件的结构:
;注释
[小节名]
关键字=值
...
---- 值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值用0表示。
2) 示例代码:
var
myinifile:TInifile;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
filename:string;
begin
filename:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(filename);
edit1.Text:= myinifile.readstring('程序参数','用户名称','缺省的用户名称');
edit2.text:= inttostr(myinifile.readinteger('程序参数','已运行时间',0));
checkbox1.Checked:= myinifile.readbool('程序参数','是否正式用户',False);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
myinifile.writestring('程序参数','用户名称',edit1.Text);
myinifile.writeinteger('程序参数','已运行时间',strtoint(edit2.text));
myinifile.writebool('程序参数','是否正式用户',checkbox1.Checked);
myinifile.Destroy;
end;
2. 在注册表中注册和注销ActiveX部件(OCX、DLL):
1) 使用RegSvr32.EXE注册、注销:
在开始菜单单击运行,在对话框中输入:
注册:Regsvr32_Path Your_Activex_Path
注销:Regsvr32_Path /u Your_Activex_Path
按确定按钮运行即可
其中:Regsvr32_Path 是Regsvr32.exe文件的路径(包含文件名)
Your_ActiveX_Path 是要注册或注销的文件路径(包含文件名)
一般情况下,Win98 的 Regsvr32.exe 在系统System文件夹,Win2000 的位于 cwin\vcm文件夹。
2) 使用RegComCtl32和UnRegComCtl32函数注册注销:
开始一个新的EXE工程,移出Form1,添加一个模块,将下面代码粘贴到模块中,注意将其中红字修改成您要注册或注销的部件文件名(包含路径)
不用运行工程,在立即窗口(Ctrl+G)直接键入过程名回车即可
您可以保存该工程,以后在需要注册注销另外部件时,只需修改声明中的文件名,很方便。
Option Explicit
Declare Function RegComCtl32 Lib "D:\MYAPP\Printer\IdiotPrint.dll" Alias "DllRegisterServer" () As Long
Declare Function UnRegComCtl32 Lib "D:\MYAPP\Printer\IdiotPrint.dll" Alias "DllUnregisterServer" () As Long
Const ERROR_SUCCESS = &H0
Public Sub RegDllCtrl()
If RegComCtl32 = ERROR_SUCCESS Then
MsgBox "注册成功"
Else
MsgBox "注册失败"
End If
End Sub
Public Sub UnRegDllCtrl()
If UnRegComCtl32 = ERROR_SUCCESS Then
MsgBox "注销成功"
Else
MsgBox "注销失败"
End If
End Sub
3. Delphi字符串、PChar与字符数组之间的转换:
设有以下三个变量:
s:string;
p:pchar;
a:array[1..20] of char;
那么三者之间的转换如下:
1)、字符串到PChar
p:=PChar(s);
2)、PChar到字符串
s:=p;
3)、PChar到字符数组
StrCopy(@a,p);
4)、字符数组到PChar
PChar(@a);
5)、字符串与字符数组之间的转换就只有通过PChar来中转了。例如下面这个例子:
procedure TForm1.btn1Click(Sender: TObject);
var
str:array[1..10] of char;
begin
StrCopy(@str,PChar(mmo1.Text));
mmo2.Text:=PChar(@str);
end;