DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pixelcraft
今日帖子: 56
在线用户: 8
导航: 论坛 -> 论坛精华贴 斑竹:liumazi,iamdream  
作者:
男 myso (unver) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 12:28:11
标题:
:)很不错的一系列函数! 浏览:11993
加入我的收藏
楼主: 我写的,因为我是菜鸟,所以我的东东,就是菜鸟的东东
unit SunLib;

interface
uses Windows,SysUtils,forms,comctrls,classes,dbtables,shDBGrids,graphics,DB,shline;
type
  TTextStyle=(tsRaised,tsLowered);

procedure WriteStringToFile(pathfilename,strings:string);
function  FindFileString(pathfilename,strings:string):boolean;
procedure DeleteFileString(pathfilename,strings:string);
function  strLeft(ss:string;count:integer):string;      {从字符串左边返回字符串}
function  strRight(ss:string;count:integer):string;     {从字符串右边返回字符串}
function  Space(count:integer):string;               {返回空格字符串}
function  Replicate(char: string;count:integer):string; {返回重复字符串}
function  shsjh:string;                              {返回随机数}
function  GetRandom:string;                              {返回随机数}
function  GetRandomA:string;                              {返回随机数}
function  MonthMaxDay(year,month:integer):integer;
function  DeleteAllFile(filename:string):integer;    {删除所有指定匹配的文件}
function  iif(const cstj:boolean;const cs1,cs2:variant):variant;
function  GetLeftString(strings,char:string):string;//返回char以左的字串
function  NumberToCN(num0:currency):string;                                                                  //人民币金额大写
function  MessageWaitBox(aviname,mess:string):TForm;
function  Calendarbook(var datetime:TDatetime;YearEnabled,MonthEnabled,DayEnabled:boolean;x,y:integer):boolean;   //日历
function  InputStringBox(title,mess:string;var value:string):boolean;   //输入框
function  InputStringBoxA(title,mess,editmask:string;var value:string):boolean;
procedure shBoxmessage(ss:string;left0,top0:integer);
procedure shBoxmessagePos(ss:string;left0,top0,width0,height0:integer);
procedure GetFieldLabel(xtdh:string;table1,tableDict:TTable);
procedure CreateGrid(dbgrid1:TshDBGrid;LineColor:TColor);
function  GetPing(ss:string):string;
procedure Draw3dText(canvas:TCanvas;rect:TRect;text:string;Text3DStyle:TTextStyle;Alignment: TAlignment);

function  ServerDateTime:TDatetime;

function  GetSerial(no:string):string;
function  GetSerialE(no:string;year,month:word):string;
procedure WriteParamString(section,symbol,value:string);
procedure WriteParamInteger(section,symbol:string;value:integer);
procedure WriteParamBoolean(section,symbol:string;value:boolean);
procedure WriteParamFloat(section,symbol:string;value:real);

function  ReadParamString(section,symbol,value:string):string;
function  ReadParamInteger(section,symbol:string;value:integer):integer;
function  ReadParamBoolean(section,symbol:string;value:boolean):boolean;
function  ReadParamFloat(section,symbol:string;value:real):real;


implementation
uses Sunlib_wait,SunLib_Calendar,Shinputbox,shmessagebox,shconsts; // mtdb,

function strLeft(ss:string;count:integer):string;
begin
  result:=copy(ss,1,count);
end;

function strRight(ss:string;count:integer):string;
begin
  if length(ss)<=count then result:=ss
  else result:=copy(ss,length(ss)-count+1,count);
end;

function Space(count:integer):string;
begin
  if count<=200 then
                 //12345678901234567890123456789012345678901234567890
     result:=copy('                                                  '+
                  '                                                  '+
                  '                                                  '+
                  '                                                  '
                  ,1,count)
  else result:=space(200)+space(count-200);
end;

function Replicate(char:string;count:integer):string;
var
  moCount:integer;
  moRetstring:string;
begin
  moRetstring:=';
  for moCount:=1 to count do moRetstring:=moRetstring+char;
  result:=moRetstring;
end;

function shsjh:string;
var
 motime:Tsystemtime;
 j:integer;
 a1,a2,A3:dword;
 getstr:STRING;
begin
  A3:=GetTickCount();
  WHILE (A3=GetTickCount()) DO ;
  A3:=GetTickCount();
  getsystemtime(motime);
  a1:=(motime.wyear*12+motime.wmonth)*31+motime.wday;
  a2:=(motime.whour*3600+motime.wminute*60+motime.wsecond)*1000+A3 mod 1000;
  getstr:=';
  while a2>36 do
  begin
    j:=a2 mod 36;
    if j<10 then getstr:=inttostr(j)+getstr else getstr:=chr(j+55)+getstr;
    a2:=a2 div 36;
  end;
  a1:=a1*100+a2;
  while a1>0 do
    begin
      j:=a1 mod 36;
      if j<10 then getstr:=inttostr(j)+getstr else getstr:=chr(j+55)+getstr;
      a1:=a1 div 36
    end;
  result:=copy(getstr,1,10);
end;

function MonthMaxDay(year,month:integer):integer;
begin
   case month of
     1,3,5,7,8,10,12: result:=31;
     2: if (year mod 4=0) and (year mod 100<>0) or (year mod 400=0) then result:=29
        else result:=28;
     4,6,11: result:=30;
     else result:=30;
   end;
end;

function DeleteAllFile(filename:string):integer;
var
  moFileindex:integer;
  moFilename:TSearchRec;
  moPath:string;
