1、用Enter键代替Tab键
在实际的程序开发中我们经常有这样的要求,用户不喜欢用Tab键,他希望用Enter键来代替。我们应该什么做呢?
首先:设定Form的KeyPreview属性为True。
其次:把Form上的所有Button的Default属性设为False。
最后:在Form的onKeyPress事件中添加如下代码:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin
if Key = #13 then
begin
Key := #0;
Perform(Wm_NextDlgCtl,0,0);
end;
end;
2、命令行参数的使用
命令行参数的使用
Delphi提供了访问命令行参数的方便的方式,那就是使用ParamStr和ParamCount函数。其中ParamStr(0)返回的是当前程序名,如C:TESTMYPROG.EXE,ParamStr(1)返回第一个参数,以此类推;ParamCount则是参数个数。示例如下:
var
I: Word;
Y: Integer;
begin
Y := 10;
for I := 1 to ParamCount do
begin
Canvas.TextOut(5, Y, ParamStr(I));
Y := Y + Canvas.TextHeight(ParamStr(I)) + 5;
end;
end;
3、如何分行提示
Delphi中大部分控件都有一个实用的Hint属性,即浮动条提示。但有时提示较长,是否可以使得浮动提示条分行显示呢?其实,Hint是一个字符串(string),因而Delphi显示该字符串时会自动解释其中的回车控制符,所以只要加上回车控制符就可以了。依此原理,我们还能做出别具一格的垂直提示条。请先在form1中布置一个label,然后看示例代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Hint :='垂'+#13+'直'+#13+'提' +#13+'示';
end;
4、如何取得一个文件的文件类型呀
//要引用Shellapi单元
function MrsGetFileType(const strFilename: string): string;
var
FileInfo: TSHFileInfo;
begin
FillChar(FileInfo, SizeOf(FileInfo), #0);
SHGetFileInfo(PChar(strFilename), 0, FileInfo, SizeOf(FileInfo), SHGFI_TYPENAME);
Result := FileInfo.szTypeName;
end;
5、取得当前操作平台
5、取得当前操作平台
//定义在Type部分
TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osNT3, osNT4, os2K, osME,osXP);
{ *获得操作系统}
function GetOS :String;
var
OS :TOSVersionInfo;
OSVersion:TOSVersion;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
OSVersion:=osUnknown;
if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then
begin
case OS.dwMajorVersion of
3: OSVersion:=osNT3;
4: OSVersion:=osNT4;
5: begin
if OS.dwMinorVersion>=1 then
OSVersion:=osXP
else
OSVersion:=os2K;
end;
end;
end
else
begin
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0) then
begin
OSVersion:=os95;
if (Trim(OS.szCSDVersion)='B') then
OSVersion:=os95OSR2;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then
begin
OSVersion:=os98;
if (Trim(OS.szCSDVersion)='A') then
OSVersion:=os98SE;
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then
OSVersion:=osME;
end;
if OSVersion=osNT3
then Result:='Window NT3';
if OSVersion=OSNT4
then Result:='Window NT4';
if OSVersion=os2K
then Result:='Winodw 2000';
if OSVersion=osXp
then Result:='Winodw Xp';
if OSVersion=os95
then Result:='Window 95';
if OSVersion=os95OSR2
then Result:='Window 97';
if OSVersion=os98
then Result:='Winodw 98';
if OSVersion=os98SE
then Result:='Winodw 98SE';
if OSVersion=osME
then Result:='Winodw ME';
end;
6、获取本机的IP地址
{* 获取本机的IP地址}
function GetLocalIP: string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
7、获取本机的计算机名称
{* 获取本机的计算机名称}
function TNet.GetLocalName: string;
var
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^);
if fl_loaded then
GetLocalName := StrPas(CNameBuffer)
else
GetLocalName := '未知';
FreeMem(CNameBuffer,255);
Dispose(CLen);
end;