cyberfan's blog

正其谊不谋其利,明其道不计其功

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 489 文章 :: 44 评论 :: 0 Trackbacks
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;
posted on 2005-08-12 16:01 cyberfan 阅读(224) 评论(0)  编辑 收藏 引用 所属分类: delphi
只有注册用户登录后才能发表评论。