begin
   moPath:=extractfilepath(filename);
   result:=0;
   //moFileindex:= FindFirst(filename,faReadOnly + faSysFile+faHidden+faArchive+faAnyFile+faVolumeID, mofilename);
   moFileindex:= FindFirst(filename,0, mofilename);
   while moFileindex=0 do
   begin
      deletefile(moPath+mofilename.name);
      moFileindex:= FindNext(mofilename);
      result:=result+1;
   end;
   FindClose(mofilename);
end;

function iif(const cstj:boolean;const cs1,cs2:variant):variant;
begin
  if cstj then iif:=cs1
  else iif:=cs2;
end;

function GetLeftString(strings,char:string):string;
var
  p:integer;
begin
   result:=strings;
   p:=pos(char,strings);
   if p>0 then result:=copy(strings,1,p-1);
end;

function NumberToCN(num0:currency):string;
var
  char1,char,dxmc,dxm,mc:string;
  a:integer;
begin
  dxm:='零壹贰叁肆伍陆柒捌玖';
  char1:=StrRight(space(14)+floattostrf(abs(num0),ffFixed,13,2),13);
  a:=1;
  dxmc:=';
  mc:=';
  while a<=length(char1) do
  begin
    char:=copy(char1,a,1);
    if (a=11) or (char='0') or (char=' ') then
    begin
       a:=a+1;
       continue;
    end;
    case a of
      1:begin
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'拾';
          mc:='拾亿';
        end;
      2:begin
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'亿';
          mc:='亿';
        end;
      3:begin
          if (mc<>'亿') and (length(mc)<>0) then dxmc:=dxmc+'亿零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'仟';
          mc:='仟万';
        end;
      4:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if mc='亿' then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'佰';
          mc:='佰万';
        end;
      5:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if mc='亿' then dxmc:=dxmc+'零';
          if mc='仟万' then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'拾';
          mc:='拾万';
        end;
      6:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if mc='亿' then dxmc:=dxmc+'零';
          if (mc='仟万') or (mc='佰万') then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'万';
          mc:='万';
        end;
      7:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if mc='亿' then dxmc:=dxmc+'零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'仟';
    mc:='仟';
        end;
      8:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万零';
          if (mc='亿') or (mc='万') then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'佰';
          mc:='佰';
        end;
      9:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万零';
          if (mc='亿') or (mc='万') or (mc='仟') then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'拾';
          mc:='拾';
        end;
     10:begin
          if mc='拾亿' then dxmc:=dxmc+'亿零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万零';
          if (mc='亿') or (mc='万') or (mc='仟') or (mc='佰') then dxmc:=dxmc+'零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'元';
          mc:='元';
        end;
     12:begin
          if mc='拾亿' then dxmc:=dxmc+'亿元零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万元零';
          if (mc='亿') or (mc='万') or (mc='仟') or (mc='佰') or (mc='拾') then dxmc:=dxmc+'元零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'角';
          mc:='角';
        end;
     13:begin
          if mc='拾亿' then dxmc:=dxmc+'亿元零';
          if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万元零';
          if (mc='亿') or (mc='万') or (mc='仟') or (mc='佰') or (mc='拾') or (mc='元') then dxmc:=dxmc+'元零';
          dxmc:=dxmc+copy(dxm,strtoint(char)*2+1,2)+'分';
          mc:='分';
        end;
    end;
    a:=a+1;
  end;
  if mc='拾亿' then dxmc:=dxmc+'亿元';
  if (mc='仟万') or (mc='佰万') or (mc='拾万') then dxmc:=dxmc+'万元';
  if (mc='亿') or (mc='万') or (mc='仟') or (mc='佰') or (mc='拾') then dxmc:=dxmc+'元';
  if pos(mc,'角分')=0 then dxmc:=dxmc+'正';
  if num0=0 then dxmc:=' else
  if num0<0 then dxmc:='负'+dxmc;
  result:=dxmc;
end;

function MessageWaitBox(aviname,mess:string):TForm;
begin
  Application.CreateForm(TFormSunlib_wait,FormSunlib_wait);
  with FormSunlib_wait do
  begin
    if length(mess)>0 then panelMessage.caption:=mess;
    aviname:=uppercase(aviname);
    if aviname='FINDCOMPUTER' then animate1.commonavi:=aviFindComputer else
    if aviname='FINDFILE' then animate1.commonavi:=aviFindFile else
    if aviname='FINDFOLDER' then animate1.commonavi:=aviFindFolder else
    if aviname='FINDFILE' then animate1.commonavi:=aviFindFile else
    animate1.commonavi:=aviFindComputer;
    show;
    update;
  end;
  result:=FormSunlib_wait;
end;

function  Calendarbook(var datetime:TDatetime;YearEnabled,MonthEnabled,DayEnabled:boolean;x,y:integer):boolean;   //日历
var
  yy,mm,dd:word;
  datetime0:TDatetime;
begin
  decodedate(datetime,yy,mm,dd);
  result:=false;
  with TformSunLib_Calendar.create(nil) do
  begin
    if X>0 then left:=X;
    if Y>0 then top:=Y;
    if (x>0) or (y>0) then position:=poDesigned;

    if dd>monthmaxday(yy,mm) then dd:=monthmaxday(yy,mm);
    calendar1.day:=dd ;
    calendar1.year:=yy;
    calendar1.month:=mm;
    calendar1.enabled:=dayenabled;
    if not yearenabled then labelYear.tag:=1;
    if not monthenabled then labelMonth.tag:=1;
    speedbuttonLeft.enabled:=monthenabled;
    speedbuttonRight.enabled:=monthenabled;
    labelYear.caption:=inttostr(calendar1.year);
    LabelMonth.caption:=MonthName[calendar1.month];
    showmodal;
    if tag=1 then
    begin
      datetime0:=encodedate(calendar1.year, calendar1.month,calendar1.day);
      if datetime0<>datetime then
      begin
        datetime:=datetime0;
        result:=true;
      end;
    end;
    free;
  end;
