Re: [delphi-br] Confirmação de e-mail
Este problema apareceu aqui na lista e a solução dada foi esta. Não testei. Utilizo o componente INDY para o envio de e-mail pelo Delphi 7. Agora estou com o seguinte problema: Preciso enviar um email com CONFIRMAÇÃO de leitura. solução IdMsgSend.ReceiptRecipient.Text := '[EMAIL PROTECTED]'; Espero ter ajudado. Allan GabrielAM [EMAIL PROTECTED] escreveu: Prezados, estou precisando criar um sistema de envio e de resposta de e-mails, só que o e-mail de envio quase nunca são os mesmos, vou explicar o caso. Envio um e-mail para o fornecedor, preciso que ele me confirme o recebimento, mas se ele não confirmar o recebimento fica difícil, então pensei em algo que ao ler a mensagem ele envie a resposta sem pedir nada ao usuário/leitor do e-mail. Preciso saber também que componentes usarei, se alguém tem algum exemplo pra isso por favor me de umas dicas, pois ainda não desenvolvi nada parecido.. Obrigado desde já. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Form é fechado, mas memóri a continua a mesma ?????
Bom dia Flavio Geralmente faco isso para chamar um formulário e ao fecha-lo o mesmo saira da memória. procedure TFMenu.Clientes1Click(Sender: TObject); begin try FConsClientes := TFConsClientes.Create( Application ); FConsClientes.ShowModal; finally FreeAndNil( FConsClientes ); end; end; t+ - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Objetos na memória ?
Pessoal, aproveitando o outro assunto na lista, alguém conhece algum programa que verifica se um objeto está criado na memória e não foi liberado ? Sei que isso existe, mas nunca usei, alguém conhece algo parecido ? Vinicius dos Santos Analista de Desenvolvimento Júnior MSI SOLUÇÕES Av. Dr. Altino Arantes, 131 Sala 145 - 146 Centro - Ourinhos/Sp - Brasil Fone/Fax: +55 (14) 3324-8181 www.msisolucoes.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Objetos na memória ?
Vinicius Santos - MSI wrote: Pessoal, aproveitando o outro assunto na lista, alguém conhece algum programa que verifica se um objeto está criado na memória e não foi liberado ? Sei que isso existe, mas nunca usei, alguém conhece algo parecido ? Para otimizar o gerenciamento de memória e reportar vazamentos: http://sourceforge.net/project/showfiles.php?group_id=130631 Para remover vazamentos de memória difíceis de detectar: http://blog.joaomorais.com.br/2008/02/06/remover-vazamento-de-memoria.html -- Joao Morais
RE: RES: [delphi-br] [DICA] Formatação de telefones, C PF e CNPJ
Estou retificando parte do código da dica: const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo= ''; CPFNulo = '999'; CNPJNulo= '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones Result := StringReplace(Result, SinalMais, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, SinalPonto, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, AbreParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, FechaParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, HifenTraco, EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToIntDef(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 21:48:44 -0300 Subject: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Prezado Rubem, Vamos combinar: Cri-Cri somos eu e você, o Cara aí é chato demais e bota chato nisso. Sem querer ofender Sr. João Moraishehehehe. Um grande abraço e parabéns por ter postado AQUI essa dica que vai ser de grande utilidade para muitos de nós. João Carlos De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: sábado, 23 de fevereiro de 2008 18:24 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: Confesso que na pressa na digitação do código, eu cometi uma tremenda gafe, mas o que importa é que o código é eficiente e funciona! E tb espero que vc tenha chegado a essa conclusão. Exatamente. Se não chegou, é sinal de que tenho um desafeto! Capaz. Não crio esse tipo de coisa, não me leva a lugar algum. Agora, se aceitas um comentário, acho que as dicas ficariam bem em um site. Enquanto aqui elas têm grande visibilidade, porém momentânea, ao serem publicadas elas seriam indexadas e seriam encontradas para sempre. Opinião pessoal. 2) Encontrei alguém mais cri-cri do que eu! Concordo em parte. -- Joao Morais To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 15:59:39 -0300 Subject: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: AbreAspas = '('; FechaAspas = ')'; Abre o quê? -- Joao Morais [As partes desta mensagem que não continham texto foram removidas] _ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true
[delphi-br] FastReport+Delphi 2005
Bom dia, Estou usando Delphi 2005 e gostaria de saber dos amigos qual a versão do FastReport compativel com essa versão do Delphi, e que a preview esteja em português. Se alguém puder me ajudar ficarei grato. sds Adjalma - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Confirmação de e-mail
Certo, mas como é que eu faço para ler o e-mail quando ele responde, existe alguma maneira de fazer isso via delphi 7?, se existe me dêem uma ajuda por favor. Obrigado. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] - Original Message - From: fabio giro To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 8:00 AM Subject: Re: [delphi-br] Confirmação de e-mail Este problema apareceu aqui na lista e a solução dada foi esta. Não testei. Utilizo o componente INDY para o envio de e-mail pelo Delphi 7. Agora estou com o seguinte problema: Preciso enviar um email com CONFIRMAÇÃO de leitura. solução IdMsgSend.ReceiptRecipient.Text := '[EMAIL PROTECTED]'; Espero ter ajudado. Allan GabrielAM [EMAIL PROTECTED] escreveu: Prezados, estou precisando criar um sistema de envio e de resposta de e-mails, só que o e-mail de envio quase nunca são os mesmos, vou explicar o caso. Envio um e-mail para o fornecedor, preciso que ele me confirme o recebimento, mas se ele não confirmar o recebimento fica difícil, então pensei em algo que ao ler a mensagem ele envie a resposta sem pedir nada ao usuário/leitor do e-mail. Preciso saber também que componentes usarei, se alguém tem algum exemplo pra isso por favor me de umas dicas, pois ainda não desenvolvi nada parecido.. Obrigado desde já. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Record not found or changed by another user
Walter, o endereço www.geocities.com/SiliconValley/Bay/1052/ClientDataset.html não foi encontrado. Há algum erro ou problema no site? ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/
Re: [delphi-br] FastReport+Delphi 2005
Olá, Uso BDS 2006 e tenho as versões 2.47 e 4.3 instaladas e funcionando perfeitamente. [] Andrei Em 25/02/08, Adjalma Costa[EMAIL PROTECTED] escreveu: Bom dia, Estou usando Delphi 2005 e gostaria de saber dos amigos qual a versão do FastReport compativel com essa versão do Delphi, e que a preview esteja em português. Se alguém puder me ajudar ficarei grato. sds Adjalma
Re: [delphi-br] Form é fechado, mas memóri a continua a mesma ?????
VC REMOVEU A LINHA Q CORRESPONDE AO FORM CRIADO? SE VC NAO REMOVER O SISTEMA CRIA O FORM DE QUALQUER FORMA! Joao Morais [EMAIL PROTECTED] escreveu: Flavio wrote: Olá pessoal, boa tarde, hoje fui gerenciar a memória que meu aplicativo gasta no task manager do windows xp e percebi que quando abro um form dentro do aplicativo, a memória consumida é expandida, mas quando fecho, a memória continua praticamente a mesma (diminui uns 5% do q consumiu). Abaixo estão os códigos de abertura do meu form (criado dinamicamente, ou seja, retirei ele dos forms auto-create do projeto) e fechamento do mesmo. Não se preocupe com isto. O gerenciador não devolve toda a memória que aloca do sistema, mesmo que você libere a memória corretamente. Alocar memória é um processo 'caro' e o gerenciador minimiza este processo. -- Joao Morais // criando e abrindo o form var Formulario : TformGraficos; begin // Cria o form dinamicamente Formulario := TformGraficos.Create(Application); Formulario.Top := 0; Formulario.Left := 0; end // fechando o form procedure TformGraficos.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; formGraficos := nil; end; Alguém tem uma luz para eu chegar até o final do túnel ?? Obrigado pela atenção. Flávio. - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Console
como faço para executar um Timer em uma aplicação CONSOLE, ou seja crio- o, habilito(enabled) e determino o tempo, como faço para ver se deu o tempo para executar uma rotina ?? grato Stainle
RE: [delphi-br] Console
O componente TTimer faz parte da unit extctrls. Crie um TTimer e dentro de sua aplicação console, defina uma classe contendo um método que possa ser atribuído ao evento OnTimer. Antes de habilitar o timer, defina o valor da propriedade Interval desse TTimer para o tempo (em milissegundos) que vc quer que a verificação de OnTimer seja feita. Boa sorte. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 14:19:37 + Subject: [delphi-br] Console como faço para executar um Timer em uma aplicação CONSOLE, ou seja crio- o, habilito(enabled) e determino o tempo, como faço para ver se deu o tempo para executar uma rotina ?? grato Stainle _ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile.live.com/signup/signup2.aspx?lc=pt-br
[delphi-br] RFID (Identificação por Rádio Frequencia) com Delphi
Olá pessoal, Estou iniciando um estudo sobre Smart Labels (Etiquetas Inteligentes) e gostaria de saber se alguém conhece algum projeto dessa tecnologia usando Delphi ou JBuilder. Preciso documentar um projeto para a divisão de patrimônio de uma determinada empresa e só encontro material em Java ou soluções proprietárias, gostaria de manter o foco nas ferramentas Borland pois são as utilizadas pelo cliente. Qualquer material até trabalho de faculdade já ajudaria. Agradeço a ajudar de todos. Jorge Ericsson S. Pinheiro Analista/Projetista de Sistemas Ericsson Sistemas e Soluções http://www.jericsson.com.br 61 9227.4785 / 3965.2992 / 3039.1768 Brasília - DF [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Engenharia Revesa
Eu posso esta enganado pois não testei todos os softwares de descompilação apenas o Dede e usando Aspack para comprir todos os texto e códigos dos meus sistemas, ficou dificil do aspack descompilar nem mesmo conseguir identificar a versão do Delphi. Espero ter entendido o seu problema. Em 23/02/08, Joao Morais [EMAIL PROTECTED] escreveu: Celio Bernardo wrote: Obrigado, sendo assim fico mais tranquilo. Dependendo do nível de paranoia, vale ressaltar que todo o código pode ser convertido em mnemonicos assembly. Colocando o código para rodar, posicione o cursor em alguma rotina e vá em View | Debug Windows | CPU. Para esconder este código também, só usando softwares como Ice License (pago), agora resta saber se a paranóia é para tanto. -- Joao Morais Eduardo Silva dos Santos [EMAIL PROTECTED]eduardo.drd%40gmail.com escreveu: O máximo que vai ser conseguido é a extração dos formulários e outros resources, com programas como o Dede ou FormExtractor.. nada mais que isso.. codigo fonte .pas negativo. Em 22/02/08, Celio Bernardo [EMAIL PROTECTED]celioblima%40yahoo.com.br escreveu: A certo, desculpe pelo termo engenharia reversa, o que queria mencionar mesmo é a descompilação do nosso software a fim de bisbilhotagem dos segredos do negócio. Até que ponto isto é possível e/ou como se proteger? Obrigado. Celio. Danilo Lustosa Neves [EMAIL PROTECTED]danilolustosa%40gmail.comdanilolustosa%40gmail.com escreveu: Amigo, a Engenharia Reversa funciona apenas no processo contrário de desenvolvimento lógico do sistema. Vou explicar melhor. Todo sistema precisa ter uma documentação: diagrama de classes, modelo de dados, casos de uso, etc. Essa documentação na realidade é inteiramente o software, precisando apenas de algumas horinhas do programador para implementar em forma de código-fonte, o programa projetado. A engenharia reversa faz a documentação toda do seu software já pronto, ou seja, o processo inverso. Ao invés de prepararmos primeiro o projeto e depois implementarmos o código para montar verdadeiramente o software, o analista CRIA a documentação do software que já está pronto. Esse é o conceito da engenharia reversa. Agora se existe algum programa que colete dados do sistema para emitir chaves, serials, etc etc, eu desconheço. Abraços! Danilo Lustosa Em 22/02/08, Celio Bernardo [EMAIL PROTECTED]celioblima%40yahoo.com.br celioblima%40yahoo.com.br escreveu: Amigos boa noite, Como se proteger de processos de engenharia reversa, quando vc tem anos de desenvolvimento de seu programa? Até quanto algem pode bisbilhotar nossos programas desenvolvidos em Delphi? Obrigado. Celio. - Célio Bernardo de Lima Diretor de Projetos e Novas Tecnologias siatech.com.br - -- Jorge Ericsson S. Pinheiro Analista/Projetista de Sistemas Ericsson Sistemas e Soluções http://www.jericsson.com.br 61 9227.4785 / 3965.2992 / 3039.1768 Brasília - DF [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Console
veja como fiz, só não sei como executar; uses SysUtils, ExtCtrls; var Timer1 : TTimer; begin Timer1 := TTimer.Create(Nil); Timer1.Enabled := True; Timer1.Interval := 5600; if Timer1.OnActived then (não sei aqui como é o codigo) begin end; { TODO -oUser -cConsole Main : Insert code here } end. Stainle --- Em delphi-br@yahoogrupos.com.br, Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu O componente TTimer faz parte da unit extctrls. Crie um TTimer e dentro de sua aplicação console, defina uma classe contendo um método que possa ser atribuído ao evento OnTimer. Antes de habilitar o timer, defina o valor da propriedade Interval desse TTimer para o tempo (em milissegundos) que vc quer que a verificação de OnTimer seja feita. Boa sorte. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 14:19:37 + Subject: [delphi-br] Console como faço para executar um Timer em uma aplicação CONSOLE, ou seja crio- o, habilito(enabled) e determino o tempo, como faço para ver se deu o tempo para executar uma rotina ?? grato Stainle _ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile.live.com/signup/signup2.aspx?lc=pt-br
[delphi-br] Re: Console
pelo que entendi não estou sabendo criar a CLASSE e associar ao Evento do Timer, é isto ? Stainle --- Em delphi-br@yahoogrupos.com.br, Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu O componente TTimer faz parte da unit extctrls. Crie um TTimer e dentro de sua aplicação console, defina uma classe contendo um método que possa ser atribuído ao evento OnTimer. Antes de habilitar o timer, defina o valor da propriedade Interval desse TTimer para o tempo (em milissegundos) que vc quer que a verificação de OnTimer seja feita. Boa sorte. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 14:19:37 + Subject: [delphi-br] Console como faço para executar um Timer em uma aplicação CONSOLE, ou seja crio- o, habilito(enabled) e determino o tempo, como faço para ver se deu o tempo para executar uma rotina ?? grato Stainle _ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile.live.com/signup/signup2.aspx?lc=pt-br
Re: [delphi-br] Confirmação de e-mail
Como assim ler? A mensagem vai chegar na caixa de mensagens do endereço dado para retorno, você abre a mensagem e lê... Explica melhor isso ai... Allan GabrielAM [EMAIL PROTECTED] escreveu: Certo, mas como é que eu faço para ler o e-mail quando ele responde, existe alguma maneira de fazer isso via delphi 7?, se existe me dêem uma ajuda por favor. Obrigado. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] - Original Message - From: fabio giro To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 8:00 AM Subject: Re: [delphi-br] Confirmação de e-mail Este problema apareceu aqui na lista e a solução dada foi esta. Não testei. Utilizo o componente INDY para o envio de e-mail pelo Delphi 7. Agora estou com o seguinte problema: Preciso enviar um email com CONFIRMAÇÃO de leitura. solução IdMsgSend.ReceiptRecipient.Text := '[EMAIL PROTECTED]'; Espero ter ajudado. Allan GabrielAM [EMAIL PROTECTED] escreveu: Prezados, estou precisando criar um sistema de envio e de resposta de e-mails, só que o e-mail de envio quase nunca são os mesmos, vou explicar o caso. Envio um e-mail para o fornecedor, preciso que ele me confirme o recebimento, mas se ele não confirmar o recebimento fica difícil, então pensei em algo que ao ler a mensagem ele envie a resposta sem pedir nada ao usuário/leitor do e-mail. Preciso saber também que componentes usarei, se alguém tem algum exemplo pra isso por favor me de umas dicas, pois ainda não desenvolvi nada parecido.. Obrigado desde já. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Acesso ao FingerPrint Microsoft
Bom dia a todos... Estou precisando de algum componente, DLL ou SDK free para acesso a o FingerPrint da Microsoft. Aguém tem algum exemplo ou componentes que possam me enviar? Utilizo Delhpi 5. Desde já agradeço a atenção e colaboração. (Embedded image moved to file: pic43952.jpg) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Acesso ao FingerPrint Microsoft
Até onde sei, para esse leitor só a SDK da Griaule trabalha corretamente. E ela está longe de ser free... O pior é que nesta hora que vc percebe que o barato fica (muito) caro. Atte, Ricardo. [EMAIL PROTECTED] escreveu: Bom dia a todos... Estou precisando de algum componente, DLL ou SDK free para acesso a o FingerPrint da Microsoft. Aguém tem algum exemplo ou componentes que possam me enviar? Utilizo Delhpi 5. Desde já agradeço a atenção e colaboração. (Embedded image moved to file: pic43952.jpg) [As partes desta mensagem que não continham texto foram removidas] _ - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ
cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao chamada mascara: function Mascara(Valor,Mascara : String) : String; var p : Byte; resultado : String[40]; begin if Valor = '' then begin exit; end; for P := 1 to Length(Valor) do begin if Valor[P] in [',','.','/','-'] then delete(Valor,P,1); end; for P := 1 to Length(Mascara) do begin if Mascara[p] '#' then begin Valor := Copy(Valor,1,P-1)+ Mascara[p] + Copy(Valor,P, Length(valor)); end end; Result := valor; end; no evento OnExit de um edit ou qualquer outro coloque assim //telefone edit1.text := mascara(edit1.text ,'(##)-'); //cpf edit1.text := mascara(edit1.text,'###.###.###-##'); Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Estou retificando parte do código da dica: const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones Result := StringReplace(Result, SinalMais, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, SinalPonto, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, AbreParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, FechaParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, HifenTraco, EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToIntDef(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 21:48:44 -0300 Subject: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Prezado Rubem, Vamos combinar: Cri-Cri somos eu e você, o Cara aí é chato demais e bota chato nisso. Sem querer ofender Sr. João Moraishehehehe. Um grande abraço e parabéns por ter postado AQUI essa dica que vai ser de grande utilidade para muitos de nós. João Carlos De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: sábado, 23 de fevereiro de 2008 18:24 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: Confesso que na pressa na digitação do código, eu cometi uma tremenda gafe, mas o que importa é que o código é eficiente e funciona! E tb espero que vc tenha chegado a essa conclusão. Exatamente. Se não chegou, é sinal de que tenho um desafeto! Capaz. Não crio esse tipo de coisa, não me leva a lugar algum. Agora, se aceitas um comentário, acho que as dicas ficariam bem em um site. Enquanto aqui elas têm grande visibilidade, porém momentânea, ao serem publicadas elas seriam indexadas e seriam encontradas para sempre. Opinião pessoal. 2) Encontrei alguém mais cri-cri do que eu! Concordo em parte. -- Joao Morais To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 15:59:39 -0300 Subject: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: AbreAspas = '('; FechaAspas = ')'; Abre o quê? -- Joao Morais [As partes desta mensagem que não continham texto foram removidas] __ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
RE: RES: [delphi-br] [DICA] Formatação de telefones, C PF e CNPJ
Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:06:44 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao chamada mascara: function Mascara(Valor,Mascara : String) : String; var p : Byte; resultado : String[40]; begin if Valor = '' then begin exit; end; for P := 1 to Length(Valor) do begin if Valor[P] in [',','.','/','-'] then delete(Valor,P,1); end; for P := 1 to Length(Mascara) do begin if Mascara[p] '#' then begin Valor := Copy(Valor,1,P-1)+ Mascara[p] + Copy(Valor,P, Length(valor)); end end; Result := valor; end; no evento OnExit de um edit ou qualquer outro coloque assim //telefone edit1.text := mascara(edit1.text ,'(##)-'); //cpf edit1.text := mascara(edit1.text,'###.###.###-##'); Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Estou retificando parte do código da dica: const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones Result := StringReplace(Result, SinalMais, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, SinalPonto, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, AbreParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, FechaParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, HifenTraco, EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToIntDef(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 21:48:44 -0300 Subject: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Prezado Rubem, Vamos combinar: Cri-Cri somos eu e você, o Cara aí é chato demais e bota chato nisso. Sem querer ofender Sr. João Moraishehehehe. Um grande abraço e parabéns por ter postado AQUI essa dica que vai ser de grande utilidade para muitos de nós. João Carlos De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: sábado, 23 de fevereiro de 2008 18:24 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: Confesso que na pressa na digitação do código, eu cometi uma tremenda gafe, mas o que importa é que o código é eficiente e funciona! E tb espero que vc tenha chegado a essa conclusão. Exatamente. Se não chegou, é sinal de que tenho um desafeto! Capaz. Não crio esse tipo de coisa, não me leva a lugar algum. Agora, se aceitas um comentário, acho que as dicas ficariam bem em um site. Enquanto aqui elas têm grande visibilidade, porém momentânea, ao serem publicadas elas seriam indexadas e seriam encontradas para sempre. Opinião pessoal. 2) Encontrei alguém mais cri-cri do que eu! Concordo em parte. -- Joao Morais To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 15:59:39 -0300 Subject: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: AbreAspas = '('; FechaAspas = ')'; Abre o quê? -- Joao Morais [As partes desta mensagem que não continham texto foram removidas] __ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] _ Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas
Re: [delphi-br] Record not found or changed by another user
Amigo... vc pode usar a busca do Yahoo por Walter Chagas ou ir no mastigadinho que o que vc quer está em: http://www.geocities.com/SiliconValley/Bay/1058/ Atte, Ricardo. Alisson [EMAIL PROTECTED] escreveu: Walter, o endereço www.geocities.com/SiliconValley/Bay/1052/ClientDataset.html não foi encontrado. Há algum erro ou problema no site? ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/ - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas]
RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ
entendi mas pelo visto o cara quer so uma coisa simples... tenho mascaras de telefone mais inteligentes se for o caso uso essas Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:06:44 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao chamada mascara: function Mascara(Valor,Mascara : String) : String; var p : Byte; resultado : String[40]; begin if Valor = '' then begin exit; end; for P := 1 to Length(Valor) do begin if Valor[P] in [',','.','/','-'] then delete(Valor,P,1); end; for P := 1 to Length(Mascara) do begin if Mascara[p] '#' then begin Valor := Copy(Valor,1,P-1)+ Mascara[p] + Copy(Valor,P, Length(valor)); end end; Result := valor; end; no evento OnExit de um edit ou qualquer outro coloque assim //telefone edit1.text := mascara(edit1.text ,'(##)-'); //cpf edit1.text := mascara(edit1.text,'###.###.###-##'); Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Estou retificando parte do código da dica: const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones Result := StringReplace(Result, SinalMais, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, SinalPonto, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, AbreParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, FechaParenteses, EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, HifenTraco, EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToIntDef(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 21:48:44 -0300 Subject: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Prezado Rubem, Vamos combinar: Cri-Cri somos eu e você, o Cara aí é chato demais e bota chato nisso. Sem querer ofender Sr. João Moraishehehehe. Um grande abraço e parabéns por ter postado AQUI essa dica que vai ser de grande utilidade para muitos de nós. João Carlos De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: sábado, 23 de fevereiro de 2008 18:24 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: Confesso que na pressa na digitação do código, eu cometi uma tremenda gafe, mas o que importa é que o código é eficiente e funciona! E tb espero que vc tenha chegado a essa conclusão. Exatamente. Se não chegou, é sinal de que tenho um desafeto! Capaz. Não crio esse tipo de coisa, não me leva a lugar algum. Agora, se aceitas um comentário, acho que as dicas ficariam bem em um site. Enquanto aqui elas têm grande visibilidade, porém momentânea, ao serem publicadas elas seriam indexadas e seriam encontradas para sempre. Opinião pessoal. 2) Encontrei alguém mais cri-cri do que eu! Concordo em parte. -- Joao Morais To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Sat, 23 Feb 2008 15:59:39 -0300 Subject: Re: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ Rubem Nascimento da Rocha wrote: AbreAspas = '('; FechaAspas = ')'; Abre o quê? -- Joao Morais [As partes desta mensagem que não continham texto foram removidas] __ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham
[delphi-br] Erro
Lista Estou enfrentando um problema que não sei mais o que faço para resolver.. Tenho um aplicativo que utiliza uma dll criada por mim... até ai tudo bem... dentro da dll tenho a função AcoesTabelaRateio ( Segue abaixo ) .. no aplicativo executo ela varias vezes seguidas... uma com a acao 3 .. e logo em seguida com a ação 1... Quando executo com a Acao 3 ele roda , mas quando executo com a acao 1 da erro Access violation at address .Read of address .. ja coloquei o sharemem, na dll e no aplicativo... não tenho iédia do que pode ser... alguem tem uma idéia.. ?? vlw.. Wesley //Acoes na tanrla de rateios //-- procedure AcoesTabelaRateio ( Banco : TIbquery ; Acao : Integer ; CDRAT : Integer ; CDFIL , CDCEN , FLBXA : String ; DTVEN , DTDOC : TDateTime ; NRDOC , CDMOV , PLCON , VRRAT : String ) ; export ; stdcall ; begin with Banco do begin Close; Sql.Clear; //Incluir if Acao = 1 then begin Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat:= StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; //Se é alterar ou Excluir if Acao 1 then begin //Deleta Sql.Text := 'DELETE FROM FIN1100 WHERE CDRAT=:CDRAT'; ParamByName('CDRAT').AsInteger := CDRAT ; //Se for alterar inclui denovo if Acao = 2 then begin ExecSQL; Close; Sql.Clear; Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat:= StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; end; ExecSQL; Close; end; end; //-- [As partes desta mensagem que não continham texto foram removidas]
RE: RES: [delphi-br] [DICA] Formatação de telefones, C PF e CNPJ
Se vc ñ percebeu, eu defino a máscara de formatação de forma dinâmica de acordo com o tamanho da string do telefone a ser formatado. Outro detalhe é que eu não uso funções para 'recortar' strings, como a função Copy() ou a função MidStr() da unit StrUtils (para os que usam Delphi 6 ou 7). Usando FormatMastText(), eu me isento de ter que ficar reinventando a roda, pois se já existem funções pra tratar o texto com máscara, não preciso ficar fazendo ginástica recortando strings. E ainda, faço uso eficiente de uma função quase desconhecida de todos - StrToInt64Def() - para verificar se uma string realmente representa um número. Eficiência e código limpo. EM TEMPO: abaixo uma atualização do trecho de código do exemplo que implementa as funções de formatação de telefones, CPFs e CNPJs. --[INÍCIO ATUALIZAÇÃO]-- const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} PhoneTokens : array[0..4] of string = (SinalMais, AbreParenteses, FechaParenteses, HifenTraco, SinalPonto); MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo= ''; CPFNulo = '999'; CNPJNulo= '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; var i: byte; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones for i := Low(PhoneTokens) to High(PhoneTokens) do Result := StringReplace(Result, PhoneTokens[i], EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToInt64Def(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; {= FORMATAÇÃO DE CPFs e CNPJs ===} function DesformataCPF(UmCPF: string): string; begin Result := UmCPF; Result := StringReplace(Result, '.', EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, '-', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CPFNulo; end; function DesformataCNPJ(UmCNPJ: string): string; begin Result := DesformataCPF(UmCNPJ); Result := StringReplace(Result, '/', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CNPJNulo; end; function FormataCPF(UmCPF: string): string; begin if (Length(UmCPF) = 11) and (not (StrToInt64Def(UmCPF, -1) = -1)) then Result := FormatMaskText(MascaraCPF, DesformataCPF(UmCPF)) end; function FormataCNPJ(UmCNPJ: string): string; begin if (Length(UmCNPJ) = 14) and (not (StrToInt64Def(UmCNPJ, -1) = -1)) then Result := FormatMaskText(MascaraCNPJ, DesformataCNPJ(UmCNPJ)) end; --[FINAL ATUALIZAÇÃO]-- Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:15:59 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ entendi mas pelo visto o cara quer so uma coisa simples... tenho mascaras de telefone mais inteligentes se for o caso uso essas Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:06:44 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao chamada mascara: function Mascara(Valor,Mascara : String) : String; var p : Byte; resultado : String[40]; begin if Valor = '' then begin exit; end; for P := 1 to Length(Valor) do begin if Valor[P] in [',','.','/','-'] then delete(Valor,P,1); end; for P := 1 to Length(Mascara) do begin if Mascara[p] '#' then begin Valor := Copy(Valor,1,P-1)+ Mascara[p] + Copy(Valor,P, Length(valor)); end end; Result := valor; end; no evento OnExit de um edit ou qualquer outro coloque assim //telefone edit1.text := mascara(edit1.text ,'(##)-'); //cpf edit1.text := mascara(edit1.text,'###.###.###-##'); Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Estou retificando parte do código da dica: const
RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ
ok... entendi... vai uma funcao q faz isso function Tel(Mascara : String) : String; var h : String; begin H := Retira(Mascara); Case Length(H) of 7,8 : insert('-',H,Length(h) - 3); 9,10 : begin insert('-',H,Length(h) - 3); insert('(',H,1); insert(')',H,4); Insert(' ',H,5); end; end; Result := h; end; Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Se vc ñ percebeu, eu defino a máscara de formatação de forma dinâmica de acordo com o tamanho da string do telefone a ser formatado. Outro detalhe é que eu não uso funções para 'recortar' strings, como a função Copy() ou a função MidStr() da unit StrUtils (para os que usam Delphi 6 ou 7). Usando FormatMastText(), eu me isento de ter que ficar reinventando a roda, pois se já existem funções pra tratar o texto com máscara, não preciso ficar fazendo ginástica recortando strings. E ainda, faço uso eficiente de uma função quase desconhecida de todos - StrToInt64Def() - para verificar se uma string realmente representa um número. Eficiência e código limpo. EM TEMPO: abaixo uma atualização do trecho de código do exemplo que implementa as funções de formatação de telefones, CPFs e CNPJs. --[INÍCIO ATUALIZAÇÃO]-- const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} PhoneTokens : array[0..4] of string = (SinalMais, AbreParenteses, FechaParenteses, HifenTraco, SinalPonto); MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; var i: byte; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones for i := Low(PhoneTokens) to High(PhoneTokens) do Result := StringReplace(Result, PhoneTokens[i], EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToInt64Def(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; {= FORMATAÇÃO DE CPFs e CNPJs ===} function DesformataCPF(UmCPF: string): string; begin Result := UmCPF; Result := StringReplace(Result, '.', EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, '-', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CPFNulo; end; function DesformataCNPJ(UmCNPJ: string): string; begin Result := DesformataCPF(UmCNPJ); Result := StringReplace(Result, '/', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CNPJNulo; end; function FormataCPF(UmCPF: string): string; begin if (Length(UmCPF) = 11) and (not (StrToInt64Def(UmCPF, -1) = -1)) then Result := FormatMaskText(MascaraCPF, DesformataCPF(UmCPF)) end; function FormataCNPJ(UmCNPJ: string): string; begin if (Length(UmCNPJ) = 14) and (not (StrToInt64Def(UmCNPJ, -1) = -1)) then Result := FormatMaskText(MascaraCNPJ, DesformataCNPJ(UmCNPJ)) end; --[FINAL ATUALIZAÇÃO]-- Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:15:59 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ entendi mas pelo visto o cara quer so uma coisa simples... tenho mascaras de telefone mais inteligentes se for o caso uso essas Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:06:44 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao chamada mascara: function Mascara(Valor,Mascara : String) : String; var p : Byte; resultado : String[40]; begin if Valor = '' then begin exit; end; for P := 1 to Length(Valor) do begin if Valor[P] in [',','.','/','-'] then delete(Valor,P,1); end; for P := 1 to Length(Mascara) do begin if Mascara[p] '#' then begin Valor := Copy(Valor,1,P-1)+ Mascara[p] + Copy(Valor,P, Length(valor)); end end; Result := valor; end; no evento OnExit de um edit ou qualquer outro coloque assim //telefone edit1.text :=
RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ
ta ok ... entendi o seu ponto de vista... vc tem um jeito de trabalhar, e eu tenho o meu, e nós os nossos egos, nao importa como vai ser feito, desde q seja feito. Gostei do seu codigo... gostei mesmo.. trabalho tbem com esses comandos q vc passou, mas talvez o nosso amigo quer algo simples, por isso passei pra ele uma opcao, nao estou criticando o q vc mandou achei interessantissimo, mas vc ta achando q estou disputando com vc... Desculpe se dei essa impressao. humberto sales [EMAIL PROTECTED] escreveu: ok... entendi... vai uma funcao q faz isso function Tel(Mascara : String) : String; var h : String; begin H := Retira(Mascara); Case Length(H) of 7,8 : insert('-',H,Length(h) - 3); 9,10 : begin insert('-',H,Length(h) - 3); insert('(',H,1); insert(')',H,4); Insert(' ',H,5); end; end; Result := h; end; Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Se vc ñ percebeu, eu defino a máscara de formatação de forma dinâmica de acordo com o tamanho da string do telefone a ser formatado. Outro detalhe é que eu não uso funções para 'recortar' strings, como a função Copy() ou a função MidStr() da unit StrUtils (para os que usam Delphi 6 ou 7). Usando FormatMastText(), eu me isento de ter que ficar reinventando a roda, pois se já existem funções pra tratar o texto com máscara, não preciso ficar fazendo ginástica recortando strings. E ainda, faço uso eficiente de uma função quase desconhecida de todos - StrToInt64Def() - para verificar se uma string realmente representa um número. Eficiência e código limpo. EM TEMPO: abaixo uma atualização do trecho de código do exemplo que implementa as funções de formatação de telefones, CPFs e CNPJs. --[INÍCIO ATUALIZAÇÃO]-- const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} PhoneTokens : array[0..4] of string = (SinalMais, AbreParenteses, FechaParenteses, HifenTraco, SinalPonto); MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; var i: byte; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones for i := Low(PhoneTokens) to High(PhoneTokens) do Result := StringReplace(Result, PhoneTokens[i], EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToInt64Def(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; {= FORMATAÇÃO DE CPFs e CNPJs ===} function DesformataCPF(UmCPF: string): string; begin Result := UmCPF; Result := StringReplace(Result, '.', EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, '-', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CPFNulo; end; function DesformataCNPJ(UmCNPJ: string): string; begin Result := DesformataCPF(UmCNPJ); Result := StringReplace(Result, '/', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CNPJNulo; end; function FormataCPF(UmCPF: string): string; begin if (Length(UmCPF) = 11) and (not (StrToInt64Def(UmCPF, -1) = -1)) then Result := FormatMaskText(MascaraCPF, DesformataCPF(UmCPF)) end; function FormataCNPJ(UmCNPJ: string): string; begin if (Length(UmCNPJ) = 14) and (not (StrToInt64Def(UmCNPJ, -1) = -1)) then Result := FormatMaskText(MascaraCNPJ, DesformataCNPJ(UmCNPJ)) end; --[FINAL ATUALIZAÇÃO]-- Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:15:59 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ entendi mas pelo visto o cara quer so uma coisa simples... tenho mascaras de telefone mais inteligentes se for o caso uso essas Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:06:44 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ cara eu criei uma simples e generica...geralmente gosto de coisa generica q serve pra qualquer coisa ae criei uma funcao
RE: RES: [delphi-br] [DICA] Formatação de telefones, C PF e CNPJ
Sem grilo, foi só exposição de ponto de vista. Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:52:40 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ ta ok ... entendi o seu ponto de vista... vc tem um jeito de trabalhar, e eu tenho o meu, e nós os nossos egos, nao importa como vai ser feito, desde q seja feito. Gostei do seu codigo... gostei mesmo.. trabalho tbem com esses comandos q vc passou, mas talvez o nosso amigo quer algo simples, por isso passei pra ele uma opcao, nao estou criticando o q vc mandou achei interessantissimo, mas vc ta achando q estou disputando com vc... Desculpe se dei essa impressao. humberto sales [EMAIL PROTECTED] escreveu: ok... entendi... vai uma funcao q faz isso function Tel(Mascara : String) : String; var h : String; begin H := Retira(Mascara); Case Length(H) of 7,8 : insert('-',H,Length(h) - 3); 9,10 : begin insert('-',H,Length(h) - 3); insert('(',H,1); insert(')',H,4); Insert(' ',H,5); end; end; Result := h; end; Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Se vc ñ percebeu, eu defino a máscara de formatação de forma dinâmica de acordo com o tamanho da string do telefone a ser formatado. Outro detalhe é que eu não uso funções para 'recortar' strings, como a função Copy() ou a função MidStr() da unit StrUtils (para os que usam Delphi 6 ou 7). Usando FormatMastText(), eu me isento de ter que ficar reinventando a roda, pois se já existem funções pra tratar o texto com máscara, não preciso ficar fazendo ginástica recortando strings. E ainda, faço uso eficiente de uma função quase desconhecida de todos - StrToInt64Def() - para verificar se uma string realmente representa um número. Eficiência e código limpo. EM TEMPO: abaixo uma atualização do trecho de código do exemplo que implementa as funções de formatação de telefones, CPFs e CNPJs. --[INÍCIO ATUALIZAÇÃO]-- const SinalMais = '+'; AbreParenteses = '('; FechaParenteses = ')'; HifenTraco = '-'; SinalPonto = '.'; {$WRITEABLECONST ON} PhoneTokens : array[0..4] of string = (SinalMais, AbreParenteses, FechaParenteses, HifenTraco, SinalPonto); MascaraTelefone : string = '\-;0;_'; MascaraTelefoneDDD : string = '\(00\)-;0;_'; MascaraTelefoneIntl : string = '\+00\-00\-\-;0;_'; MascaraCPF : string = '000\.000\.000\-00;0;_'; MascaraCNPJ : string = '00\.000\.000\/\-00;0;_'; {$WRITEABLECONST OFF} TelefoneNulo = ''; CPFNulo = '999'; CNPJNulo = '99'; {= FORMATAÇÃO DE TELEFONES ==} function DesformataTelefone(const s: string): string; var i: byte; begin // Inicializa resultado Result := s; // Retira todos os tokens mais usados em telefones for i := Low(PhoneTokens) to High(PhoneTokens) do Result := StringReplace(Result, PhoneTokens[i], EmptyStr, [rfReplaceAll]); // Se telefone não tem somente números, retorna telefone nulo if StrToInt64Def(Result, -1) = -1 then Result := TelefoneNulo; end; function FormataTelefone(const s: string): string; begin Result := DesformataTelefone(s); if Length(Result) 10 then Result := FormatMaskText(MascaraTelefoneIntl, s) else if Length(Result) 8 then Result := FormatMaskText(MascaraTelefoneDDD, s) else if Length(Result) = 8 then Result := FormatMaskText(MascaraTelefone, s); end; {= FORMATAÇÃO DE CPFs e CNPJs ===} function DesformataCPF(UmCPF: string): string; begin Result := UmCPF; Result := StringReplace(Result, '.', EmptyStr, [rfReplaceAll]); Result := StringReplace(Result, '-', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CPFNulo; end; function DesformataCNPJ(UmCNPJ: string): string; begin Result := DesformataCPF(UmCNPJ); Result := StringReplace(Result, '/', EmptyStr, [rfReplaceAll]); if StrToInt64Def(Result, -1) = -1 then Result := CNPJNulo; end; function FormataCPF(UmCPF: string): string; begin if (Length(UmCPF) = 11) and (not (StrToInt64Def(UmCPF, -1) = -1)) then Result := FormatMaskText(MascaraCPF, DesformataCPF(UmCPF)) end; function FormataCNPJ(UmCNPJ: string): string; begin if (Length(UmCNPJ) = 14) and (not (StrToInt64Def(UmCNPJ, -1) = -1)) then Result := FormatMaskText(MascaraCNPJ, DesformataCNPJ(UmCNPJ)) end; --[FINAL ATUALIZAÇÃO]-- Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon, 25 Feb 2008 12:15:59 -0300 Subject: RE: RES: [delphi-br] [DICA] Formatação de telefones, CPF e CNPJ entendi mas pelo visto o cara quer so uma coisa simples... tenho mascaras de telefone mais inteligentes se for o caso uso essas Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu: Não consigo ver generalização em formatação de valores. Sua sugestão é válida, mas ainda assim sou mais as minhas dicas! Sds. To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Mon,
Re: [delphi-br] Erro
Cara, fica em moda de depuração, e veja qual a linha exatamente que está dando problema, assim ficará bem mais fácil encontrar o erro. Vinicius dos Santos Analista de Desenvolvimento Júnior MSI SOLUÇÕES Av. Dr. Altino Arantes, 131 Sala 145 - 146 Centro - Ourinhos/Sp - Brasil Fone/Fax: +55 (14) 3324-8181 www.msisolucoes.com.br - Original Message - From: BandaLemuel To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 11:59 AM Subject: [delphi-br] Erro Lista Estou enfrentando um problema que não sei mais o que faço para resolver.. Tenho um aplicativo que utiliza uma dll criada por mim... até ai tudo bem... dentro da dll tenho a função AcoesTabelaRateio ( Segue abaixo ) .. no aplicativo executo ela varias vezes seguidas... uma com a acao 3 .. e logo em seguida com a ação 1... Quando executo com a Acao 3 ele roda , mas quando executo com a acao 1 da erro Access violation at address .Read of address .. ja coloquei o sharemem, na dll e no aplicativo... não tenho iédia do que pode ser... alguem tem uma idéia.. ?? vlw.. Wesley //Acoes na tanrla de rateios //-- procedure AcoesTabelaRateio ( Banco : TIbquery ; Acao : Integer ; CDRAT : Integer ; CDFIL , CDCEN , FLBXA : String ; DTVEN , DTDOC : TDateTime ; NRDOC , CDMOV , PLCON , VRRAT : String ) ; export ; stdcall ; begin with Banco do begin Close; Sql.Clear; //Incluir if Acao = 1 then begin Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat := StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; //Se é alterar ou Excluir if Acao 1 then begin //Deleta Sql.Text := 'DELETE FROM FIN1100 WHERE CDRAT=:CDRAT'; ParamByName('CDRAT').AsInteger := CDRAT ; //Se for alterar inclui denovo if Acao = 2 then begin ExecSQL; Close; Sql.Clear; Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat := StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; end; ExecSQL; Close; end; end; //-- [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Erro
Tente usar PChar invés de String. Estava fazendo uma dll a um tempo atrás, e quando usava string as vezes aparecia uns erros sem explicação, usando pchar não tive mais problemas. - Original Message - From: Vinicius Santos - MSI To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 12:59 PM Subject: Re: [delphi-br] Erro Cara, fica em moda de depuração, e veja qual a linha exatamente que está dando problema, assim ficará bem mais fácil encontrar o erro. Vinicius dos Santos Analista de Desenvolvimento Júnior MSI SOLUÇÕES Av. Dr. Altino Arantes, 131 Sala 145 - 146 Centro - Ourinhos/Sp - Brasil Fone/Fax: +55 (14) 3324-8181 www.msisolucoes.com.br - Original Message - From: BandaLemuel To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 11:59 AM Subject: [delphi-br] Erro Lista Estou enfrentando um problema que não sei mais o que faço para resolver.. Tenho um aplicativo que utiliza uma dll criada por mim... até ai tudo bem... dentro da dll tenho a função AcoesTabelaRateio ( Segue abaixo ) .. no aplicativo executo ela varias vezes seguidas... uma com a acao 3 .. e logo em seguida com a ação 1... Quando executo com a Acao 3 ele roda , mas quando executo com a acao 1 da erro Access violation at address .Read of address .. ja coloquei o sharemem, na dll e no aplicativo... não tenho iédia do que pode ser... alguem tem uma idéia.. ?? vlw.. Wesley //Acoes na tanrla de rateios //-- procedure AcoesTabelaRateio ( Banco : TIbquery ; Acao : Integer ; CDRAT : Integer ; CDFIL , CDCEN , FLBXA : String ; DTVEN , DTDOC : TDateTime ; NRDOC , CDMOV , PLCON , VRRAT : String ) ; export ; stdcall ; begin with Banco do begin Close; Sql.Clear; //Incluir if Acao = 1 then begin Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat := StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; //Se é alterar ou Excluir if Acao 1 then begin //Deleta Sql.Text := 'DELETE FROM FIN1100 WHERE CDRAT=:CDRAT'; ParamByName('CDRAT').AsInteger := CDRAT ; //Se for alterar inclui denovo if Acao = 2 then begin ExecSQL; Close; Sql.Clear; Sql.Text := 'INSERT INTO FIN1100 ( CDRAT , CDFIL , CDCEN , ' + 'DTVEN , DTDOC , NRDOC , PLCON , VRRAT , DTLCT ) VALUES ( ' + ':CDRAT , :CDFIL , :CDCEN , :DTVEN , :DTDOC , :NRDOC , :PLCON, ' + ':VRRAT , CURRENT_DATE ) '; ParamByName('CDRAT').AsInteger := CDRAT ; ParamByName('CDFIL').AsInteger := StrToInt( Copy ( CDFIL , 1 , 4 ) ) ; if CDCEN '' then ParamByName('CDCEN').AsInteger := StrToInt( Copy ( CDCEN , 1 , 4 ) ) else ParamByName('CDCEN').Value := null ; ParamByName('DTVEN').AsDate := DTVEN ; ParamByName('DTDOC').AsDate := DTDOC ; ParamByName('NRDOC').AsInteger := StrToInt( Trim( NRDOC ) ); ParamByName('PLCON').AsInteger := StrToInt( Copy ( PLCON , 1 , 5 ) ); ParamByName('VRRAT').AsFloat := StrToFloat( Trim( RetiraPonto( VRRAT ) ) ); end; end; ExecSQL; Close; end; end; //-- [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] ZeosLIB - PostgreSQL 8.2
Ola senhores(as) Alguem sabe onde eu encontro um ZEOSLIB funcional pra Delphi2007, no meu datamodule tem um TZConnection, e esta tudo ok, conecta e tudo mais. porem qdo eu abro minha tela de cadastro por exemplo o D2007me da um aviso (figura em anexo); nao sei o que pode ser eu tiro o componente nao da mais erro. Observações : eu NAO uso componentes DBContros nenhum, eu tenho meu proprio FRAMEWORK em Delphi. e nao é DBs. -- Atenciosamente, Gladson Reis Stones Tecnologia Ltda www.stonestecnologia.com.br SIGLO Business Architecture FINANCE/LOGISTIC [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Driver Vitavoom (Delphi+DBX+Postgres)
Boa tarde a todos, Alguém já está utilizando o driver da Vitavoom juntamente com o Delphi 2007 for Win32? Sem mais, Marlon David de Souza Desenvolvimento Sysmo Informática Ltda
[delphi-br] Conexão com PostgreSQL
Olá amigos, qual o melhor componente de acesso NATIVO ao PostgreSQL? O PostgreSQL é totalmente Free para Windows? Ou tem aquela licença tipo MySQL pra Windows? Obrigado []s -- _ T.·.F.·.A.·. Fellipe Henrique [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] FastReport+Delphi 2005
A Versão 3 e 4 tem instaladores pro Delphi 2005 quando ao preview em portugues é só vc executar o utilitário RecompileWizard e mudar o Idioma pra Portugues.. o preview vai ficar em port. o Editor.. tudo.. entra na sua página de usuário registrado e baixa a versão correspondente ao seu Delphi. Em 25/02/08, Adjalma Costa [EMAIL PROTECTED] escreveu: Bom dia, Estou usando Delphi 2005 e gostaria de saber dos amigos qual a versão do FastReport compativel com essa versão do Delphi, e que a preview esteja em português. Se alguém puder me ajudar ficarei grato. sds Adjalma - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- ... Eduardo Silva dos Santos DRD Sistemas. (27) 3218-4201 MSN: [EMAIL PROTECTED] Site: http://www.drdsistemas.com/ ... [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Atualizador automatico
tu podes mim arrumar esses codigos fontes tbm pra testar aqui amigo? desde ja agradeço!!! - Original Message - From: r.marchiori To: delphi-br Sent: Friday, February 22, 2008 9:17 AM Subject: Re: [delphi-br] Atualizador automatico Olá pessoal, uma dica tb é criar um executavel alem do executavel do sistema e este novo só fica para dazer a atualização, este executavel menor para realizar a atualização verifica o numero da verão armazenado em uma tabela no banco de dados e compara com o numero do arquivo ini, se for diferente carrega o executavel do servidorvia (ftp) e apos isso atualiza um arquivo ini que esta na pasta local de cada estação e se a versão não for diferente não atualiza e chama o executavel do sistema. Assim não carrega toda hora o executavel do sistema. Se alguem quise o código fonte é só pedir. Cada vez que o cliente abre o aplicativo, ele acaba usando a rede para passar todo o arquivo do executável. Em alguns casos isso lentifica demais toda a rede (imagine 40 ou mais estações). E se a rede for lenta naturalmente ou o acesso for remoto, cada vez que inicializar o aplicativo, terá que ser feito o download completo, causando demora desnecessária. Além do caso de ter que esperar todo mundo se desconectar para atualizar. Fora os erros esotéricos do windows que diz que ainda tem alguém conectado no sistema, mesmo que nenhum cliente esteja ligado, forçando um reboot no servidor. Bom, acho que são alguns bons motivos. Aquele abraço. Em 22/02/08, Davi Eduardo Borges Wall [EMAIL PROTECTED] escreveu: E por que vc discorda? De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Guionardo Furlan Enviada em: sexta-feira, 22 de fevereiro de 2008 08:06 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Atualizador automatico Será mesmo uma boa idéia? Discordo. Eu deixaria uma versão do executável no servidor, com um arquivo texto indicando a versão. Nos clientes, um aplicativo inicializador compararia a versão do executável local com a versão do executável remoto. Em caso de diferença, copiará do servidor. Por último, o aplicativo inicializador chama o executável localmente. Em 22/02/08, Consultores Software [EMAIL PROTECTED] mailto:consultoressoftware%40gmail.com escreveu: Antes de pensar num atualizador, não seria mais fácil deixar um executável só no servidor e mapear para que cada usuário tenha acesso a ele via rede, do que distribuir várias cópias ? Assim, você teria que atualizar uma vez só. Um ponto crítico aí é que, para atualizar esse aplicativo, todos os usuários terão que sair dele em suas máquinas, a menos que o servidor seja linux, que permite sobrescrever o exe mesmo que ele esteja em uso Em 22/02/08, Carlos [EMAIL PROTECTED] mailto:ca_programador007%40yahoo.com.br escreveu: Olá amigos, Tenho um aplicativo onde o banco de dados fica no servidor e cada maquina tem um executavel .exe para acessar o banco de dados. Muitas vezes eu preciso atualizar o .exe e preciso ir de máquina em máquina para atualizar o arquivo, e isso é muito chato porque são várias máquinas. Eu sei que existe uma forma fácil de resolver isso, utilizando um atualizador automático que fica direto no servidor e todos os usuarios quando executam o executavel busca a atualizacao no servidor. Gostaria de saber como faz isso. Alguem me ajuda a começar? Nem sei por onde começar. Obrigado e aguardo ajuda. Carlos -- Timeo hominem unius libri Cogito ergo sum - Carpe diem []s Guionardo Furlan http://guionardo.blogspot.com Rodrigo Alex Marchiori http://r.marchiori.sites.uol.com.br msn: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Conexão com PostgreSQL
PostgreSQL é totalmente free pra qualquer SO. Para se conectar vc pode utilizar o ZeosLib (free e open source tb) Não sei se é a melhor forma de se conectar ao postgre.. mas é muito boa. Daniel A. Bastos Em 25/02/08, Fellipe Henrique [EMAIL PROTECTED] escreveu: Olá amigos, qual o melhor componente de acesso NATIVO ao PostgreSQL? O PostgreSQL é totalmente Free para Windows? Ou tem aquela licença tipo MySQL pra Windows? Obrigado []s -- _ T.·.F.·.A.·. Fellipe Henrique [EMAIL PROTECTED] fellipeh%40gmail.com Mensagens neste tópico http://br.groups.yahoo.com/group/delphi-br/message/184089;_ylc=X3oDMTM4NGJkYmZjBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BG1zZ0lkAzE4NDA4OQRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzEyMDM5NjE5MDkEdHBjSWQDMTg0MDg5( 1) Responder (através da web) http://br.groups.yahoo.com/group/delphi-br/post;_ylc=X3oDMTJyYjFlZDhjBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BG1zZ0lkAzE4NDA4OQRzZWMDZnRyBHNsawNycGx5BHN0aW1lAzEyMDM5NjE5MDk-?act=replymessageNum=184089| Adicionar um novo tópico http://br.groups.yahoo.com/group/delphi-br/post;_ylc=X3oDMTJlZWQ0N3FkBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTIwMzk2MTkwOQ-- Mensagenshttp://br.groups.yahoo.com/group/delphi-br/messages;_ylc=X3oDMTJlMG81Nml1BF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTIwMzk2MTkwOQ--| Arquivoshttp://br.groups.yahoo.com/group/delphi-br/files;_ylc=X3oDMTJmMjgyZGk4BF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2ZpbGVzBHN0aW1lAzEyMDM5NjE5MDk-| Fotoshttp://br.groups.yahoo.com/group/delphi-br/photos;_ylc=X3oDMTJlZ2FwamhuBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA3Bob3QEc3RpbWUDMTIwMzk2MTkwOQ--| Linkshttp://br.groups.yahoo.com/group/delphi-br/links;_ylc=X3oDMTJmcTBocXFwBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2xpbmtzBHN0aW1lAzEyMDM5NjE5MDk-| Banco de dadoshttp://br.groups.yahoo.com/group/delphi-br/database;_ylc=X3oDMTJjcnFncDVjBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2RiBHN0aW1lAzEyMDM5NjE5MDk- -- [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Conexão com PostgreSQL
http://crlab.com/pgsqlnet/ - componente ou / Zeos e sim o PostgreSQL é totalmente free/open source ! Paulo Rogério Batalhão . From: Fellipe Henrique Sent: Monday, February 25, 2008 2:49 PM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] Conexão com PostgreSQL Olá amigos, qual o melhor componente de acesso NATIVO ao PostgreSQL? O PostgreSQL é totalmente Free para Windows? Ou tem aquela licença tipo MySQL pra Windows? Obrigado []s -- _ T.·.F.·.A.·. Fellipe Henrique [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Confirmação de e-mail
Boa tarde, preciso enviar e-mail ao fornecedor, quando o fornecedor lê a mensagem ele deve responder, mas a verificação deverá ser feita via programa, não via outloock express, tipo, envio a mensagem pelo programa para um fornecedor, quando o fornecedor responder a mensagem quero que o programa leia a mensagem, e coloque no registro de envio do e-mail que o e-mail foi confirmado, entendeu, parece simples, mas não tenho nem idéia de como fazer. Obrigado. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] - Original Message - From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 11:39 AM Subject: Re: [delphi-br] Confirmação de e-mail Como assim ler? A mensagem vai chegar na caixa de mensagens do endereço dado para retorno, você abre a mensagem e lê... Explica melhor isso ai... Allan GabrielAM [EMAIL PROTECTED] escreveu: Certo, mas como é que eu faço para ler o e-mail quando ele responde, existe alguma maneira de fazer isso via delphi 7?, se existe me dêem uma ajuda por favor. Obrigado. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] - Original Message - From: fabio giro To: delphi-br@yahoogrupos.com.br Sent: Monday, February 25, 2008 8:00 AM Subject: Re: [delphi-br] Confirmação de e-mail Este problema apareceu aqui na lista e a solução dada foi esta. Não testei. Utilizo o componente INDY para o envio de e-mail pelo Delphi 7. Agora estou com o seguinte problema: Preciso enviar um email com CONFIRMAÇÃO de leitura. solução IdMsgSend.ReceiptRecipient.Text := '[EMAIL PROTECTED]'; Espero ter ajudado. Allan GabrielAM [EMAIL PROTECTED] escreveu: Prezados, estou precisando criar um sistema de envio e de resposta de e-mails, só que o e-mail de envio quase nunca são os mesmos, vou explicar o caso. Envio um e-mail para o fornecedor, preciso que ele me confirme o recebimento, mas se ele não confirmar o recebimento fica difícil, então pensei em algo que ao ler a mensagem ele envie a resposta sem pedir nada ao usuário/leitor do e-mail. Preciso saber também que componentes usarei, se alguém tem algum exemplo pra isso por favor me de umas dicas, pois ainda não desenvolvi nada parecido.. Obrigado desde já. Atenciosamente, Rafael Vivan Bem Bom Móveis Ltda. Aqui é bom de comprar e fácil de pagar Rua Marechal Deodoro,647 Concórdia - SC - 89700-000 (0xx49) 3444-2090 (0xx49) 3444-6967 (0xx49) 9987-0539 MSN: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]