h1d3 0 Denunciar post Postado Março 5, 2007 ALGUEM SABE COMO EU FAÇO PRA:ESCREVO UM NUMERO EM UM EDIT,E QUANDO ACABO EN OUTRO EDIT APAREÇE O MESMO NUMERO MAS ESCRITO POR EXTENSO,ALGUEM SABE COMO LIGO ESSA FUNÇÃO? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 5, 2007 Uma forma seria usando esta UNIT: unit Ext; interfacefunction extenso (valor: real): string; implementation usesSysUtils, Dialogs; function extenso (valor: real): string;varCentavos, Centena, Milhar, Milhao, Texto, msg: string;constUnidades: array[1..9] of string = ('Um', 'Dois', 'Tres', 'Quatro', 'Cinco', 'Seis', 'Sete', 'Oito', 'Nove');Dez: array[1..9] of string = ('Onze', 'Doze', 'Treze', 'Quatorze', 'Quinze', 'Dezesseis', 'Dezessete', 'Dezoito', 'Dezenove');Dezenas: array[1..9] of string = ('Dez', 'Vinte', 'Trinta', 'Quarenta', 'Cinquenta', 'Sessenta', 'Setenta', 'Oitenta', 'Noventa');Centenas: array[1..9] of string = ('Cento', 'Duzentos', 'Trezentos', 'Quatrocentos', 'Quinhentos', 'Seiscentos', 'Setecentos', 'Oitocentos', 'Novecentos'); function ifs(Expressao: Boolean; CasoVerdadeiro, CasoFalso: String): String;beginif Expressaothen Result:=CasoVerdadeiroelse Result:=CasoFalso;end; function MiniExtenso (trio: string): string;varUnidade, Dezena, Centena: string;beginUnidade:='';Dezena:='';Centena:='';if (trio[2]='1') and (trio[3]<>'0') thenbeginUnidade:=Dez[strtoint(trio[3])];Dezena:='';endelsebeginif trio[2]<>'0' then Dezena:=Dezenas[strtoint(trio[2])];if trio[3]<>'0' then Unidade:=Unidades[strtoint(trio[3])];end;if (trio[1]='1') and (Unidade='') and (Dezena='')then Centena:='cem'elseif trio[1]<>'0'then Centena:=Centenas[strtoint(trio[1])]else Centena:='';Result:= Centena + ifs((Centena<>'') and ((Dezena<>'') or (Unidade<>'')), ' e ', '') + Dezena + ifs((Dezena<>'') and (Unidade<>''),' e ', '') + Unidade;end; beginif (valor>999999.99) or (valor<0) thenbeginmsg:='O valor está fora do intervalo permitido.';msg:=msg+'O número deve ser maior ou igual a zero e menor que 999.999,99.';msg:=msg+' Se não for corrigido o número não será escrito por extenso.';showmessage(msg);Result:='';exit;end;if valor=0 thenbeginResult:='';Exit;end;Texto:=formatfloat('000000.00',valor);Milhar:=MiniExtenso(Copy(Texto,1,3));Centena:=MiniExtenso(Copy(Texto,4,3));Centavos:=MiniExtenso('0'+Copy(Texto,8,2));Result:=Milhar;if Milhar<>'' thenif copy(texto,4,3)='000' then Result:=Result+' Mil Reais'else Result:=Result+' Mil, ';if (((copy(texto,4,2)='00') and (Milhar<>'') and (copy(texto,6,1)<>'0')) or (centavos='')) and (Centena<>'') then Result:=Result+' e ';if (Milhar+Centena <>'') then Result:=Result+Centena;if (Milhar='') and (copy(texto,4,3)='001') thenResult:=Result+' Real'elseif (copy(texto,4,3)<>'000') then Result:=Result+' Reais';if Centavos='' thenbeginResult:=Result+'.';Exit;endelsebeginif Milhar+Centena='' then Result:=Centavos else Result:=Result+', e '+Centavos;if (copy(texto,8,2)='01') and (Centavos<>'') thenResult:=Result+' Centavo.'elseResult:=Result+' Centavos.';end;end;end. Precisaria somente criar, chamar e receber o nome por extenso... e ainda existe componentes que fazem isto, um deles seria o TExtenso. Compartilhar este post Link para o post Compartilhar em outros sites
h1d3 0 Denunciar post Postado Março 5, 2007 Cara brigado a atencao,mas tp so meio lrdo no delphi ainda,baxei o negocio q você flo tudo,mas tp tem como c fla +- como eu uso esse negocio e o codigo font? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 5, 2007 Bom... Já instalou o componente ? Caso ainda não, vá em Component -> Install Component... -> Browse -> Selecione o arquivo .PAS -> Abrir -> Ok -> Compile -> Install (depois de instalar o componente, precisa deixar o .PAS sempre nesta pasta), deve de ter sido adicionado um componente na barra "Samples". Adicione o componente no formulário desejado, depois: Extenso1.Numero:=edit1.Text;edit2.Text:=Extenso.Extenso; Compartilhar este post Link para o post Compartilhar em outros sites
h1d3 0 Denunciar post Postado Março 5, 2007 cara tp criei o labelext.pas dai joguei os negocio que c flo pra baxa na msm pasta certo,ai executei o componente,dei o browse la puis o pas,ai mandei compila,dai tp parece q deu uma atualizada na barra,mas nao apareceu nenhum componente novo,ta onde no samples?nm vi nd novo la Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 5, 2007 Se baixar o componente não precisa criar nada, caso utilize o fonte que passei no código acima, ai sim precisa criar um arquivo .PAS, mas não precisa instalar, somente se instala o componente...Qual a versão do seu delphi ? Compartilhar este post Link para o post Compartilhar em outros sites
h1d3 0 Denunciar post Postado Março 6, 2007 to usando o delphi 6 enterprise,como faço T-T? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 6, 2007 Mas você quer instalar o componente ou usar os fontes ? Compartilhar este post Link para o post Compartilhar em outros sites
h1d3 0 Denunciar post Postado Março 6, 2007 bom cara c pa e mais facil usa o componente num é?mas c recomenda oq? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Março 6, 2007 Mais fácil seria o uso do componente... Caso ele não ficou na aba que mencionei, teria de ver onde ele pode ter ficado, caso não consiga, usa a UNIT mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
h1d3 0 Denunciar post Postado Março 6, 2007 certo vo tenta usa a unit,mas tp faco como?boto o codigo direto no form?ou en algum edit ou um label q vai aparece o extenso?>noob< XD~~ Compartilhar este post Link para o post Compartilhar em outros sites