end;

function InputStringBox(title,mess:string;var value:string):boolean;
begin
  with TFormShinputbox.create(nil) do
  begin
    caption:=title;
    labelMess.caption:=mess;
    editValue.AutoSelect:=false;
    editValue.text:=trim(value);
    editValue.MaxLength:=length(value);
    editValue.SelStart:=0;
    showmodal;
    value:=editValue.text;
    result:=returncs;
    free;
  end;
end;

function InputStringBoxA(title,mess,editmask:string;var value:string):boolean;
begin
  with TFormShinputbox.create(nil) do
  begin
    caption:=title;
    labelMess.caption:=mess;
    editValue.AutoSelect:=false;
    editValue.editmask:=editmask;
    editValue.text:=trim(value);
    editValue.MaxLength:=length(value);
    editValue.SelStart:=0;
    showmodal;
    value:=editValue.text;
    result:=returncs;
    free;
  end;
end;

procedure shBoxmessagePos(ss:string;left0,top0,width0,height0:integer);
var
  ss2,mess,ss1:string;
  hs,p:integer;
begin
  mess:=';
  hs:=1;
  ss2:=';
  p:=pos('|',ss);
  if p=0 then
  begin
    mess:=ss;
  end else
  while length(ss)>0 do
  begin
    ss1:=copy(ss,1,p-1);
    if length(ss1)>length(ss2) then ss2:=ss1;
    mess:=mess+ss1;
    delete(ss,1,p);
    if length(ss)>0 then
    begin
      hs:=hs+1;
      mess:=mess+chr(13);
      p:=pos('|',ss);
      if p=0 then p:=length(ss)+1;
    end;
  end;
  //top0:=top0+application.MainForm.Top;
  with TFormShmessagebox.create(nil) do
  begin
    StaticText1.width:=Canvas.TextWidth(ss2);
    StaticText1.Height:=Canvas.TextHeight('h')*hs;
    StaticText1.caption:=mess;
    width:=StaticText1.width+(panel1.BevelWidth+panel1.BorderWidth)*2+(panel2.BevelWidth+panel2.BorderWidth)*2+2;
    height:=StaticText1.Height+(panel1.BevelWidth+panel1.BorderWidth)*2+(panel2.BevelWidth+panel2.BorderWidth)*2+2;
    left:=left0+(width0-width) div 2;
    top:=top0+height0-height-10;
    showmodal;
    free;
  end;
end;

procedure shBoxmessage(ss:string;left0,top0:integer);
var
  ss2,mess,ss1:string;
  hs,p:integer;
begin
  mess:=';
  hs:=1;
  ss2:=';
  p:=pos('|',ss);
  if p=0 then
  begin
    mess:=ss;
  end else
  while length(ss)>0 do
  begin
    ss1:=copy(ss,1,p-1);
    if length(ss1)>length(ss2) then ss2:=ss1;
    mess:=mess+ss1;
    delete(ss,1,p);
    if length(ss)>0 then
    begin
      hs:=hs+1;
      mess:=mess+chr(13);
      p:=pos('|',ss);
      if p=0 then p:=length(ss)+1;
    end;
  end;
  with TFormShmessagebox.create(nil) do
  begin
    StaticText1.width:=Canvas.TextWidth(ss2);
    StaticText1.Height:=Canvas.TextHeight('h')*hs;
    StaticText1.caption:=mess;
    width:=StaticText1.width+(panel1.BevelWidth+panel1.BorderWidth)*2+(panel2.BevelWidth+panel2.BorderWidth)*2+2;
    height:=StaticText1.Height+(panel1.BevelWidth+panel1.BorderWidth)*2+(panel2.BevelWidth+panel2.BorderWidth)*2+2;
    if top0<0 then top:=screen.Height-height-50
    else top:=top0;
    case left0 of
      -1:left:=screen.width-width-5;
      -2:left:=(screen.width-width-5) div 2;
    else
      left:=left0;
    end;
    showmodal;
    free;
  end;
end;

procedure WriteStringToFile(pathfilename,strings:string);
var
  fh:Textfile;
  isNew:boolean;
begin
  {$I-}
  assignfile(fh,pathfilename);
  isNew:=not fileexists(pathfilename);
  if isNew then rewrite(fh) else append(fh);
  writeln(fh,strings);
  flush(fh);
  closefile(fh);
  {$I+}
end;

function FindFileString(pathfilename,strings:string):boolean;
var
  fh:Textfile;
  tstr:string;
begin
  result:=false;
  if not fileexists(pathfilename) then exit;
  {$I-}
  assignfile(fh,pathfilename);
  reset(fh);
  {$I+}
  while not eof(fh) do
  begin
    readln(fh,tstr);
    if tstr=strings then
    begin
      result:=true;
      break;
    end;
  end;
  closefile(fh);
end;

procedure DeleteFileString(pathfilename,strings:string);
var
  stringlist:TStringlist;
  i:integer;
