也就是在edit1框中输入"123.58",然后按回车,则edit2框中就显示"壹百贰拾叁元五角捌分".
解决方案 »
- Delphi怎么显示魔兽血条、蓝条~
- 如何删除TTreeView下的所有子节点?
- 有熟悉ORACLE8的朋友吗?请帮助看条SQL语句.
- ip地址转换为一个整数
- 这几天出差,没有时间为大家解答问题,对不起了。回去后把得到“网络流量”函数公开。大家给点意见
- 我想打印Table中选中的一条的记录(有meno字段)如何实现?
- Delphi会不会被淘汰?
- 用ado连接oracle不上,服务器已经填写了,帐号密码sysman/oem_temp,system/manager都尝试过了
- delphi使某個程序改变现有速度.
- 哪位大侠帮我翻译一下
- 谁能告诉我如何自动获取本机IP吗?
- 如何实现输入一条记录时, 打印机马上打印出该条记录的内容而不走页
WM_char 是发生在 onkeydown 事件之后,
然后根据chcharcode
来响应你的事件
123.48 div 100 {div ?????};
不会吧!
2、收费单是流水帐,是同一次购物中分页码哪 还是不同人购物用连续码?
如果是前种则只是个DIV和MOD的问题,如果是后一种你得找个地方来放
目前打印到第几页的可写在数据库中或文件里,打印时再读出来
怎样转变大小写,给我吧。mail:[email protected] 谢了!
怎样转变大小写,给我源程序吧。mail:
[email protected] 谢了!
能否也给我一份。先谢谢了。 [email protected]
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;