也就是在edit1框中输入"123.58",然后按回车,则edit2框中就显示"壹百贰拾叁元五角捌分".

解决方案 »

  1.   

    通过截获WM_char消息
     WM_char 是发生在 onkeydown 事件之后,
       然后根据chcharcode 
       来响应你的事件
      

  2.   

    通过123.48 div 100=1 得到1百的方法实现   
      

  3.   

    to whodxaje(whodxaje):
      123.48 div 100 {div ?????};
       不会吧!
      

  4.   

    1.写个函数来转变大小写然后在EDIT1。ONCHANGE时可以(函数我有源程序,其实不难自己可以 写)
    2、收费单是流水帐,是同一次购物中分页码哪 还是不同人购物用连续码?
      如果是前种则只是个DIV和MOD的问题,如果是后一种你得找个地方来放
      目前打印到第几页的可写在数据库中或文件里,打印时再读出来
      

  5.   

    to:lxl(蚊蚊) 
    怎样转变大小写,给我吧。mail:[email protected]  谢了!
      

  6.   

    to:lxl(蚊蚊) 
    怎样转变大小写,给我源程序吧。mail: 
    [email protected]  谢了!
      

  7.   

    to:lxl(蚊蚊) 
    能否也给我一份。先谢谢了。 [email protected]
      

  8.   

    Function NumberToChinese(Number:Currency):String;
    var iNumLength:Integer;//数字长度
        i,k:Integer;
        sNumber:String;
        arChinseUnit:Array [0..13] of String;
        arALB:Array [0..9] of String;
        bZeroFlag,bHasUnit:Boolean;
    begin
      arChinseUnit[0]  :='分';  arChinseUnit[1]  :='角';  arChinseUnit[2]  :='元';
      arChinseUnit[3]  :='拾';  arChinseUnit[4]  :='佰';  arChinseUnit[5]  :='仟';
      arChinseUnit[6]  :='万';  arChinseUnit[7]  :='拾';  arChinseUnit[8]  :='佰';
      arChinseUnit[9]  :='仟';  arChinseUnit[10] :='亿';  arChinseUnit[11] :='拾';
      arChinseUnit[12] :='佰';  arChinseUnit[13] :='仟';
      arALB[0]:='零';  arALB[1]:='壹';  arALB[2]:='贰';  arALB[3]:='叁';  arALB[4]:='肆';
      arALB[5]:='伍';  arALB[6]:='陆';  arALB[7]:='柒';  arALB[8]:='捌';  arALB[9]:='玖';  Try
        sNumber:=Trim(FloatToStr(Abs(Number)));
      Except
        Result:='转换出错!';
        Exit;
      end;
      i:=Pos('.',sNumber);
      iNumLength:=StrLen(PChar(sNumber));
      if (iNumLength-i>13) or (i>13) then begin //整数超过14位
        Result:='数字太大,无法转换!';
        Exit;
      end;
      if ( ( (iNumLength-i)>=3 ) and (i>0) ) then    //处理小数点后大于2位的情况
         sNumber:=Copy(sNumber,1,i+2);
      if ( ( (iNumLength-i)=1 ) and (i>0) ) then    //处理小数点后只有一位的情况补足零
         sNumber:=sNumber+'0';
      if i=0 then                               //处理无小数的情况,无小数点
         sNumber:=sNumber+'.00';
      if i=iNumLength then                      //处理无小数的情况,有小数点
         sNumber:=sNumber+'00';  i:=Pos('.',sNumber);
      sNumber:=Copy(sNumber,1,i-1)+Copy(sNumber,i+1,2);
      iNumLength:=StrLen(PChar(sNumber));
      bZeroFlag:=False;
      bHasUnit:=False;
      Result:='';
      For I:=1 to iNumLength do begin   //处理整数部分
        k:=StrToInt(Copy(sNumber,i,1));    if k<>0 then begin
          bHasUnit:=False;
          if bZeroFlag then begin
            Result:=Result+'零'+arALB[k]+arChinseUnit[iNumLength-i];
            bZeroFlag:=False;
          end else //end if bZeroFlag
            Result:=Result+arALB[k]+arChinseUnit[iNumLength-i];
        end;    if k=0 then begin
          if ( (arChinseUnit[iNumLength-i]<>'角') and (arChinseUnit[iNumLength-i]<>'拾')
                   and (arChinseUnit[iNumLength-i]<>'佰')
                   and (arChinseUnit[iNumLength-i]<>'仟')) then
            if not bHasUnit then begin
              Result:=Result+arChinseUnit[iNumLength-i];
              bHasUnit:=True;
            end;   //end if not bHasUnit
          bZeroFlag:=True;
          if (arChinseUnit[iNumLength-i]='元') then
            bZeroFlag:=False;
        end;//end k=0  end;//end for  //处理小数部分的最后一位
      k:=StrToInt(Copy(sNumber,iNumLength,1));
      if k=0 then
        if Copy(Result,Length(Result)-1,2)='元' then
          Result:=Result+'整'
        else
          Result:=Copy(Result,1,Length(Result)-2)+'整';  if ((Length(sNumber)=3) and (StrToInt(sNumber)<100)) then
        Result:=Copy(Result,3,Length(Result)-2);  if ((Length(sNumber)=3) and (StrToInt(sNumber)<10)) then
        Result:=Copy(Result,3,Length(Result)-2);
      if Number<0 then
        Result:='币:负'+Result
      else
        Result:='币:'+Result;
    end;