begin
  if not fileexists(pathfilename) then exit;
  stringlist:=TStringlist.create;
  stringlist.Sorted:=true;
  i:=fileopen(pathfilename,fmOpenReadWrite);
  if i>0 then
  begin
    fileclose(i);
    stringlist.LoadFromFile(pathfilename);
    if stringlist.Count>0 then
    begin
      i:=-1;
      if stringlist.Find(strings,i) then
      begin
        stringlist.Delete(i);
        stringlist.SaveToFile(pathfilename);
      end;
    end;
  end;
  stringlist.Free;
end;

procedure GetFieldLabel(xtdh:string;table1,tableDict:TTable);
var
  i:integer;
  wjdh,fieldname:string;
begin
  wjdh:=uppercase(table1.TableName);
  for i:=0 to table1.FieldCount-1 do
  begin
    fieldname:=uppercase(table1.Fields[i].fieldname);
    if tableDict.FindKey([wjdh,fieldname]) then table1.Fields[i].DisplayLabel:=tableDict.fieldbyname('f3').asstring;
  end;
end;

procedure CreateGrid(dbgrid1:TshDBGrid;LineColor:TColor);
var
  zw,t,w,i:integer;
  Line:TShline;
begin
  //加竖线
  t:=0;
  if dgTitles in dbgrid1.Options then t:=dbgrid1.DefaultRowHeight+1;
  w:=0;
  for i:=0 to dbgrid1.Columns.Count-1 do
  begin
    w:=w+dbgrid1.Columns[i].width;
    Line:=TShline.Create(nil);
    Line.Parent:=dbGrid1;
    line.Pen.Color:=LineColor;//clSilver;
    line.Top:=t;
    line.left:=w;
    line.height:=dbgrid1.height;
    w:=w+1;
  end;
  zw:=w;
  //加横线
  if dgTitles in dbgrid1.Options then w:=dbgrid1.DefaultRowHeight
  else w:=0;
  if dgTitles in dbgrid1.Options then w:=w+1;
  w:=w+dbgrid1.DefaultRowHeight;
  while w<dbgrid1.Height do
  begin
    Line:=TShline.Create(nil);
    Line.line:=stHortLine;
    Line.Parent:=dbGrid1;
    line.Pen.Color:=LineColor;//clSilver;
    line.Top:=w;
    line.left:=0;
    line.width:=zw;//dbgrid1.width;
    w:=w+dbgrid1.DefaultRowHeight+1;
  end;
end;

function GetPing(ss:string):string;
var
  c1,c2:char;
  i:integer;
  ss0,ss1:string;
begin
  ss0:=';
  i:=1;
  while i<=length(ss) do
  begin
    c1:=ss[i];
    if c1=' ' then
    begin
      i:=i+1;
      continue;
    end;
    if ord(c1)>128 then
    begin
      i:=i+1;
      c2:=ss[i];
      if ord(c2)>128 then
      begin
        ss1:=c1+c2;
        if (ss1>='啊') and (ss1<='澳') then ss0:=ss0+'a' else
        if (ss1>='芭') and (ss1<='怖') then ss0:=ss0+'b' else
        if (ss1>='擦') and (ss1<='错') then ss0:=ss0+'c' else
        if (ss1>='搭') and (ss1<='堕') then ss0:=ss0+'d' else
        if (ss1>='蛾') and (ss1<='贰') then ss0:=ss0+'e' else
        if (ss1>='发') and (ss1<='咐') then ss0:=ss0+'f' else
        if (ss1>='噶') and (ss1<='过') then ss0:=ss0+'g' else
        if (ss1>='哈') and (ss1<='祸') then ss0:=ss0+'h' else
        if (ss1>='击') and (ss1<='骏') then ss0:=ss0+'j' else
        if (ss1>='喀') and (ss1<='阔') then ss0:=ss0+'k' else
        if (ss1>='垃') and (ss1<='络') then ss0:=ss0+'l' else
        if (ss1>='好') and (ss1<='穆') then ss0:=ss0+'m' else
        if (ss1>='拿') and (ss1<='诺') then ss0:=ss0+'n' else
        if (ss1>='哦') and (ss1<='沤') then ss0:=ss0+'o' else
        if (ss1>='啪') and (ss1<='瀑') then ss0:=ss0+'p' else
        if (ss1>='期') and (ss1<='群') then ss0:=ss0+'q' else
        if (ss1>='然') and (ss1<='弱') then ss0:=ss0+'r' else
        if (ss1>='撒') and (ss1<='所') then ss0:=ss0+'s' else
        if (ss1>='塌') and (ss1<='唾') then ss0:=ss0+'t' else
        if (ss1>='挖') and (ss1<='误') then ss0:=ss0+'w' else
        if (ss1>='昔') and (ss1<='迅') then ss0:=ss0+'x' else
        if (ss1>='压') and (ss1<='孕') then ss0:=ss0+'y' else
        if (ss1>='匝') and (ss1<='座') then ss0:=ss0+'z' else ss0:=ss0+ss1;
        i:=i+1;
      end else
      begin
        ss0:=ss0+c1+c2;
        i:=i+1;
      end;
    end else
    begin
      ss0:=ss0+c1;
      i:=i+1;
    end;
  end;
  result:=ss0;
end;

function GetSerialE(no:string;year,month:word):string;
var
  ss:string;
  i:integer;
begin
  ss:=formatdatetime('yyyymm',encodedate(year,month,1));
  //if copy(no,1,6)>=ss then ss:=copy(no,1,6);
  //ss:=copy(ss,1,6);
  if no=' then result:=ss+'00001' else
  try
  delete(no,1,6);
  i:=strtoint(no)+1;
  result:=ss+strright('00000'+inttostr(i),5);
  except
  result:=ss+'00001';
  end;
end;

function GetSerial(no:string):string;
var
  ss:string;
  i:integer;
