打印本文 打印本文 关闭窗口 关闭窗口
delphi小技巧集锦
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2231  更新时间:2009/4/23 18:28:14  文章录入:mintao  责任编辑:mintao
t:= strtoint(FormatFloat(''''#'''',value));
end; function doRound(Value: Double): integer;
//取整四舍五入
//这个我有一半,呵呵。
begin
  if Value < 0 then Result:= - doRound( -Value )
  else
  Result := round(int((value + 0.5) * 10)) div 10;
end;
//当然,这个函数还有其他的写法,如果你有不同的思路欢迎继续。。。 补充说明:
round这个函数本身采用的是“四舍六入五成双”的法则,虽然更科学,但是实际应用中没有几个用这种规则的。
我也贴几个自己常用的:
{-----------------------------------------------------------------------------
  过程名: Msg
  作者:   Gongqin
  日期:   2003-6-9 16:57:44
  参数:   AMsg : String; ATitle : String=''''提示''''; AType : byte=0; btn : Longint=0
            AType := 1 显示"信息"图标
                      2 显示"错误"图标
             AMsg(显示的消息内容)   ATitle(显示标题)
             btn   := 0 显示 OK
                      1 显示 Ok Cancel
                      2 显示 Yes No
                      3 显示 Retry and Cancel
                      4 显示 Abort, Retry, and Ignore
  返回值: Integer
  说明:  显示消息对话框
-----------------------------------------------------------------------------}
function Msg(AMsg: String;ATitle: String;AType: byte;btn: Longint): Integer;
var Flag : Longint;
begin
  case AType of
    1: Flag := MB_ICONQUESTION; //提问
    2: Flag := MB_ICONERROR; //Error
    3: Flag := MB_ICONSTOP;  //Stop
  else
    Flag := MB_ICONWARNING;
  end;
  case btn of
    0 : Flag := Flag + MB_OK;
    1 : Flag := Flag + MB_OKCANCEL;
    2 : Flag := Flag + MB_YESNO;
    3 : Flag := Flag + MB_YESNOCANCEL;
    4 : Flag := Flag + MB_RETRYCANCEL;
    5 : Flag := Flag + MB_ABORTRETRYIGNORE;
  end;
  result := Application.MessageBox(pchar(AMsg), pchar(ATitle), Flag);
end; {-----------------------------------------------------------------------------
  过程名: getAppPath
  作者:   Gongqin
  日期:   2003-6-9 17:01:17
  参数:   None
  返回值: string
  说明:  取应用程序的路径
          如果只用ExtractFilePath(ExtractFilePath(application.Exename))取路径
          可能出错,所以加了处理
-----------------------------------------------------------------------------}
function getAppPath : string;
var
  strTmp : string;
begin
  strTmp := ExtractFilePath(ExtractFilePath(application.Exename));
  if strTmp[length(strTmp)] <> ''''\'''' then
    strTmp := strTmp + ''''\'''';
  result := strTmp;
end;
下面是我自己整理的
http://www.myf1.net/bbs/dispbbs.asp?boardID=5&ID=215239
//计算当前日期所在的季度的第一个月份和最后一个月份
//终极版
function QuarterBegin( TheDate : TDateTime = 0 ) : Integer;
//Copy Right 549@18:25 2003-9-3
begin
  Result := ( Quarter( TheDate ) - 1 ) * 3 + 1;
end; function QuarterEnd( TheDate : TDateTime = 0 ) : Integer;
//Copy Right 549@18:25 2003-9-3
begin
  Result := ( Quarter( TheDate ) - 1 ) * 3 + 3;
end; function Quarter( TheDate : TDateTime = 0 ) : Integer;
//Copy Right 549@10:06 2003-9-5
begin
  Result := MonthOf( TheDate );
  if TheDate = 0 then Result := MonthOf( Date );
  Result := ( Result + 2 ) div 3;
end;

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口