begin
  ss:=formatdatetime('yyyymmdd',ServerDateTime);
  if copy(no,1,8)<ss then result:=ss+'0001' else
  try
    ss:=copy(no,1,8);
    delete(no,1,8);
    i:=strtoint(no)+1;
    result:=ss+strright('0000'+inttostr(i),4);
  except
    result:=ss+'0001';
  end;
end;


procedure WriteParamString(section,symbol,value:string);
var
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if QueryParameter.IsEmpty then
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('insert into uparameter (usection,usymbol,uvalue) values');
      QueryParameter.sql.add('("'+section+'","'+symbol+'","'+value+'")');
    end else
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('update uparameter set uvalue="'+value+'" ');
      QueryParameter.sql.add('where usection="'+section+'" and uSymbol="'+symbol+'"');
    end;
    QueryParameter.ExecSQL;
  end;
  queryParameter.free;
end;

procedure WriteParamInteger(section,symbol:string;value:integer);
var
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if QueryParameter.IsEmpty then
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('insert into uparameter (usection,usymbol,uvalue) values');
      QueryParameter.sql.add('("'+section+'","'+symbol+'","'+inttostr(value)+'")');
    end else
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('update uparameter set uvalue="'+inttostr(value)+'"');
      QueryParameter.sql.add('where usection="'+section+'" and uSymbol="'+symbol+'"');
    end;
    QueryParameter.ExecSQL;

    {if not QueryParameter.locate('usection;usymbol',vararrayof([section,symbol]),[loCaseInsensitive]) then
    begin
      QueryParameter.append;
      QueryParameter.edit;
      QueryParameter.FieldByName('usection').asstring:=section;
      QueryParameter.FieldByName('usymbol').asstring:=symbol;
    end else QueryParameter.edit;
    QueryParameter.FieldByName('uvalue').asinteger:=value;
    QueryParameter.post;
    try
    if not pUserDatabase.InTransaction then pUserDatabase.StartTransaction;
    QueryParameter.CommitUpdates;
    pUserDatabase.Commit;
    except
    pUserDatabase.Rollback;
    end;}
  end;
  queryParameter.free;
end;

procedure WriteParamFloat(section,symbol:string;value:real);
var
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if QueryParameter.IsEmpty then
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('insert into uparameter (usection,usymbol,uvalue) values');
      QueryParameter.sql.add('("'+section+'","'+symbol+'","'+floattostr(value)+'")');
    end else
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('update uparameter set uvalue="'+floattostr(value)+'"');
      QueryParameter.sql.add('where usection="'+section+'" and uSymbol="'+symbol+'"');
    end;
    QueryParameter.ExecSQL;
  end;
  queryParameter.free;
end;

procedure WriteParamBoolean(section,symbol:string;value:boolean);
var
  ss:string;
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  if value then ss:='1' else ss:='0';
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    //if not QueryParameter.locate('usection;usymbol',vararrayof([section,symbol]),[loCaseInsensitive]) then
    if QueryParameter.IsEmpty then
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('insert into uparameter (usection,usymbol,uvalue) values');
      QueryParameter.sql.add('("'+section+'","'+symbol+'","'+ss+'")');
      {QueryParameter.append;
      QueryParameter.edit;
      QueryParameter.FieldByName('usection').asstring:=section;
      QueryParameter.FieldByName('usymbol').asstring:=symbol;}
    end else
    begin
      QueryParameter.close;
      QueryParameter.sql.clear;
      QueryParameter.sql.add('update uparameter set uvalue="'+ss+'"');
      QueryParameter.sql.add('where usection="'+section+'" and uSymbol="'+symbol+'"');
      {QueryParameter.edit;
      QueryParameter.FieldByName('uvalue').asboolean:=value;
      QueryParameter.post;}
    end;
    QueryParameter.ExecSQL;
  end;
  queryParameter.free;
end;


function  ReadParamString(section,symbol,value:string):string;
var
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  QueryParameter.close;
  QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
  QueryParameter.open;
  if not QueryParameter.IsEmpty then value:=trim(QueryParameter.FieldByName('uvalue').asstring);
  result:=value;
  queryParameter.free;
end;

function  ReadParamInteger(section,symbol:string;value:integer):integer;
var
  queryParameter:TQuery;
  ss:string;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  result:=value;
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if not QueryParameter.IsEmpty then
    try
    ss:=trim(QueryParameter.FieldByName('uvalue').asstring);
    result:=strtoint(ss);
    except
    result:=value;
    end;
  end;
  queryParameter.free;
end;

function  ReadParamFloat(section,symbol:string;value:real):real;
var
  queryParameter:TQuery;
  ss:string;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  section:=uppercase(section);
  symbol:=uppercase(symbol);
  result:=value;
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if not QueryParameter.IsEmpty then
    try
    ss:=trim(QueryParameter.FieldByName('uvalue').asstring);
    result:=strtofloat(ss);
    except
    result:=value;
    end;
  end;
  queryParameter.free;
end;

function  ReadParamBoolean(section,symbol:string;value:boolean):Boolean;
var
  queryParameter:TQuery;
begin
  queryParameter:=Tquery.create(nil);
  queryParameter.DatabaseName:=ReadValue(psUserDataBaseName);
  //pUserdataBase:=readdatabase(psUserdataBase);
  //QueryParameter.DatabaseName:=pUserdataBase.DatabaseName;

  section:=uppercase(section);
  symbol:=uppercase(symbol);
  result:=value;
  //with DMparameter do
  begin
    QueryParameter.close;
    QueryParameter.sql.text:='select * from uParameter where usection="'+section+'" and uSymbol="'+symbol+'"';
    QueryParameter.open;
    if not QueryParameter.IsEmpty then
    try
    result:=QueryParameter.FieldByName('uvalue').asstring='1';
    except
    result:=value;
    end;
  end;
  queryParameter.free;
end;

function ServerDateTime:TDatetime;
var
  query1:TQuery;
begin
  query1:=Tquery.create(nil);
  query1.DatabaseName:=ReadValue(psUserDataBaseName);
  query1.sql.text:='select  getdate() as date0';
  query1.open;
  result:=query1.fieldbyname('date0').asDatetime;
  query1.free;
end;

function  GetRandom:string;                              {返回随机数}
var
  j:integer;
  getstr:STRING;
begin
  Randomize;
  getstr:=';
  for j:=0 to 9 do getstr:=getstr+inttostr(random(10));
  result:=getstr;
end;

function  GetRandomA:string;                              {返回随机数}
var
  j:integer;
  getstr:STRING;
  n:word;
begin
  Randomize;
  n:=ord('A');
  getstr:=';
  for j:=0 to 9 do getstr:=getstr+char(n+random(25));
  result:=getstr;
end;

procedure Draw3dText(canvas:TCanvas;rect:TRect;text:string;Text3DStyle:TTextStyle;Alignment: TAlignment);
begin
  with canvas do
  begin
    brush.style:=bsClear;
    font.color:=clHighlightText;
    case Alignment of
      taLeftJustify:DrawText(handle,pchar(text),-1,rect,DT_LEFT+dt_vcenter+dt_singleline);
      taCenter:DrawText(handle,pchar(text),-1,rect,dt_center+dt_vcenter+dt_singleline);
      taRightJustify:DrawText(handle,pchar(text),-1,rect, DT_RIGHT+dt_vcenter+dt_singleline);
    end;
    if Text3DStyle=tsRaised then
    begin
      inc(rect.left);
      inc(rect.top);
    end else
    begin
      dec(rect.left);
      dec(rect.top);
    end;
    font.color:=clWindowText;
    case Alignment of
      taLeftJustify:DrawText(handle,pchar(text),-1,rect,DT_LEFT+dt_vcenter+dt_singleline);
      taCenter:DrawText(handle,pchar(text),-1,rect,dt_center+dt_vcenter+dt_singleline);
      taRightJustify:DrawText(handle,pchar(text),-1,rect, DT_RIGHT+dt_vcenter+dt_singleline);
    end;
  end;
end;
end.
----------------------------------------------
-我是一只菜菜鸟.
作者:
男 moodsky (moodsky) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 12:52:13
1楼: 顶!
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/17 12:53:49
2楼: 呵呵不错 不错 顶一下!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/17 12:56:17
3楼: 能不能整合到界面中,通过PAS发过来呢?谢谢
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 myso (unver) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 14:54:33
4楼:  flyers (飞翔者)  
 ...过春节再说嘛.......
----------------------------------------------
-我是一只菜菜鸟.
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/17 15:40:34
5楼: 嗬嗬,没关系的。
很好,强烈支持!
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 zxf007 (ZXF) ★☆☆☆☆ -
普通会员
2004/1/17 15:42:27
5楼: 哈哈好东东我也是只菜鸟!
共同学习吧!
有QQ的加我吧!
18719287
还有EMAIL:ZXF820325@21CN.COM按此在新窗口浏览图片
----------------------------------------------
Hello
作者:
男 charlesb (charles barkley) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 16:38:31
6楼: 以后这种帖子最好把delphi的单元文件直接传上来,这样看太费劲
----------------------------------------------
喜欢运动、音乐、收藏、旅游的程序员。
http://www.x163.org/?r=charles_b
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/17 17:02:28
7楼: 同意6楼观点!
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 zxdcj (月下舞者) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 17:04:41
7楼: 这也是菜鸟做的,天!
那我算什么,是雏鸟吗?
好像也算不上,要么就是他在撒谎,
是在撒谎
他不是菜鸟!
----------------------------------------------
-
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/17 17:08:23
8楼: 呵呵,不光是撒谎的菜鸟,还是骗人的菜鸟,真是应该被谴责的……
如果他没有骗人,可能他在指“相对于Borland那些程序员来说,他比较菜”。
如果相对于2ccc来说,那就是高手……呵呵。所以“菜鸟”一词不能老用,以为自己是菜鸟,就……呵呵,不往下讲了。总之,他绝对是高手,而不是菜鸟!
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 19:47:40
9楼: 楼主没有撒谎吧,因为
function  strLeft(ss:string;count:integer):string;      {从字符串左边返回字符串}
function  strRight(ss:string;count:integer):string;     {从字符串右边返回字符串}
function  Space(count:integer):string;               {返回空格字符串}
function  Replicate(char: string;count:integer):string; {返回重复字符串}

这几个函数其实可以使用 LeftStr, RightStr 等函数。
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 lovedelphi1 (梦之铃) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 21:07:10
10楼: 楼上的哥哥Delphi里有你说的这两个函数吗?
----------------------------------------------
-
作者:
男 xinhua (傻林) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 21:26:12
11楼: 是两个函数,但是我不知道在那个单元里面呀!!
----------------------------------------------
愿和所有喜欢DELPHI的人成为朋友!!
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/1/17 21:33:42
12楼: 怎么会不知道呢?你们怎么这么不爱看帮助啊?
此帖子包含附件:
JPEG 图像
大小:81.0K
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 myso (unver) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 21:38:57
13楼: 都说了是菜鸟了.呵呵,,,
注意看我另外一个东东才是真的.
----------------------------------------------
-我是一只菜菜鸟.
作者:
女 jwc163 (sillybird) ★☆☆☆☆ -
盒子活跃会员
2004/1/17 22:30:26
14楼: 菜鸟是现在的流行,不是那种“菜”的菜鸟

好东!顶!
按此在新窗口浏览图片 按此在新窗口浏览图片


----------------------------------------------
因为蓝天的诱惑 梦想有天与白云共舞!
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
2004/1/18 8:19:02
15楼: 不错,参考学一下按此在新窗口浏览图片
----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/18 14:09:04
16楼: 那个东东才是真的??????????介绍一下……
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/1/18 14:10:56
17楼: 12楼的大哥,也许那哥们不是没有看帮助的习惯,而是根本看不懂……不是吗?
其实我也差不多,只不过掌握了诀窍而以……
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 qej_cool (江仔) ★☆☆☆☆ -
盒子活跃会员
2004/1/19 18:06:27
18楼: 好苦闷哦~~按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 lovedelphi1 (梦之铃) ★☆☆☆☆ -
盒子活跃会员
2004/2/2 11:59:11
19楼: 我用的Delphi5.
Delphi5里没有这两个函数啊!
----------------------------------------------
-
作者:
男 waterstone (waterstone) ★☆☆☆☆ -
盒子活跃会员
2004/2/2 12:17:29
20楼: 学无止境啊!

----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/2/4 18:41:35
21楼: 不错不错,值得学习,可以做成Pas啊,看起来不就顺多了。
因为我的Delphi里只有Delphi 8.0 For .Net FrameWork,所以无法验证错误,因此用记事本保存起来了,里面原封不动,这样看这才方便,不是吗?
此帖子包含附件:flyers_200424184224.rar 大小:5.5K
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
男 fwjindream (fwjindream) ★☆☆☆☆ -
盒子活跃会员
2004/2/7 12:03:42
22楼: 函数不错,
只是很多函数用到了自身的函数。
这样取其中一种功能,
就必须把相关的函数也带进来。
比较烦,
不过还是很不错的东东。
顶一下。
----------------------------------------------
我是鸟菜
作者:
男 sutao (炸蛋) ★☆☆☆☆ -
普通会员
2004/6/23 14:10:52
23楼: 评价:
可读性差
垃圾代码多
函数独立性不好

----------------------------------------------
作者:
男 flyers (flyers) ★☆☆☆☆ -
普通会员
2004/8/2 11:02:26
24楼: 好啦,菜鸟做出这样的水平已然很好了,我刚学C#几天,就做出一个小程序,不过个人认为太菜
----------------------------------------------
大家好,我是Flyers。

是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
作者:
女 matchbox (matchbox) ★☆☆☆☆ -
普通会员
2004/8/3 19:57:49
25楼: to:17楼的Flyers兄,小弟也有时看不懂Delphi的帮助,有时候很郁闷的,不知该什么看,
你说"...只不过掌握了诀窍而以..",你能给小弟指点一下吗?我的QQ是251778629,
Msn是liuyx_81@hotmail.com,希望能成为delphi朋友,请多多给予指教
.
----------------------------------------------
DELPHI朋友,大家好
作者:
男 hlms (hlms) ★☆☆☆☆ -
普通会员
2004/8/16 11:17:06
26楼: 我是新手,学习一下^_^
----------------------------------------------
-
作者:
男 zerohk (零度空间) ★☆☆☆☆ -
普通会员
2005/2/27 22:48:37
27楼:
----------------------------------------------
零度空间
作者:
女 anne6795 (紫燕归) ★☆☆☆☆ -
普通会员
2005/3/1 14:32:24
28楼: 按此在新窗口浏览图片 按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 qym1113 (fenghe) ★☆☆☆☆ -
普通会员
2005/3/9 18:57:07
29楼: 我先看得回帖,看了大家的评论,我想好好看看楼主的函数了,想必很好!
----------------------------------------------
-
作者:
男 haguyi (haguyi) ★☆☆☆☆ -
普通会员
2005/3/10 11:02:22
30楼: 郁闷的,看来我是菜鸟中的极品
我一点都看不懂,脑子里一片空白
谁教教我啊
QQ22918789
----------------------------------------------
-
作者:
男 goodsuperstar (superstar) ★☆☆☆☆ -
盒子活跃会员
2005/3/14 16:16:30
31楼: 这样的"菜鸟"要是再多点就好鸟按此在新窗口浏览图片

开拓精神值得赞扬!

----------------------------------------------
幼儿园的时候我不谈恋爱,因为不知道什么是贼
小学的时候我不谈恋爱,因为知道没有贼心也没有贼胆
初中的时候我不谈恋爱,因为有贼胆没贼心
高中的时候我不谈恋爱,因为有贼心没贼胆
大学的时候我不谈恋爱,因为有了贼心,也有了贼胆,贼却没了
作者:
男 haifeng1978 (海风) ★☆☆☆☆ -
普通会员
2005/3/16 11:37:00
32楼: 顶,表示感谢!
----------------------------------------------
-虚心向各位delphi前辈学习!
作者:
男 vagrant2005 (vagrant2005) ★☆☆☆☆ -
普通会员
2005/3/21 8:45:44
33楼: 这样的东西这么好,还是彩鸟???
----------------------------------------------
-
作者:
男 8713007 (8713007) ★☆☆☆☆ -
盒子活跃会员
2005/3/28 11:12:58
34楼: 好东西!
学习中!
----------------------------------------------
-
作者:
男 xtzyb (心电感应) ★☆☆☆☆ -
普通会员
2005/4/3 17:34:06
35楼: 我是一个delphi爱好者,我是QQ:86024407  要找一个人合作开发软件,有意者请加我,请注明delphi字样
----------------------------------------------
-
作者:
男 gdsa (文稠紧) ★☆☆☆☆ -
盒子活跃会员
2005/4/5 21:37:31
36楼: shDBGrids.dcu
是什么单元??????????
----------------------------------------------
-
作者:
男 gdsa (文稠紧) ★☆☆☆☆ -
盒子活跃会员
2005/4/5 21:38:11
37楼: shline.dcu
是什么单元??????????
----------------------------------------------
-
作者:
男 zzh999 (9999) ★☆☆☆☆ -
盒子活跃会员
2005/4/10 11:48:58
38楼: 共同学习
----------------------------------------------
-
作者:
男 xtzyb (心电感应) ★☆☆☆☆ -
普通会员
2005/4/17 2:01:07
39楼: 36楼的兄弟呀,这是什么单元待问你自己呀,你从哪里找来的呀,我看好像是那个控件的单元或
----------------------------------------------
-
作者:
男 yl9931 (我的天空) ★☆☆☆☆ -
盒子活跃会员
2005/4/22 9:08:34
40楼: 东西不错。只是我看得晕晕的
----------------------------------------------
-
作者:
男 sowant (守望) ★☆☆☆☆ -
盒子活跃会员
2005/5/29 10:35:25
41楼:
----------------------------------------------
-
作者:
男 luckbird (雄狮) ★☆☆☆☆ -
普通会员
2005/6/5 14:12:57
42楼: 共同学习,一起进步.
----------------------------------------------
-
作者:
男 zyb0565 (黑梦) ★☆☆☆☆ -
普通会员
2006/1/15 23:34:27
43楼: 呵呵  不错啊 

很多东西值得学习的

编写函数或者过程  确实需要技巧啊  收下先
----------------------------------------------
我正站在人生分岔口
作者:
男 liwencai (op) ★☆☆☆☆ -
普通会员
2006/5/6 20:18:51
44楼: 真的不错!
----------------------------------------------
-
作者:
男 capkom (豺狼) ★☆☆☆☆ -
普通会员
2006/5/13 19:32:03
45楼: 我菜啊  学习一下  自己编写函数还不行
----------------------------------------------
永远的初学者!!!
作者:
男 xgwzw (hanry) ★☆☆☆☆ -
普通会员
2006/8/5 11:30:42
46楼: 如何用鼠标控制listbox的item项,用鼠标托动改变位置 
数据很多时,有滚动条,不能一次将第一项拖到最后一项
----------------------------------------------
-
作者:
男 leftbank (左岸) ★☆☆☆☆ -
普通会员
2006/9/13 14:44:22
47楼: 不错 UP一下
----------------------------------------------
静下心来好好研究~
作者:
男 xuejf_568568 (sandy) ★☆☆☆☆ -
盒子活跃会员
2006/9/13 18:33:27
48楼: 会者温故,难者努力!
----------------------------------------------
-
作者:
男 zhaowenjin20 (zhaowj) ★☆☆☆☆ -
普通会员
2006/11/19 8:40:58
49楼: 很好的汇总,强烈的给你强顶
----------------------------------------------
-
作者:
男 gamemx (拉克) ★☆☆☆☆ -
普通会员
2007/1/4 18:52:30
50楼: 很好的汇总,强烈的给你强顶
----------------------------------------------
-
作者:
男 cecil324147 (果冻) ★☆☆☆☆ -
普通会员
2007/6/6 8:46:11
52楼: 值得顶一下
----------------------------------------------
希望能和大家多多交流!谢谢!
作者:
男 deng1232007 (dengjr) ★☆☆☆☆ -
普通会员
2007/6/13 23:11:27
53楼: 我是一位delphi新手,新手上路请各位高手多多指教,谢谢!
----------------------------------------------
-
作者:
男 zo1698 (压力) ★☆☆☆☆ -
普通会员
2007/6/14 16:52:58
55楼: 收集收集
----------------------------------------------
喘不过气啊~~~~
作者:
男 kuainq (好汉做事痛痛快快!) ★☆☆☆☆ -
普通会员
2007/7/17 14:19:21
56楼: 很早就看了这样的一个帖子,很是奇怪,自己竟然没有顶一把,难得又来温顾一下,
顶就一个字,
支持原创!啊啊!
----------------------------------------------
-
作者:
男 ad324147 (透明果) ★☆☆☆☆ -
普通会员
2007/7/20 11:07:38
57楼: 好像很不错哦!哈哈。。。顶一下!
----------------------------------------------
新手上路,多多支持!TKS!
作者:
男 yeyun (野云) ★☆☆☆☆ -
盒子活跃会员
2008/4/17 12:55:10
58楼: 新手收藏学习.谢谢楼主的共享 .
----------------------------------------------
-
作者:
男 cji (农夫) ★☆☆☆☆ -
盒子活跃会员
2011/4/8 10:50:02
61楼: 学习写函数也是一个锻炼、提高的过程。
----------------------------------------------
-
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/4/30 14:33:18
62楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
男 boehma18 (boehma18) ▲▲▲▲▲ -
禁用账号
2011/5/14 14:51:06
63楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/6/13 23:26:03
64楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/6/26 23:52:58
65楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/3 21:46:11
66楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/8 22:51:20
67楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行148.4375毫秒 RSS