Re: [delphi-br] Framework MVP
Olá João, Qual seria o seu framework? É gratuito? Testei o Jazz, mas ele é tudo manual... ou seja, tenho que colocar tudo na mão... aí complica um pouco.. hehe... []s Em 29/11/06, Joao Morais [EMAIL PROTECTED] escreveu: Luiz Escobar wrote: É realmente achei assustador hehehehe Creio que o cara não deve saber do que estava falando... Conheço o Paulo e o Marcos, os autores do artigo. Eles sabem sim do que estão falando. O problema é que o artigo poderia ser um pouco mais didático. Bom existe algum FRAMEWORK que não seja ALFA ou BETA e que já funcione 100% ou pelo menos 99% pra se produzir algo com facilidade e produtividade assim como os DBWare´s. ??? O meu está em pré-alfa porque eu ainda preciso escrever os wizards, mas eu já tenho duas aplicações em produção feitas com ele. -- João Morais -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Framework MVP
Fellipe Henrique wrote: Olá João, Qual seria o seu framework? É gratuito? Testei o Jazz, mas ele é tudo manual... ou seja, tenho que colocar tudo na mão... aí complica um pouco.. hehe... www.pressobjects.org/ptbr Ele ainda é todo manual também, porém precisa de menos código do que Infra -- e talvez Jazz -- pois não é obrigatório o uso de interface, e logo passarei para o todo list que você pode ver no site do projeto, fazendo com que você não precise escrever as classes na mão. Ainda assim, você quase arranca os cabelos de tanto escrever apenas para desenhar as classes - e apenas no início do projeto. Quando passa para forms, Presenters, etc., é muito pouca escrita e uma pequena decoreba. Diga-se de passagem, você troca o ficar ligando DataSource, DataField, KeyField, ListField, eventos, etc. por ligar, no Presenter, qual é o atributo de tal componente. Os poucos docs passam rapidamente sobre o assunto, o aplicativo demonstração mostra um pequeno projeto pronto, e a lista support-br tá lá para completar o que faltar. -- João Morais
[delphi-br] COLORIR LINHAS DO DBGRID
Tem como colorir as linhas do DBGRID em RUN-TIME, seria no caso de cliente em debito aparecer em vermelho e os demais em branco mesmo? Atenciosamente, Marcio William
[delphi-br] Impressão direta via Rede
Boa noite, Alguém poderia me dar a dica de como fazer a impressão direta, sem o sppol, numa matricial em rede. Eu faço a impressão com Assignfile e funciona da máquina onde a impressora está conectada mas na rede eu não consigo. Tô usando o windowsXP. Obrigado, Giovanny
RE: [delphi-br] COLORIR LINHAS DO DBGRID
Dica na internet sobre isso tem a botão (Como fazer um grid zebrado?, e coisas do tipo). O google pode dar uma força nisso. Agora, se vc ñ quer ter trabalho, o TJvDBGrid da suite JEDI VCL já tem propriedades pra tratar isso de forma transparente. Sds. From: Marcio William [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] COLORIR LINHAS DO DBGRID Date: Thu, 30 Nov 2006 08:43:13 -0200 Tem como colorir as linhas do DBGRID em RUN-TIME, seria no caso de cliente em debito aparecer em vermelho e os demais em branco mesmo? Atenciosamente, Marcio William _ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
É isso aí Andreano, DBWare são muito bem vindos, deste que o programador saiba usar. A grande maioria que fala mal dele, não o conhece muito... []s Em 30/11/06, Andreano Lanusse [EMAIL PROTECTED] escreveu: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Abraços, Andreano Lanusse System Engineer CodeGear [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Impressão direta via Rede
Giovanny Carvalho wrote: Boa noite, Alguém poderia me dar a dica de como fazer a impressão direta, sem o sppol, numa matricial em rede. Eu faço a impressão com Assignfile e funciona da máquina onde a impressora está conectada mas na rede eu não consigo. Troca a porta lptx: pelo atalho da impressora: \\host\impr -- João Morais
[delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Você mesmo é um que deve se lembrar como eu metia o pau nos DBWares antes né? Lá pros remotos D1 e D2, ainda meio cru em conhecimento do Delphi e da VCL, me meti a embarcar nessa canoa e me dei muito mal. Tomei raiva do negócio e passei a usar a Suite Munhecaware. Recentemente, com grande ajuda dos colegas Eduardo Rocha da EduDelphipage, Mequi Pinho, Bruno Lichot e até de você Rubem, revi meus conceitos a respeito do supra-citado. Aprendi a usá-los da forma correta e hoje não volto atrás nem fudendo. O grande problema do DBWare é que ele aparenta facilitar a vida do desenvolvedor sem que ele tenha que escrever uma única linha de código sequer. Aí que tá a ilusão. Você ainda assim tem que escrever, mas não é TANTO quanto seria fazer na mão, mas tem. Aí o cara vê que a coisa não funciona, porque não soube usar ou usou de forma errada, o troço vai dar problema e como sabemos muito bem, o ser humano jamais assume seus erros e sua culpa. A culpa é sempre do vizinho, do Governo, do DBEdit, do Delphi, do Andreano, etc... Alias pessoal, sem querer fazer propaganda, mas o CD do Eduardo, que trata justamente disto, é uma senhora mão na roda viu. Convem o pessoal dar uma olhada. Ele tá sempre ministrando Minicursos de ClientDataset nos DDDs quem vem acontecendo aí anualmente. Quem já assitiu um viu que a coisa é de nível. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 MSN: [EMAIL PROTECTED] --- Em delphi-br@yahoogrupos.com.br, Fellipe Henrique [EMAIL PROTECTED] escreveu É isso aí Andreano, DBWare são muito bem vindos, deste que o programador saiba usar. A grande maioria que fala mal dele, não o conhece muito... []s Em 30/11/06, Andreano Lanusse [EMAIL PROTECTED] escreveu: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Abraços, Andreano Lanusse System Engineer CodeGear [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Problema com o Quick Report
Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro... ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField:= 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text:= fieldbyname('AteDesc').AsString; end; Thiago Filiano [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Impressão direta via Rede
Ou mapeia a impressora no terminal. - Original Message - From: Joao Morais [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 9:27 AM Subject: Re: [delphi-br] Impressão direta via Rede Giovanny Carvalho wrote: Boa noite, Alguém poderia me dar a dica de como fazer a impressão direta, sem o sppol, numa matricial em rede. Eu faço a impressão com Assignfile e funciona da máquina onde a impressora está conectada mas na rede eu não consigo. Troca a porta lptx: pelo atalho da impressora: \\host\impr -- João Morais -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos
[delphi-br] Re: Só para o Fellipe Henrique! Desculpe os demais.
Puxa, vc é O CARA, HEIN? Extremamente ético, educado e tudo o mais. hehehehehe Nossa, eu daria um braço pra trabalhar com vc! Se prestar atenção na minha mensagem anterior verá que eu dei a minha opinião de forma educada sem desmerecer o trabalho de ninguém. Sou maniaca por delphi, mas nem por isso sou puxa-saco do Delphi. Reconheço que essa ferramenta tem defeitos sim (serão que vc nunca percebeu isso?), faltam componentes importantes sim (se não fosse assim não precisaríamos de componentes terceirizados). (não mexe com quem tá queto!) T+ Mani --- Em delphi-br@yahoogrupos.com.br, Fellipe Henrique [EMAIL PROTECTED] escreveu Olá maniacapordelphi Sua informacao que DBWares podem travar maquinas em rede está incorreta, pois eu tenho um sistema que roda em 45 lojas, cada qual com no minimo 5 máquinas, todas conectadas via internet usando BSS, tirando a matriz.. ou seja são quase 300 maquinas, e nada de dar pau... Se o sistema usa DBWares e é ruim, não é culpa dele, e sim do programador... me desculpem aos amigos.. mas essa é a verdade, 99% dos erros estão nos que nós mesmos causamos, e nao no componente. []s Em 29/11/06, maniacapordelphi [EMAIL PROTECTED] escreveu: Eu sigo a tese do Vitor. Também uso os dois. Simplesmente, se usa TDataSet quando ele permite o desenvolvedor fazer o q precisa e obter o resultado que espera, ou se usa o Edit tratando-o da forma que melhor se quer. Confesso que DBWares tem furos e às vezes nos dão um resultado inesperado sim. E nem sempre é rapido como se diz por aí. Pode travar a rede em caso de grande numero de usuarios e quando se usa o aplicativo através do Client Terminal, então? T+ Mani --- Em delphi-br@yahoogrupos.com.br delphi-br% 40yahoogrupos.com.br, Vitor Luiz Redes vredesredsystem@ escreveu Trabalho com os dois. É besteira fazer sistemas pequenos com classes de negócio, é besteira fazer sistemas grandes com TDataSet. Vitor Luiz Redes Analista de Sistemas Redsystem Software / Bureau Software Messenger: vitorluizredes@ Phone: 3379-6939 Cel. Phone: 9677-8445 - Original Message - From: Joao Morais To: delphi-br@yahoogrupos.com.br delphi-br% 40yahoogrupos.com.br Sent: Wednesday, November 29, 2006 10:04 AM Subject: Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Walter Chagas (Yahoo) wrote: snip prazos que não lhe darão margens pra criar coisas que já existem (o famoso reinventar a roda) ou então ficar fazendo na mão, aquilo que já tem pronto por mero capricho de desenvolvimento. Metendo o bedelho de novo. Ninguém está reinventando a roda ao usar um Edit para apresentar dados, muito pelo contrário, está ignorando uma roda quadrada idealizada há 10 anos pela Borland para implementar uma roda devidamente redonda, calibrada, com liga leve e orientada a objetos. Ainda acrescento que não é de bom tom falar mal de uma implementação quando esta lhe é completamente desconhecida. Eu estou falando com a experiência (e problemas) dos meus quase 10 anos de TDataset comparado com o que eu posso fazer com uma classe de negócio. Você não tem como sequer fazer idéia da diferença relacionada a ganho de produtividade no médio e longo prazos. -- João Morais -- --- Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.409 / Virus Database: 268.14.0/524 - Release Date: 8/11/2006 [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Usar ou não usar DBWare s? Eis a questão!
Andreano Lanusse wrote: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Mistérios do Yahoo, ou então eu já estou moderado. Desculpem se a mensagem chegar em duplicidade. Reencaminhando mensagem de hoje, 6:30hs Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). -- João Morais
Res: [delphi-br] Framework MVP
Acho que me equivoquei umas mensagens atrás e gostaria então de saber quem é quem e o que faz... Porque acho que dependendo como for eu sou o ser mais ignorante deste planeta. * O que são DePO, Jazz, InstantObjects, PressObjects e Infra? * Qual a diferença entre eles? * Quais as vantagens de cada um deles? Na verdade perguntei tudo isso por que lendo várias opiniões e posts em fóruns das ferramentas acima (na verdade a única que eu não li muito foi o PressObjects, mas por falta de tempo), achei que o DePO e o InstantObjects, fazendo a persistencia do BD e grandes doses de OO, já foram pelo menos para mim um grande avanço, já que eu posso ter uma unit apenas com as definições pertinentes ao modelo relacional na minha aplicação e voilà, na camada de apresentação posso usar o que quiser, sejam componentes DataWare ou componentes non-DataWare (que nesse caso são a minha preferência). Agora se Jazz e PressObjects fazem fazem algo além disso, gostaria de saber exatamente o que fazem. Abraços, Ricardo. - Mensagem original De: Joao Morais [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 30 de Novembro de 2006 8:30:57 Assunto: Re: [delphi-br] Framework MVP Fellipe Henrique wrote: Olá João, Qual seria o seu framework? É gratuito? Testei o Jazz, mas ele é tudo manual... ou seja, tenho que colocar tudo na mão... aí complica um pouco.. hehe... www.pressobjects. org/ptbr Ele ainda é todo manual também, porém precisa de menos código do que Infra -- e talvez Jazz -- pois não é obrigatório o uso de interface, e logo passarei para o todo list que você pode ver no site do projeto, fazendo com que você não precise escrever as classes na mão. Ainda assim, você quase arranca os cabelos de tanto escrever apenas para desenhar as classes - e apenas no início do projeto. Quando passa para forms, Presenters, etc., é muito pouca escrita e uma pequena decoreba. Diga-se de passagem, você troca o ficar ligando DataSource, DataField, KeyField, ListField, eventos, etc. por ligar, no Presenter, qual é o atributo de tal componente. Os poucos docs passam rapidamente sobre o assunto, o aplicativo demonstração mostra um pequeno projeto pronto, e a lista support-br tá lá para completar o que faltar. -- João Morais !-- #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family:Georgia; } #ygrp-text p{ margin:0 0 1em 0; } #ygrp-tpmsgs{ font-family:Arial; clear:both; } #ygrp-vitnav{ padding-top:10px; font-family:Verdana; font-size:77%; margin:0; } #ygrp-vitnav a{ padding:0 1px; } #ygrp-actbar{ clear:both; margin:25px 0; white-space:nowrap; color:#666; text-align:right; } #ygrp-actbar .left{ float:left; white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{ font-family:Verdana; font-size:77%; padding:15px 0; } #ygrp-ft{ font-family:verdana; font-size:77%; border-top:1px solid #666; padding:5px 0; } #ygrp-mlmsg #logo{ padding-bottom:10px; } #ygrp-vital{ background-color:#e0ecee; margin-bottom:20px; padding:2px 0 8px 8px; } #ygrp-vital #vithd{ font-size:77%; font-family:Verdana; font-weight:bold; color:#333; text-transform:uppercase; } #ygrp-vital ul{ padding:0; margin:2px 0; } #ygrp-vital ul li{ list-style-type:none; clear:both; border:1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight:bold; color:#ff7900; float:right; width:2em; text-align:right; padding-right:.5em; } #ygrp-vital ul li .cat{ font-weight:bold; } #ygrp-vital a { text-decoration:none; } #ygrp-vital a:hover{ text-decoration:underline; } #ygrp-sponsor #hd{ color:#999; font-size:77%; } #ygrp-sponsor #ov{ padding:6px 13px; background-color:#e0ecee; margin-bottom:20px; } #ygrp-sponsor #ov ul{ padding:0 0 0 8px; margin:0; } #ygrp-sponsor #ov li{ list-style-type:square; padding:6px 0; font-size:77%; } #ygrp-sponsor #ov li a{ text-decoration:none; font-size:130%; } #ygrp-sponsor #nc { background-color:#eee; margin-bottom:20px; padding:0 8px; } #ygrp-sponsor .ad{ padding:8px 0; } #ygrp-sponsor .ad #hd1{ font-family:Arial; font-weight:bold; color:#628c2a; font-size:100%; line-height:122%; } #ygrp-sponsor .ad a{ text-decoration:none; } #ygrp-sponsor .ad a:hover{ text-decoration:underline; } #ygrp-sponsor .ad p{ margin:0; } o {font-size:0;} .MsoNormal { margin:0 0 0 0; } #ygrp-text tt{ font-size:120%; } blockquote{margin:0 0 0 4px;} .replbq {margin:4;} -- __ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Problema com o Quick Report
veja se a propriedade dataset do quickrep tá setada!!! - Original Message - From: Moked - Thiago (Brasil) To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 9:34 AM Subject: [delphi-br] Problema com o Quick Report Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro... ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField := 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; end; Thiago Filiano [As partes desta mensagem que não continham texto foram removidas] __ Informação do NOD32 IMON 1892 (20061130) __ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.com.br [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] teste
testando [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Impressão direta via Rede
somente que ese comando \\host\impr serve para rede, se fizer isso localmente (no proprio computador onde esteja espetada a impressora) da erro... -Mensagem original- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: quinta-feira, 30 de novembro de 2006 08:27 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Impressão direta via Rede Giovanny Carvalho wrote: Boa noite, Alguém poderia me dar a dica de como fazer a impressão direta, sem o sppol, numa matricial em rede. Eu faço a impressão com Assignfile e funciona da máquina onde a impressora está conectada mas na rede eu não consigo. Troca a porta lptx: pelo atalho da impressora: \\host\impr -- João Morais [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Problema com o Quick Report
O QRMemo não possui essa propriedade, por isso estava sendo usado assim: mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; [s] Thiago http://www.moked.com.br/ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Desenvolvimento (Anderson) Enviada em: quinta-feira, 30 de novembro de 2006 10:31 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Problema com o Quick Report veja se a propriedade dataset do quickrep tá setada!!! - Original Message - From: Moked - Thiago (Brasil) To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Sent: Thursday, November 30, 2006 9:34 AM Subject: [delphi-br] Problema com o Quick Report Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro... ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField := 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; end; Thiago Filiano [ Atividade nos últimos dias * 25 Novos usuários http://br.groups.yahoo.com/group/delphi-br/members;_ylc=X3oDMTJmNnR1aTNwBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzExNjQ4ODkwMDY- Visite seu Grupo http://br.groups.yahoo.com/group/delphi-br;_ylc=X3oDMTJldW82NHNvBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2NDg4OTAwNg-- Yahoo! Respostas Já respondeu hoje? http://br.ard.yahoo.com/SIG=12g68sa9a/M=562730.9603557.10326417.9298217/D=brclubs/S=2137111264:NC/Y=BR/EXP=1164896207/A=4123673/R=0/SIG=10up3c083/*http://br.answers.yahoo.com/ Ajude alguém, é só compartilhar o que sabe! Yahoo! Mail Cadastre-se já! http://br.ard.yahoo.com/SIG=12gbb33gb/M=562730.9603561.10326427.9298221/D=brclubs/S=2137111264:NC/Y=BR/EXP=1164896207/A=4123678/R=0/SIG=10rk43vfg/*http://mail.yahoo.com.br/ Proteção anti-spam Muito mais espaço Barra de Ferramentas Instale grátis! http://br.ard.yahoo.com/SIG=12gp1enh3/M=562730.9603569.10326421.9298218/D=brclubs/S=2137111264:NC/Y=BR/EXP=1164896207/A=4123742/R=0/SIG=10tl97i9a/*http://br.toolbar.yahoo.com Os produtos Yahoo! no seu navegador. . http://geo.yahoo.com/serv?s=97490437/grpId=1058778/grpspId=2137111264/msgId=164807/stime=1164889006/nc1=4123673/nc2=4123678/nc3=4123742 [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
hehe, o que tenho visto muito aqui no trabalho, é o pessoal usando eventos OnChange de DbEdits por exemplo, mas acabam tendo efeitos colaterais, uma vez que o evento é disparado quando o estado do Dataset modifica quando se abre, fecha ou ainda em casos de pesquisa com SetKey-Gotokey/GotoNearest. Esse tipo de bug muitas vezes é dificil de achar, pricipalmente no caso de uso de datamodules, no caso de serem usados por diversos forms. Isso não é um problema do componente, ele faz exatamente o que tem que fazer, o programador é que desconhece o funcionamento do mesmo. - Original Message - From: Rubem Nascimento da Rocha [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 29, 2006 11:56 PM Subject: Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! maniacapordelphi, eu lhe desafio vc a me dizer pq controles data-aware lhe causam resultados inesperados! Se vc me provar isso, eu abandono tudo o que eu sei hoje sobre o uso de controles data-aware. Sds. From: Joao Morais [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Date: Wed, 29 Nov 2006 18:41:09 -0200 maniacapordelphi wrote: Confesso que DBWares tem furos e às vezes nos dão um resultado inesperado sim. E nem sempre é rapido como se diz por aí. Pode travar a rede em caso de grande numero de usuarios e quando se usa o aplicativo através do Client Terminal, então? Se existisse alguma culpa, seria do TDataset e não do DBAware. Mas geralmente OPFs são mais lentos do que o TDataset braçal (ponto pro RAD), DBAware faz meramente a apresentação dos dados. Nesse caso concordo com os colegas Felipe e Walter, isso tem dedo do programador. -- João Morais _ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.430 / Virus Database: 268.14.19/556 - Release Date: 28/11/2006 15:22
[delphi-br] Componente para lembrar?
Ola estou fazendo um programa que tem agenda tem algum componente para usar para lembra cada compromisso como um alarme por exemplo obrigado
Re: Res: [delphi-br] Framework MVP
Ricardo Cesar Cardoso wrote: Acho que me equivoquei umas mensagens atrás e gostaria então de saber quem é quem e o que faz... Porque acho que dependendo como for eu sou o ser mais ignorante deste planeta. * O que são DePO, Jazz, InstantObjects, PressObjects e Infra? DePO e InstantObjects são OPF - frameworks de persistência. Jazz, Infra e Press são um conjunto de frameworks, controlam persistência, apresentação, etc. Press eu nomeei de framework de aplicação, pois você deixa 100% da sua aplicação sob o seu controle. * Qual a diferença entre eles? OPF é um único framework, Jazz, Infra e Press incluem OPF, MVP e outros badulaques. * Quais as vantagens de cada um deles? OPF faz mapeamento objeto-relacional e persistência de objetos em bancos relacionais, flat tables, xml, etc. Veja mais detalhes em minha resposta ao Andreano. Um framework de aplicação controla a persistência, a apresentação, notificações, validações, e para o caso específico do Press (não posso falar pelos demais), controla criação e destruição de instância de formulários e liga cada form a cada classe de negócio e um evento (incluir, alterar, registrar, etc.) Na verdade perguntei tudo isso por que lendo várias opiniões e posts em fóruns das ferramentas acima (na verdade a única que eu não li muito foi o PressObjects, mas por falta de tempo), achei que o DePO e o InstantObjects, fazendo a persistencia do BD e grandes doses de OO, já foram pelo menos para mim um grande avanço, já que eu posso ter uma unit apenas com as definições pertinentes ao modelo relacional na minha aplicação e voilà, na camada de apresentação posso usar o que quiser, sejam componentes DataWare ou componentes non-DataWare (que nesse caso são a minha preferência). Tens razão. O grande problema discutido aqui foi usar TDataset como objeto de negócio, e isso é um baita de um tiro no pé (no próprio pé e no pé do cliente). OPF resolve 70% dos teus problemas. Os outros 30% ficam por conta do MVP, que ajuda você desacoplar 100% os teus componentes visuais da lógica da sua aplicação. Tem gente que acha que isso não é importante. Paciência, eu acho que é. Agora se Jazz e PressObjects fazem fazem algo além disso, gostaria de saber exatamente o que fazem. É o que eu disse um pouco acima. Infra, Jazz e Press controlam a sua aplicação, e faz com que você perca menos tempo repetindo o mesmo tipo de acerto em pontos distintos da aplicação, reduzindo drasticamente os bugs nos seus sistemas. Mas para isso você tem que usar *muita* orientação a objetos, e muita gente desiste antes de começar. Se você quiser entrar de cabeça nesse conceito, recomendo que estude muita OOP, ela vai te ajudar bastante. No mais, estamos aí. -- João Morais
Re: [delphi-br] Re: Usar ou não usar DBWare s? Eis a questão!
Andreano Lanusse wrote: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). -- João Morais
[delphi-br] session com idhttp
Ola pessoas, como eu faço para pegar o valor da sessão numa conexao com o componente idhttp ? obs: Delphi 7 grato, thiago [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Zona Azul, off-top
Somente repassando Zona Azul, saiba seus direitos Esta informação é muito valida para nós contribuintes. Vamos aproveitar e fazer o nosso exercicio de cidadania. Zona Azul Revista Consultor Jurídico- O Estado de S. Paulo Dever de vigilância - Quem paga Zona Azul tem direito à segurança do carro. Optando o Poder Público pela cobrança de remuneração de estacionamentos em vias públicas de uso comum do povo, tem o dever de vigiá-los, com responsabilidade pelos danos ali ocorridos. Assim, a empresa Soil Serviços Técnicos e Consultoria de Santa Catarina, foi condenada a pagar indenização no valor de R$ 8,5 mil ao motorista Acácio Irineu Klemke, que teve o carro furtado quando ocupava uma das vagas do sistema de Zona Azul da cidade de Joinville, serviço explorado pela empresa. A decisão é da 1ª Câmara de Direito Civil do Tribunal de Justiça de Santa Catarina confirmando sentença da comarca de Joinville. Para se exercer a plena cidadania, é imprescindível a informação. Repasse-a, oportunizando o conhecimento a outras pessoas assim fazendo valer os seus direitos e também com isso retendo a indústria da multa, porque quem ainda não foi multado pelo Zona Azul? [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Nunca tive problema algum com DBWARE´s Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br - Original Message - From: Rubem Nascimento da Rocha To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 29, 2006 11:56 PM Subject: Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! maniacapordelphi, eu lhe desafio vc a me dizer pq controles data-aware lhe causam resultados inesperados! Se vc me provar isso, eu abandono tudo o que eu sei hoje sobre o uso de controles data-aware. Sds. From: Joao Morais [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Date: Wed, 29 Nov 2006 18:41:09 -0200 maniacapordelphi wrote: Confesso que DBWares tem furos e às vezes nos dão um resultado inesperado sim. E nem sempre é rapido como se diz por aí. Pode travar a rede em caso de grande numero de usuarios e quando se usa o aplicativo através do Client Terminal, então? Se existisse alguma culpa, seria do TDataset e não do DBAware. Mas geralmente OPFs são mais lentos do que o TDataset braçal (ponto pro RAD), DBAware faz meramente a apresentação dos dados. Nesse caso concordo com os colegas Felipe e Walter, isso tem dedo do programador. -- João Morais __ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Tem como pegar o retorno de um site?
Usa o componente idhttp do indy, idhttp.get('http://seusite.com'); isso irá retornar a pagina ;) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Erro em rede!!
Instalei um programa em rede. Porém, quando mais de um usuário tenta se conectar, dá o seguinte erro: LOCK CONFLICT ON NO WAIT TRANSACTION DEADLOCK UPDATE CONFLICTS WITH CONCURRENT UPDATE O que pode estar acontecendo? Estou iniciando as transações e commitando normalmente.
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
APOIADO... Luiz Escobar Analista/Desenvolvedor: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Abraços, Andreano Lanusse System Engineer CodeGear [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] Re: Usar ou não usar DBWares? Eis a questão!
Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. Opa, isso precisa ter muita base pra falar né futuro matuzalem É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). HUmmm uma questao de preferencias. agora melhorou TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ai vc coloca um APPLYUPDATE(-1) e ta tudo certo ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias alterações e mando salvar tudo de uma vez para que se der um problema eu possa fazer um ROLLBACK ??? Este exemplo ta meio desproporcional... Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. é isso de quebrar realmente acontecia muito com D2 mas no D6 nunca aconteceu comigo ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. HUmmm isso realmente parece bom... Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar Valeu e obrigado Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Olá galera Não acredito que o uso de TDataset seja ruim assim como citado, nem o uso de componentes DB-aware. Esse componentes são usados com muito sucesso aqui na empresa e ao mesmo tempo conseguimos manter a aplicação com as três camadas (persistência, regra de negócios e apresentação) muito bem separadas. Eu já tive alguns problemas com db-aware, mas quando eu necessitava de alguma funcionalidade um pouco diferente na interface, dai então carregava o componente com dados via código. Mas fora isso, o datasource nos dá um ganho de produtividade muito alto. Quanto ao uso de objetos de negócio ao invés de Tdataset, como citado anteriormente, não vejo vantagens na abordagem, já que necessita um duplo trabalho ao trazer os dados do banco em Datasets (ou existe outra forma de fazer) e depois popular objetos, tarefa essa realizada pelo OPF, e que poderia ser feita em um passo apenas. Além disso, existem funcionalidades de performance dos Datasets e Datasources como trazer os dados sobre demanda, sem contar o sistema de clientdataset e providers que estão prontos e que teriam que ser reimplementados pelo MVC. Usamos uma abordagem ao desenvolver a SpeedCASE onde o padrão Adapter faz com que as propriedades das classes de regras de negócio sejam mapedas para os campos das tablelas de forma transparente pelo nosso framework de regras de negócio, sem que se conheça qualquer detalhe da persistência, mas sem perder funções importantes de Tdatasets, como Edit, Post e Apply e com a possibilidade de usar db-aware, pois cada classe possui um dataset interno. Bom, espero não ter me alongado muito e mostrado a abordagem que utilizamos por aqui. Abraço a todos On 11/30/06, Joao Morais [EMAIL PROTECTED] wrote: Andreano Lanusse wrote: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). -- João Morais -- -- Flávio G. Maltempe Publisoft Informática Maringá - PR http://www.publisoft.com.br http://www.speedcase.com.br -- [As partes desta mensagem que não continham texto foram removidas]
RE: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
O que você diz de OPF é o que o ECO faz. mas unindo os 2 mundos DataWare e 100% OO From: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Joao Morais Sent: Thursday, November 30, 2006 2:30 AM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Andreano Lanusse wrote: Pessoal, após diversas opiniões... Qualquer desenvolvimento é mais produtivo com os componentes DBWare, mas para trabalhar com eles é bom que se entenda como funciona os eventos e os componentes DataSet e DataSource. Ao longo de todos os softwares que desenvolvi nunca tive problemas com os componentes, se algum comportamento dos componentes não estivesse de acordo com a minha necessidade, bastava herdar e alterar o comportamente do mesmo. Avaliem a necessidade, estude os componentes, agora ter uma aplicação sem nada de data ware por achar que não deve ter é uma decisão equivocada. Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). -- João Morais [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Tem como pegar o retorno de um site?
Obrigado pelo retorno, Thiago. Tentei utilizar, porém ele demora e acaba retornando Socket Erro # 10054 - Connection reset by peer, mesmo que o site que eu coloquei ali seja válido(se eu coloco no browser ele retorna um site). E agora? valeu!!! On 11/30/06, Thiago Muniz [EMAIL PROTECTED] wrote: Usa o componente idhttp do indy, idhttp.get('http://seusite.com'); isso irá retornar a pagina ;) [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] Re: Usar ou não usar DBWar es? Eis a questão!
--- Joao Morais escreveu: Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. [--x--] [Welson] Só uma coisa: o que é OPF ?! define:opf no Google me retorna uma parada da NASA. oO []s. = 'O que me preocupa não é o grito dos maus. É o silêncio dos bons.' Martin Luther King. = Welson de Avelar Soares Filho Analista/Programador Delphi Gemini Sistemas www.geminisistemas.com.br Juiz de Fora - Minas Gerais = ___ O Yahoo! está de cara nova. Venha conferir! http://br.yahoo.com
[delphi-br] Validação mais inteligente
if (cpf '000')and(cpf '111')and(cpf '222') and(cpf '333')and(cpf '444')and(cpf '555') and(cpf '666')and(cpf '777')and(cpf '888') and(cpf '999')then galera tenho uma validação de CPF e tive que colocar esse codigo acima também existe uma forma de validação...usando expressão regular..ou algo melhor do que o acima...? qq sugestão é bem vinda. abs. Rodrigo Mota. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] DBExpress
Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Framework MVP
Conheço o Paulo e o Marcos, os autores do artigo. Eles sabem sim do que estão falando. O problema é que o artigo poderia ser um pouco mais didático. òtimo assim sabemos que o negocio esta certo então... Bom existe algum FRAMEWORK que não seja ALFA ou BETA e que já funcione 100% ou pelo menos 99% pra se produzir algo com facilidade e produtividade assim como os DBWare´s. ??? O meu está em pré-alfa porque eu ainda preciso escrever os wizards, mas eu já tenho duas aplicações em produção feitas com ele. PRÉ-ALFA vc usuaria algo PRÉ-ALFA que vc não tem dominio sobre o que ta acontecendo de errado, DIGO: vc usuaria algo PRÉ-ALFA em um desenvolvimento seu se fosse EU ou melhor a BORLAND estive-se desenvolvendo, em uma aplicação sua para instalar em um cliente seu e ficar ouvindo reclamações de erros insoluveis por causa do PRÉ-ALFA !? Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br - Original Message - From: Joao Morais To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 29, 2006 6:36 PM Subject: Re: [delphi-br] Framework MVP Luiz Escobar wrote: É realmente achei assustador hehehehe Creio que o cara não deve saber do que estava falando... Conheço o Paulo e o Marcos, os autores do artigo. Eles sabem sim do que estão falando. O problema é que o artigo poderia ser um pouco mais didático. Bom existe algum FRAMEWORK que não seja ALFA ou BETA e que já funcione 100% ou pelo menos 99% pra se produzir algo com facilidade e produtividade assim como os DBWare´s. ??? O meu está em pré-alfa porque eu ainda preciso escrever os wizards, mas eu já tenho duas aplicações em produção feitas com ele. -- João Morais [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Cadastro com relacionamento 1 p/ muitos
Oi... Esse relacionamento que você está querendo fazer está me parecendo um relacionamento de muitos pra muitos. Nesse caso seria melhor você criar uma tabela associativa. Daria menos trabalho e voce teria a solução ideal. - Original Message - From: carolinetcc To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 29, 2006 3:15 PM Subject: [delphi-br] Cadastro com relacionamento 1 p/ muitos Olá grupo! Seguinte, eu tenho um cadastro de EVENTOS, e dentro dele eu tenho a chave primária de MODALIDADE, pois eu preciso permitir que cada evento possa cadastrar modalidade. Só que eu preciso tb que meu sistema permita que se possa cadastrar quantas modalidades for preciso para cada evento. Eu estava usando o DBLookupComboBox mas este só me permite selecionar uma modalidade. Então tentei usar DBCheckBox, e setei o valor dele e tal... só que tb não está funcionando, pois quando eu clico em uma opção, eu preciso que o ID desta opção seja enviado ao meu banco de dados, e não está repassando essa informação. Alguém pode me ajudar? -- Esta mensagem foi verificada pelo sistema de antivírus e acredita-se estar livre de perigo. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Validação mais inteligente
Function Occurs(T, S : ShortString) : Byte; Var P : Byte; Begin Result := 0; P := Pos (T, S); while P 0 do begin Inc (Result); S := Copy (S, P + Length (T), 255); P := Pos (T, S); end; End; Essa funcao identifica quantas ocorrecias de um caracter há em uma string, Desculpe nao postar a fonte mas tenho faz tempo e nao me lembro onde consegui. Mas se nao me engano foi o DTDelphi espero ter ajudado Codigo de Ex.: usei isso no onValidate do campo If (Occurs(copy((Sender as TField).Value,0,1),(Sender as TField).Value)11) then Em 30/11/06, Rodrigo [EMAIL PROTECTED] escreveu: if (cpf '000')and(cpf '111')and(cpf '222') and(cpf '333')and(cpf '444')and(cpf '555') and(cpf '666')and(cpf '777')and(cpf '888') and(cpf '999')then galera tenho uma validação de CPF e tive que colocar esse codigo acima também existe uma forma de validação...usando expressão regular..ou algo melhor do que o acima...? qq sugestão é bem vinda. abs. Rodrigo Mota. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Validação mais inteligente
Porque vc já não valida se o cpf é valido? Por exe: //procedure para que só deixe digitar números procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in['0'..'9',Chr(8)]) then Key:= #0; end; //função para verificar se o CPF é valido... uses SysUtils; function cpf(num: string): boolean; var n1,n2,n3,n4,n5,n6,n7,n8,n9: integer; d1,d2: integer; digitado, calculado: string; begin n1:=StrToInt(num[1]); n2:=StrToInt(num[2]); n3:=StrToInt(num[3]); n4:=StrToInt(num[4]); n5:=StrToInt(num[5]); n6:=StrToInt(num[6]); n7:=StrToInt(num[7]); n8:=StrToInt(num[8]); n9:=StrToInt(num[9]); d1:=n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10; d1:=11-(d1 mod 11); if d1=10 then d1:=0; d2:=d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11; d2:=11-(d2 mod 11); if d2=10 then d2:=0; calculado:=inttostr(d1)+inttostr(d2); digitado:=num[10]+num[11]; if calculado=digitado then cpf:=true else cpf:=false; end; Ats... Valdir _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Rodrigo Enviada em: quinta-feira, 30 de novembro de 2006 16:19 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Validação mais inteligente if (cpf '000')and(cpf '111')and(cpf '222') and(cpf '333')and(cpf '444')and(cpf '555') and(cpf '666')and(cpf '777')and(cpf '888') and(cpf '999')then galera tenho uma validação de CPF e tive que colocar esse codigo acima também existe uma forma de validação...usando expressão regular..ou algo melhor do que o acima...? qq sugestão é bem vinda. abs. Rodrigo Mota. [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] DBExpress
Olha, se você quer rapidez use o IBX, já com DBExpress você terá um pouco mais de trabalho, mas o resultado é muito melhor...eu particularmente, nao uso mais IBX, somente DBExpress... []s Em 30/11/06, Fabio Dantas [EMAIL PROTECTED] escreveu: Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Framework MVP
João, Com o mais profundo respeito que o nobre colega é digno de merecer, mas acredito que você tentou, equivocadamente, defender um ponto de vista sobre um recurso que nada teria haver com sua proposta ideológica. Veja bem. De ontem pra hoje, que esta discussão começou, eu andei dando uma fuçada pela WEB em busca de mais insumos sobre o Frameork MVP, OPF, etc.. Quase tudo que encontrei, a nível de exemplos e código, é algo próximo daquele artigo da revista (Criar interface, instanciar classe, overrides, etc). Ou seja, Trocar DBWares por codificação massante, é um ponto de vista que torno a repetir, entra em total rota de colisão (com o transpoder desligado) com a proposta do Delphi, que é PRODUTIVIDADE e VELOCIDADE. O propósito do DBWare, como eu já disse aqui outra vezes, é ganhar tempo com coisas que não são prioridade e, muito menos, críticas no projeto. Sistemas temos que focar no propósito do mesmo (Regras de negócios e automatização de processos), procurando investir menos tempo em coisas triviais. Mas é pra estas coisas triviais é que temos esta plataforma proposta pelo Delphi. Para as regras de negocios, pro miolo do sistema, Pra alma da coisa, eu até concordo plenamente com você que podemos utilizar frameworks pois, acredito plenamente que facilitarão muito ao desenvolvedor com o trabalho pesado e crítico do sistema. mas usar coisas deste tipo pra coisas triviais no sistema, é meramente trabalho de caranguejo. Veja você que muitos aqui apareceram defendendo o DBWare. Muitos são contra mas são contra o DBWare. Agora defendendo o Framework, quantos de ontem pra hoje? Cadê o exemplo que te pedimos aqui? Vimos um. O da revista ClubeDelphi e a rejeição por aquela ideia (comparando-se com o óbvio) foi imediata e instantânea e com total razão. Se podemos montar uma tela de login e senha funcional e eficaz em questão de minutos, pra que que o camarada vai gastar horas e mais horas implementando uma classe ancestrando e descendendo praqui e pralí pra fazer uma coisa que há como ser feita mais rapidamente? Isso pra mim é querer dizer que a menor distancia entre dois pontos é uma curva e não uma reta... E veja você, que ao tentar apresentar um argumento, pra nos contestar, você vem e fala em um pré-alfa, uma coisa que ainda não está pronta e muito menos consolidada. Então tudo indica, que o que você aqui defende, é algo muito mais teórico do que prático não? Mui respeitosamente. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 MSN: [EMAIL PROTECTED] --- Em delphi-br@yahoogrupos.com.br, Luiz Escobar [EMAIL PROTECTED] escreveu Conheço o Paulo e o Marcos, os autores do artigo. Eles sabem sim do que estão falando. O problema é que o artigo poderia ser um pouco mais didático. òtimo assim sabemos que o negocio esta certo então... Bom existe algum FRAMEWORK que não seja ALFA ou BETA e que já funcione 100% ou pelo menos 99% pra se produzir algo com facilidade e produtividade assim como os DBWare´s. ??? O meu está em pré-alfa porque eu ainda preciso escrever os wizards, mas eu já tenho duas aplicações em produção feitas com ele. PRÉ-ALFA vc usuaria algo PRÉ-ALFA que vc não tem dominio sobre o que ta acontecendo de errado, DIGO: vc usuaria algo PRÉ-ALFA em um desenvolvimento seu se fosse EU ou melhor a BORLAND estive-se desenvolvendo, em uma aplicação sua para instalar em um cliente seu e ficar ouvindo reclamações de erros insoluveis por causa do PRÉ-ALFA !? Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br - Original Message - From: Joao Morais To: delphi-br@yahoogrupos.com.br Sent: Wednesday, November 29, 2006 6:36 PM Subject: Re: [delphi-br] Framework MVP Luiz Escobar wrote: É realmente achei assustador hehehehe Creio que o cara não deve saber do que estava falando... Conheço o Paulo e o Marcos, os autores do artigo. Eles sabem sim do que estão falando. O problema é que o artigo poderia ser um pouco mais didático. Bom existe algum FRAMEWORK que não seja ALFA ou BETA e que já funcione 100% ou pelo menos 99% pra se produzir algo com facilidade e produtividade assim como os DBWare´s. ??? O meu está em pré-alfa porque eu ainda preciso escrever os wizards, mas eu já tenho duas aplicações em produção feitas com ele. -- João Morais [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Framework MVP
Luiz Escobar wrote: PRÉ-ALFA vc usuaria algo PRÉ-ALFA que vc não tem dominio sobre o que ta acontecendo de errado, DIGO: vc usuaria algo PRÉ-ALFA em um desenvolvimento seu se fosse EU ou melhor a BORLAND estive-se desenvolvendo, em uma aplicação sua para instalar em um cliente seu e ficar ouvindo reclamações de erros insoluveis por causa do PRÉ-ALFA !? Se você prefere assim, vamos dar nomes às coisas separadas por categoria: - Application, Subjects, MVP, Notifier, broker para Persistência, broker para relatório (mais uns paranhos que eu devo ter esquecido): Stable; - Wizards: Em estudo; -- João Morais
[delphi-br] OFF: Pra quem ainda não viu!
Galera, quem ainda não viu o novo layout e fórum dá ActiveDelphi acessa lá www.activedelphi.com.br Achei que melhorou muito abraços ! Robson [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] DBExpress
Fellipe, Aproveitando que você comentou, me diga uma coisa... Como você faz com os generators? Pq na IBX é fácil, ele pega o valor do generator e está tranqüilo; mas o DBExpress não tem essa facilidade. Já pensei em alguns métodos ,mas me parecem meio toscos (do tipo buscar o valor do generator antes de gravar o registro). Tem alguma forma mais direta de trabalhar com generator e ClientDataSets? Abraços Henrique Netzka - Original Message - From: Fellipe Henrique To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 4:00 PM Subject: Re: [delphi-br] DBExpress Olha, se você quer rapidez use o IBX, já com DBExpress você terá um pouco mais de trabalho, mas o resultado é muito melhor...eu particularmente, nao uso mais IBX, somente DBExpress... []s Em 30/11/06, Fabio Dantas [EMAIL PROTECTED] escreveu: Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [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] Re: Usar ou não usar DBWare s? Eis a questão!
Andreano Lanusse wrote: O que você diz de OPF é o que o ECO faz. mas unindo os 2 mundos DataWare e 100% OO Apenas para fins de esclarecimento: - Eu não disse que a Borland não tem um framework OPF; - 100% OO é uma opinião, e não um fato. -- João Morais
Re: [delphi-br] Validação mais inteligente
Mas essa funçao é bem mais demorada do que fazer a comparação direta... Além do quê, se são exceções (pq 111 não é um CPF válido, então a validação é para deixá-lo passar, certo?!), é melhor deixar o mais visível possível (acho eu). Porque exceções não são esperadas pelo próximo programador que vai pegar o código, então é melhor q fique mais visível pra este! De qualquer forma, antes que gere qualquer polêmica, eu sei que a velocidade de ambas as formas é ridícula e desprezível! Mas bem, já li até críticas sobre o FieldByName pelo consumo de processamento; então, para os que se preocupam com a velocidade do FieldByName, se preocupem também com a velocidade de usar uma função como essa (Occurs) em relação à comparação direta. :) Gabriel, não leve a mal ok?! Só comentando e discutindo mesmo... Henrique Netzka - Original Message - From: Gabriel Filho To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 3:41 PM Subject: Re: [delphi-br] Validação mais inteligente Function Occurs(T, S : ShortString) : Byte; Var P : Byte; Begin Result := 0; P := Pos (T, S); while P 0 do begin Inc (Result); S := Copy (S, P + Length (T), 255); P := Pos (T, S); end; End; Essa funcao identifica quantas ocorrecias de um caracter há em uma string, Desculpe nao postar a fonte mas tenho faz tempo e nao me lembro onde consegui. Mas se nao me engano foi o DTDelphi espero ter ajudado Codigo de Ex.: usei isso no onValidate do campo If (Occurs(copy((Sender as TField).Value,0,1),(Sender as TField).Value)11) then Em 30/11/06, Rodrigo [EMAIL PROTECTED] escreveu: if (cpf '000')and(cpf '111')and(cpf '222') and(cpf '333')and(cpf '444')and(cpf '555') and(cpf '666')and(cpf '777')and(cpf '888') and(cpf '999')then galera tenho uma validação de CPF e tive que colocar esse codigo acima também existe uma forma de validação...usando expressão regular..ou algo melhor do que o acima...? qq sugestão é bem vinda. abs. Rodrigo Mota. [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]
Re: [delphi-br] DBExpress
Olá Henrique, eu não uso generators... a não ser pra tabelas filhas, tenho uma funcao que guarda em uma tabela o numero de cada campo chave. O ideal é isso mesmo, vc ter o codigo no OnNewRecord... []s Em 30/11/06, Henrique Netzka (Vetor Sistemas) [EMAIL PROTECTED] escreveu: Fellipe, Aproveitando que você comentou, me diga uma coisa... Como você faz com os generators? Pq na IBX é fácil, ele pega o valor do generator e está tranqüilo; mas o DBExpress não tem essa facilidade. Já pensei em alguns métodos ,mas me parecem meio toscos (do tipo buscar o valor do generator antes de gravar o registro). Tem alguma forma mais direta de trabalhar com generator e ClientDataSets? Abraços Henrique Netzka - Original Message - From: Fellipe Henrique To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, November 30, 2006 4:00 PM Subject: Re: [delphi-br] DBExpress Olha, se você quer rapidez use o IBX, já com DBExpress você terá um pouco mais de trabalho, mas o resultado é muito melhor...eu particularmente, nao uso mais IBX, somente DBExpress... []s Em 30/11/06, Fabio Dantas [EMAIL PROTECTED]dmsdantas%40astra-sa.com.br escreveu: Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] fellipeh%40gmail.com Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] DBExpress
Pra mim é o melhor... _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Fabio Dantas Enviada em: quinta-feira, 30 de novembro de 2006 15:06 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] DBExpress Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [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] Re: Usar ou não usar DBWare s? Eis a questão!
Welson Avelar wrote: --- Joao Morais escreveu: Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). Vou aproventar sua mensagem para citar uma vantagem de cada lado (de OPF e de MVP, lógico). TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. [--x--] [Welson] Só uma coisa: o que é OPF ?! define:opf no Google me retorna uma parada da NASA. oO Object Persistence Framework. É o framework que torna coisas como isto aqui possíveis: Cliente := TCliente.Create; Cliente.NomeCampo := Valor; Cliente.Save; Procurei na wikipedia sem sucesso. Sinistro. Esse é o artigo do pai da idéia (inglês): http://www.ambysoft.com/persistenceLayer.html Tem uns artigos no www.oodesign.com.br também. -- João Morais
RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
É possivel então eu ter o OPF com ECO, continuando usando DBWares e utilizar MVP _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: quinta-feira, 30 de novembro de 2006 15:11 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Andreano Lanusse wrote: O que você diz de OPF é o que o ECO faz. mas unindo os 2 mundos DataWare e 100% OO Apenas para fins de esclarecimento: - Eu não disse que a Borland não tem um framework OPF; - 100% OO é uma opinião, e não um fato. -- João Morais [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] DBExpress
Henrique Netzka (Vetor Sistemas) escreveu: Fellipe, Aproveitando que você comentou, me diga uma coisa... Como você faz com os generators? Pq na IBX é fácil, ele pega o valor do generator e está tranqüilo; mas o DBExpress não tem essa facilidade. Já pensei em alguns métodos ,mas me parecem meio toscos (do tipo buscar o valor do generator antes de gravar o registro). Tem alguma forma mais direta de trabalhar com generator e ClientDataSets? Abraços Henrique Netzka - Original Message - From: Fellipe Henrique To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Sent: Thursday, November 30, 2006 4:00 PM Subject: Re: [delphi-br] DBExpress Olha, se você quer rapidez use o IBX, já com DBExpress você terá um pouco mais de trabalho, mas o resultado é muito melhor...eu particularmente, nao uso mais IBX, somente DBExpress... []s Em 30/11/06, Fabio Dantas [EMAIL PROTECTED] mailto:dmsdantas%40astra-sa.com.br escreveu: Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] mailto:fellipeh%40gmail.com Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006 Olha amigo se voce tem condicoes $$ vc poderia usar o IBO. Mas tem um excelente e free é o ZeosLib. O IBX tb é uma boa alternativa, é nativo do Delphi. O DBExpress com toda sinceridade nunca usei.
Re: [delphi-br] DBExpress
Os Generators? Como você controla pra não perder a numeração? Vamos dizer com umas 5 máquinas em rede, lançando pedido? []s Em 30/11/06, Valdir UOL [EMAIL PROTECTED] escreveu: Pra mim é o melhor... _ De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Fabio Dantas Enviada em: quinta-feira, 30 de novembro de 2006 15:06 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] DBExpress Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Verificar programa em execução
Pessoal, boa tarde! Gostaria de saber como faço para verificar se um programa está em execução, e caso não esteja, como faço para abrir. Preciso abrir um executável dentro de um outro. Att, Herbert Junior [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] DBExpress
Olha amigo se voce tem condicoes $$ vc poderia usar o IBO. Mas tem um excelente e free é o ZeosLib. O IBX tb é uma boa alternativa, é nativo do Delphi. O DBExpress com toda sinceridade nunca usei. Fellipe Henrique escreveu: Os Generators? Como você controla pra não perder a numeração? Vamos dizer com umas 5 máquinas em rede, lançando pedido? []s Em 30/11/06, Valdir UOL [EMAIL PROTECTED] mailto:vcadanos%40uol.com.br escreveu: Pra mim é o melhor... _ De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em nome de Fabio Dantas Enviada em: quinta-feira, 30 de novembro de 2006 15:06 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] DBExpress Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] mailto:fellipeh%40gmail.com Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006
Re: [delphi-br] DBExpress
Henrique Netzka (Vetor Sistemas) escreveu: Fellipe, Aproveitando que você comentou, me diga uma coisa... Como você faz com os generators? Pq na IBX é fácil, ele pega o valor do generator e está tranqüilo; mas o DBExpress não tem essa facilidade. Já pensei em alguns métodos ,mas me parecem meio toscos (do tipo buscar o valor do generator antes de gravar o registro). Tem alguma forma mais direta de trabalhar com generator e ClientDataSets? Abraços Henrique Netzka - Original Message - From: Fellipe Henrique To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Sent: Thursday, November 30, 2006 4:00 PM Subject: Re: [delphi-br] DBExpress Olha, se você quer rapidez use o IBX, já com DBExpress você terá um pouco mais de trabalho, mas o resultado é muito melhor...eu particularmente, nao uso mais IBX, somente DBExpress... []s Em 30/11/06, Fabio Dantas [EMAIL PROTECTED] mailto:dmsdantas%40astra-sa.com.br escreveu: Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] -- _ Fellipe Henrique [EMAIL PROTECTED] mailto:fellipeh%40gmail.com Venham até a borda, ele disse. Eles disseram: Nós temos medo. Venham até a borda, ele insistiu. Eles foram, Ele os empurrou... E eles voaram. (Guillaume Apollinaire) [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006 Olha amigo se voce tem condicoes $$ vc poderia usar o IBO. Mas tem um excelente e free é o ZeosLib. O IBX tb é uma boa alternativa, é nativo do Delphi. O DBExpress com toda sinceridade nunca usei.
Re: [delphi-br] COLORIR LINHAS DO DBGRID
Rubem, as dicas que eu achei na web eh para GRID nao para DBGRID. De qualquer forma vou checar o JEDI. Obrigado. Atenciosamente, Marcio William - Original Message - From: Rubem Nascimento da Rocha [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 9:11 AM Subject: RE: [delphi-br] COLORIR LINHAS DO DBGRID Dica na internet sobre isso tem a botão (Como fazer um grid zebrado?, e coisas do tipo). O google pode dar uma força nisso. Agora, se vc ñ quer ter trabalho, o TJvDBGrid da suite JEDI VCL já tem propriedades pra tratar isso de forma transparente. Sds. From: Marcio William [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] COLORIR LINHAS DO DBGRID Date: Thu, 30 Nov 2006 08:43:13 -0200 Tem como colorir as linhas do DBGRID em RUN-TIME, seria no caso de cliente em debito aparecer em vermelho e os demais em branco mesmo? Atenciosamente, Marcio William _ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.430 / Virus Database: 268.14.19/555 - Release Date: 27/11/2006 18:09
Re: [delphi-br] Re: Framework MVP
Walter Chagas (Yahoo) wrote: João, Com o mais profundo respeito que o nobre colega é digno de merecer, mas acredito que você tentou, equivocadamente, defender um ponto de vista sobre um recurso que nada teria haver com sua proposta ideológica. Walter, igualmente, com o mais profundo respeito que tenho à sua pessoa, mas você tem misturado alhos com bugalhos. 1. tudo o que você conseguiu encontrar na web são implementações do padrão MVP, e não formas de uso. Veja que, quando você escreve um projeto usando DBWare, você não escreve DBWare, você o utiliza. O artigo do Paulo fala da implementação interna do padrão. Você, por acaso, ficaria assustado se lesse um artigo sobre como os componentes DBWare funcionam? 2. eu defendi um ponto de vista com base em experiência própria. MVP pode não ser mais produtivo do que DBWare quando você tem 15 minutos para concluir um projeto (e olhe lá), mas se você tiver algumas horas você pode escrever sob o padrão MVP de forma tão produtiva quanto usando DBWare. Repito - você não precisa escrever MVP, você o utiliza. Exemplo: eu te garanto que faço uma agendinha telefônica em Press com login de acesso, privilégios de usuários, opção desabilitada para usuários com menos privilégios, meia dúzia de relatórios personalizáveis (filtros, quantos quiser) em apenas uma tarde. Com os testes. Isto porque tudo o que eu citei - o login, os acessos, os relatórios personalizáveis, assim como usar o padrão MVP, são recursos reutilizáveis. Você faz uma vez e depois usa o modelo já criado. Você acha que, ao mesmo tempo que eu falo em OOP, eu escreveria uma renca de coisa repetida em cada projeto? 3. meu projeto está em pré-alfa porque eu não comecei a escrever tudo o que tenho para a primeira versão, mas se você me fizesse a pergunta ao invés de arremessar um tijolo, eu citaria que tudo o que está escrito está suficientemente estável para que eu coloque em produção em meus próprios clientes. Ou você acha que libero sistemas dando pau sem mais nem menos? O que está escrito aqui também está escrito em algumas outras mensagens por esta lista, espero não ter sido repetitivo. Permita-me saber se eu posso ser útil em mais algum esclarecimento. Sim, por favor, pergunte e não tire conclusões precipitadas, você parece estar me tirando pra doido. Agora eu preciso cumprir a promessa que fiz ao Andreano antes que coloquem meu nome na quarentena (se é que já não estou). -- João Morais Veja bem. De ontem pra hoje, que esta discussão começou, eu andei dando uma fuçada pela WEB em busca de mais insumos sobre o Frameork MVP, OPF, etc.. Quase tudo que encontrei, a nível de exemplos e código, é algo próximo daquele artigo da revista (Criar interface, instanciar classe, overrides, etc). Ou seja, Trocar DBWares por codificação massante, é um ponto de vista que torno a repetir, entra em total rota de colisão (com o transpoder desligado) com a proposta do Delphi, que é PRODUTIVIDADE e VELOCIDADE. O propósito do DBWare, como eu já disse aqui outra vezes, é ganhar tempo com coisas que não são prioridade e, muito menos, críticas no projeto. Sistemas temos que focar no propósito do mesmo (Regras de negócios e automatização de processos), procurando investir menos tempo em coisas triviais. Mas é pra estas coisas triviais é que temos esta plataforma proposta pelo Delphi. Para as regras de negocios, pro miolo do sistema, Pra alma da coisa, eu até concordo plenamente com você que podemos utilizar frameworks pois, acredito plenamente que facilitarão muito ao desenvolvedor com o trabalho pesado e crítico do sistema. mas usar coisas deste tipo pra coisas triviais no sistema, é meramente trabalho de caranguejo. Veja você que muitos aqui apareceram defendendo o DBWare. Muitos são contra mas são contra o DBWare. Agora defendendo o Framework, quantos de ontem pra hoje? Cadê o exemplo que te pedimos aqui? Vimos um. O da revista ClubeDelphi e a rejeição por aquela ideia (comparando-se com o óbvio) foi imediata e instantânea e com total razão. Se podemos montar uma tela de login e senha funcional e eficaz em questão de minutos, pra que que o camarada vai gastar horas e mais horas implementando uma classe ancestrando e descendendo praqui e pralí pra fazer uma coisa que há como ser feita mais rapidamente? Isso pra mim é querer dizer que a menor distancia entre dois pontos é uma curva e não uma reta... E veja você, que ao tentar apresentar um argumento, pra nos contestar, você vem e fala em um pré-alfa, uma coisa que ainda não está pronta e muito menos consolidada. Então tudo indica, que o que você aqui defende, é algo muito mais teórico do que prático não? Mui respeitosamente. []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 MSN: [EMAIL PROTECTED] --- Em delphi-br@yahoogrupos.com.br, Luiz Escobar [EMAIL PROTECTED]
Re: [delphi-br] Problema com o Quick Report
Moked - Thiago (Brasil) escreveu: Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField := 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; end; Thiago Filiano [As partes desta mensagem que não continham texto foram removidas] Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006 Voce experimentou fazer assim: mmAteDesc.Lines.Add(fieldbyname('AteDesc').AsString) ??? Espero ter ajudado
Re: [delphi-br] Re: Usar ou não usar DBWare s? Eis a questão!
Luiz Escobar wrote: ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias alterações e mando salvar tudo de uma vez para que se der um problema eu possa fazer um ROLLBACK ??? Este exemplo ta meio desproporcional... Por favor, esclareça melhor a sua dúvida (ou as dúvidas). Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... Que controles você precisa? BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim Cliente := TCliente.Retrieve(ID); TClienteEditPresenter.Run(Cliente); Em duas linhas você traz o cliente, mostra pro usuário, o usuário altera o que quer, clica OK, e o que o usuário alterou é enviado para o banco em uma única transação. TClienteEditPresenter.Run; Em uma linha você faz tudo o que eu falei acima, mas ao invés de alterar, você cria um novo cliente. Detalhe - nem precisa se preocupar em criar instância de coisa nenhuma. Nem destruir (use o FastMM se você não acredita). ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. é isso de quebrar realmente acontecia muito com D2 mas no D6 nunca aconteceu comigo E eu te juro que na época eu achava uma coisa normal. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. HUmmm isso realmente parece bom... Isso é só o começo. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar Pré alfa não significa cangalha. Significa que ainda tem mais código pra vir. Eu, no seu lugar, baixaria e fuçaria até virar do avesso. Pra quem gosta de Assembly isso é um prato cheio. O framework está estável, como eu já te disse, tenho ele em produção. -- João Morais Valeu e obrigado Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Olá galera Não acredito que o uso de TDataset seja ruim assim como citado, nem o uso de componentes DB-aware. Esse componentes são usados com muito sucesso aqui na empresa e ao mesmo tempo conseguimos manter a aplicação com as três camadas (persistência, regra de negócios e apresentação) muito bem separadas. Eu já tive alguns problemas com db-aware, mas quando eu necessitava de alguma funcionalidade um pouco diferente na interface, dai então carregava o componente com dados via código. Mas fora isso, o datasource nos dá um ganho de produtividade muito alto. Quanto ao uso de objetos de negócio ao invés de Tdataset, como citado anteriormente, não vejo vantagens na abordagem, já que necessita um duplo trabalho ao trazer os dados do banco em Datasets (ou existe outra forma de fazer) e depois popular objetos, tarefa essa realizada pelo OPF, e que poderia ser feita em um passo apenas. Além disso, existem funcionalidades de performance dos Datasets e Datasources como trazer os dados sobre demanda, sem contar o sistema de clientdataset e providers que estão prontos e que teriam que ser reimplementados pelo MVC. Usamos uma abordagem ao desenvolver a SpeedCASE onde o padrão Adapter faz com que as propriedades das classes de regras de negócio sejam mapedas para os campos das tablelas de forma transparente pelo nosso framework de regras de negócio, sem que se conheça qualquer detalhe da persistência, mas sem perder funções importantes de Tdatasets, como Edit, Post e Apply e com a possibilidade de usar db-aware, pois cada classe possui um dataset interno. Bom, espero não ter me alongado muito e mostrado a abordagem que utilizamos por aqui. Abraço a todos -- Flávio G. Maltempe Publisoft Informática Maringá - PR http://www.publisoft.com.br http://www.speedcase.com.br -- [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Nem terminei de ler o e-mail mas já sugiro que procure no Google por DePO ou InstantObjects ou PressObjects e leia um pouco dos fóruns tanto do DePO quanto do InstantObjects. Acho que vc vai se surpreender com o que vai achar. - Mensagem original De: Luiz Escobar [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 30 de Novembro de 2006 14:01:21 Assunto: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. Opa, isso precisa ter muita base pra falar né futuro matuzalem... . É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). HUmmm uma questao de preferencias. agora melhorou TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate( ); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ai vc coloca um APPLYUPDATE( -1) e ta tudo certo ==OPF== Cliente := TCliente.Retrieve( ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias alterações e mando salvar tudo de uma vez para que se der um problema eu possa fazer um ROLLBACK ??? Este exemplo ta meio desproporcional. .. Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores. ... não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. é isso de quebrar realmente acontecia muito com D2 mas no D6 nunca aconteceu comigo ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. HUmmm isso realmente parece bom... Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar Valeu e obrigado Luiz Escobar Analista/Desenvolve dor: WEB - HTML/JavaScript/ PHP/MySQL WINDOWS - Delphi/MyDAC/ ASSEMBLER/ MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/ MySQL; http://www.megasist ema.com.br [As partes desta mensagem que não continham texto foram removidas] !-- #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family:Georgia; } #ygrp-text p{ margin:0 0 1em 0; } #ygrp-tpmsgs{ font-family:Arial; clear:both; } #ygrp-vitnav{ padding-top:10px; font-family:Verdana; font-size:77%; margin:0; } #ygrp-vitnav a{ padding:0 1px; } #ygrp-actbar{ clear:both; margin:25px 0; white-space:nowrap; color:#666; text-align:right; } #ygrp-actbar .left{ float:left; white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{ font-family:Verdana; font-size:77%; padding:15px 0; } #ygrp-ft{ font-family:verdana; font-size:77%; border-top:1px solid #666; padding:5px 0; } #ygrp-mlmsg #logo{ padding-bottom:10px;
RES: [delphi-br] Problema com o Quick Report
Marcelo, Ainda assim não funciona... ele não vai para o próximo registro mesmo assim, obrigado pela força! Thiago De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Marcelo Enviada em: quinta-feira, 30 de novembro de 2006 18:46 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Problema com o Quick Report Moked - Thiago (Brasil) escreveu: Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField := 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; end; Thiago Filiano [As partes desta mensagem que não continham texto foram removidas] -- Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006 Voce experimentou fazer assim: mmAteDesc.Lines.Add(fieldbyname('AteDesc').AsString) ??? Espero ter ajudado [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] Re: Usar ou não usar D BWares? Eis a questão!
anderson wrote: É possivel então eu ter o OPF com ECO, continuando usando DBWares e utilizar MVP DBWare e MVP são inimigos mortais! Brincadeira. É o mesmo você dizer que quer sair de carro e moto ao mesmo tempo. MVP é um padrão para apresentação de dados, assim como DBWare. -- João Morais
Re: [delphi-br] Problema com o Quick Report
Moked - Thiago (Brasil) escreveu: Bom dia colegas Delphianos, Estou tendo um problema na hora de gerar um relatório, estou utilizando um componente do tipo QRMemo, para receber os dados, conforme parte do código abaixo, mas quando o relatório é gerado, somente aparece os dados do 1ºregistro do banco ou do último registro ele não fica passando de um a um, como os campos .DataField Alguém teria uma sugestão?? eu tentei.. abrir o ClientDataSet.. e dar um first. depois dentro do laço colocar um next... e não adiantou... for i := 0 to RecordCount-1 do begin qrdbDadoAten0.DataField := 'AteCodi'; qrdbDadoAten3.DataField := 'UsuNome'; qrdbNomeProcurador.DataField := 'pro_nome'; qrdbAtend1.DataField := 'His_Data'; qrdbDadoAte2.DataField := 'HisDura'; qrdbSituacao.DataField := 'ate_situ'; mmAteDesc.Lines.Text := fieldbyname('AteDesc').AsString; end; Thiago Filiano [As partes desta mensagem que não continham texto foram removidas] Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.408 / Virus Database: 268.13.6/486 - Release Date: 19/10/2006 Voce experimentou fazer assim: mmAteDesc.Lines.Add(fieldbyname('AteDesc').AsString) ??? Espero ter ajudado
RES: [delphi-br] DBExpress
Eu costumo utilizar e nunca tive problemas... mas existem outros componentes de acesso.. tem um que se chama Zeos (algo assim).. mas nunca utilizei. De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Fabio Dantas Enviada em: quinta-feira, 30 de novembro de 2006 16:31 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] DBExpress Pessoal vcs recomendam o uso da paleta dbExpress para acessar o firebird ? ou melhor outro componente ? Abraço [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Verificar maskedit
Eu fiz algo parecido... Vlw. De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Tamara Clemente Enviada em: quinta-feira, 30 de novembro de 2006 05:01 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Verificar maskedit try StrToDateTime(edit.text); except Showmessage('Digite a data certa'); end; Em 29/11/06, Moked - Humberto (Brazil) [EMAIL PROTECTED] mailto:humberto%40moked.com.br escreveu: Como faço para verificar se um texto é hora? Por exemplo: Tenho um Edit que o usuário digita uma hora, porém se o usuário digitar uma data inválida da msg de erro.. Como fazer? No VB tem o comando isDate.. tem algo parecido no Delphi? [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] Exibir Fontes
Boa Tarde Galera, Eu gostaria que alguém pudesse me informar como eu posso exibir as fontes de uma pasta de fontes que não estão instaladas no computador. Eu montei um programa para exibir fontes mas somente consigo mostrar as do Windows. Quando peço para ver uma de uma pasta comum elas não são exibidas... :( Obrigado a todos... [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias alterações e mando salvar tudo de uma vez para que se der um problema eu possa fazer um ROLLBACK ??? Este exemplo ta meio desproporcional... Por favor, esclareça melhor a sua dúvida (ou as dúvidas). Onde eu implemento uma TRANSAÇÂO ? se der pau para fazer um ROLLBACK. TIPO usado seu exemplo... : try cliente.insert; Cliente.Nome := 'fulano'; contrato.insert; Contrato.data := 'hoje'; nota.insert; nota.id := '1'; itens.insert; itens.nota := 'item 001'; cliente.save; contrato.save; nota.save; itens.save; ALL.APPLYUPDATE ( -1 ); - e somente aqui salva tudo e se der um pau exception all.roolback(); -- volta tudo sem cadastrar nadinha nos bancos !!! end; Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... Que controles você precisa? EU !, De nenhum Quando menos tiver que me preocupar com controles disso-daquilo melhor, ganho em produtividade... eu disse PRA QUEM ACHA, afinal a discusão era DBWARE ou não... BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim Cliente := TCliente.Retrieve(ID); TClienteEditPresenter.Run(Cliente); Em duas linhas você traz o cliente, mostra pro usuário, o usuário altera o que quer, clica OK, e o que o usuário alterou é enviado para o banco em uma única transação. TClienteEditPresenter.Run; Em uma linha você faz tudo o que eu falei acima, mas ao invés de alterar, você cria um novo cliente. Detalhe - nem precisa se preocupar em criar instância de coisa nenhuma. Nem destruir (use o FastMM se você não acredita). Acho que vou precisar experimentar para ver como é o trem ai... pra continuar a thread.. hehehhe Pois tem que ter uma ligação pra esse RUN ai uai... ele tem que estar ligado a um FORM que vc construiu... o o negocio é magico d+ Vejo um exemplo que pra LOGIN o cara faz uma aplicação completa agora vc vem com 2 linha que abre, localiza, edit, salva, create, destroiu e nem ligou ela ao banco ele adinhou tudo... ai ficou vago... heheheheh ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. é isso de quebrar realmente acontecia muito com D2 mas no D6 nunca aconteceu comigo E eu te juro que na época eu achava uma coisa normal. ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. HUmmm isso realmente parece bom... Isso é só o começo. Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar Pré alfa não significa cangalha. Significa que ainda tem mais código pra vir. Eu, no seu lugar, baixaria e fuçaria até virar do avesso. Pra quem gosta de Assembly isso é um prato cheio. O framework está estável, como eu já te disse, tenho ele em produção. BLZ vamos ver no que vai dar. Mas assim como troquei o CLIPPER por DELPHI vou acabar trocando o DELPHI por PHP um dia. ;-) [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] [OFF] Exemplo de MVP
Olá, conforme solicitado explicita ou implicitamente por Walter, Luiz, Ricardo, Felipe, e acho que teve mais gente--desculpa se esqueci de alguém, e também para satisfazer a curiosidade do pessoal, eu adaptei o aplicativo demonstração do PressObjects--PhoneBook--a fim de torná-lo mais simples de compilar e rodar. Quem tiver alguma familiaridade com InstantObjects poderá testar os Combos através do MVP do Press, é simplesmente maravilhoso. Quem não tiver paciência para configurar o IO ou não tiver muita familiaridade com ele--reconheço que ele é um pouco complicado de instalar--poderá testar o Combo através do atributo Enum (procure por PhoneType). É com exemplos como este que eu falo que MVP pode dar um show de produtividade quando comparado a DBWare. Leia os dois Readme-ptbr.txt que você encontrar pelo caminho até chegar ao aplicativo. Agora dois pedidos igualmente importantes: 1. Você não é obrigado a gostar, nem mesmo concordar com nada do que eu disse. Basta ignorar minha mensagem para que isto não inicie outra thread barulhenta. 2. Se você tiver interesse, dúvida, quiser saber mais sobre o projeto, testar melhor, acompanhar o desenvolvimento, etc., etc., utilize a lista support-br para estar mais próximo de outras pessoas também interessadas. Quem não tiver interesse não estará inscrito e não será importunado. Ainda assim, se você não gostou ou ainda não acredita que desse mato saia algum coelho, mas tá apostando pra ver, então inscreva-se ao menos na lista announce para ser notificado assim que os releases estiverem disponíveis para download. Quem tiver algum interesse e não pegou o link: www.pressobjects.org -- João Morais
[delphi-br] Re: COLORIR LINHAS DO DBGRID
Caro Marcio A partir do exemplo abaixo voce faz o que quizer. (Evento OnDrawColumnCell do DBrid) Não esquecer a ultima linha: (DefaultDrawColumnCellRect,DataCol,Column,state); ) []s Edison {retirado do forum em 15/9/2006} Como mudar cores e fontes de uma determinada celula em um DBGrid de acordo com seu valor, ou seleção procedure TFConsultarItens.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var I : integer; begin with DBGrid1 do begin // mude a cor das celulas em que FieldValor1 = 0 if(FieldValor1.Value = 0) then if(column.Index = 1) then Canvas.brush.Color:= clLime; // se coluna 6 contiver 'Amarelo' mude a cor da célula para red - mude para negrita if(column.Index = 6) then if(pos('Amarelo', FieldNomeCor.asstring) 0) then begin Canvas.brush.Color:= clred; Canvas.Font.Color:= clWhite; Canvas.Font.Style := [fsbold]; end; // mude a cor de celulas selecionadas if(gdSelected in State) then begin Canvas.brush.Color:= clblue; Canvas.Font.Color:= clWhite; end; // mude a cor das celulas com foco if(gdfocused in State) then begin Canvas.brush.Color:= clYellow; Canvas.Font.Color:= clBlue; end; DefaultDrawColumnCell(Rect,DataCol,Column,state); end; end; if gdselected in state then // se a linha estiver selecionada dbgrid1.Canvas.Font.Color := clwhite; // muda a cor do texto --- Em delphi-br@yahoogrupos.com.br, Rubem Nascimento da Rocha [EMAIL PROTECTED] escreveu Dica na internet sobre isso tem a botão (Como fazer um grid zebrado?, e coisas do tipo). O google pode dar uma força nisso. Agora, se vc ñ quer ter trabalho, o TJvDBGrid da suite JEDI VCL já tem propriedades pra tratar isso de forma transparente. Sds. From: Marcio William [EMAIL PROTECTED] Reply-To: delphi-br@yahoogrupos.com.br To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] COLORIR LINHAS DO DBGRID Date: Thu, 30 Nov 2006 08:43:13 -0200 Tem como colorir as linhas do DBGRID em RUN-TIME, seria no caso de cliente em debito aparecer em vermelho e os demais em branco mesmo? Atenciosamente, Marcio William _ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br
Re: [delphi-br] Re: Usar ou não usar DBWare s? Eis a questão!
Luiz Escobar wrote: Onde eu implemento uma TRANSAÇÂO ? se der pau para fazer um ROLLBACK. TIPO usado seu exemplo... : try cliente.insert; Cliente.Nome := 'fulano'; contrato.insert; Contrato.data := 'hoje'; nota.insert; nota.id := '1'; itens.insert; itens.nota := 'item 001'; cliente.save; contrato.save; nota.save; itens.save; ALL.APPLYUPDATE ( -1 ); - e somente aqui salva tudo e se der um pau exception all.roolback(); -- volta tudo sem cadastrar nadinha nos bancos !!! end; O seu modelo de classe sabe que itens pertence a nota, portanto itens.save não existe. Eu não entendi direito o que você quer dizer com contrato, mas quanto ao resto, fica assim: Cliente := TCliente.Create; // esqueça o conceito de Insert Cliente.Nome := 'Fulano'; Se você estiver preenchendo na tela, pode deixar que o Presenter que controla a Combo dá a opção de você criar um novo cliente. Estou falando de um exemplo hipotético totalmente em código. Continuando: Cliente.Save; Nesse ponto eu criei um cliente e salvei, mas eu poderia pegar um do banco: Cliente := TCliente.Retrieve(IDCliente); IDCliente não vem por mágica. Você pode usar uma PressQuery para consegui-lo -- o que por sinal te traria a própria instância Cliente e nem precisaria de Retrieve. Ainda assim, apenas exemplo em código, um Presenter faz isso pelo usuário e pelo programador com um pé nas costas. Continuando - o que importa é que Cliente agora aponta para o cliente que eu quero usar. Nota := TNota.Create; Nota.Cliente := Cliente; ItemNota := TItemNota.Create; ItemNota.Quant := 10; Nota.Itens.Add(ItemNota); Nota.Save; Liberando memória -- apenas memória, os objetos já estão no banco. Nota.Free; Cliente.Free; Claro, faça isso dentro de blocos try/finally. Itens? Não precisa, itens é parte de Nota e não deve ser destruído. Pronto. Sua nota foi salva junto com os itens, e apontando para o seu cliente, tenha ele sido criado ou trazido da base. Isto está simulando regras de negócio que funcionam em eventos independentes do que o usuário esteja cadastrando. Mas se você criou um formulário para preenchimento de nota, então precisa apenas disto: TNotaEditPresenter.Run; e aqui o usuário pode escolher o cliente, ou criar um novo caso ele não encontre, incluir itens, etc., etc. e o botão OK irá disparar o .Save deste objeto. O cache é feito pelo objeto de negócio. Quando você executa Nota.Cliente := Cliente; ou ainda Cliente.Nome := 'Nome'; isto é guardado no objeto de negócio, apenas em memória. Quando você executa: Nota.Save; todas as queries necessárias para gravar a nota, inclusive seus itens, são criados pelo OPF. Se ocorrer uma falha na transação, ela é cancelada e seu objeto permanece como 'ainda não salvo'. Mas isso não é problema da regra, é um problema do OPF e será reportado com uma exceção. O que você pode fazer é registrar um serviço de mensagens para traduzir algumas mensagens de erro que você queira (em desenvolvimento). Enfim, esquece transaction, esquece rollback, esquece qualquer coisa que não seja relacinado estritamente com regras de negócio. Claro que você pode precisar gravar dois ou mais objetos em um único contexto transacional. Não é comum acontecer, mas pode. Veja que isto não se aplica a Cliente x Nota -- se o cliente for salvo e der pau pra gravar a nota, o cliente está íntegro, a nota não tem nada que ver com os dados dele. Enfim, o exemplo: PressDefaultPersistence.StartTransaction; try Obj1.Save; Obj2.Save; PressDefaultPersistence.CommitTransaction; except PressDefaultPersistence.RollbackTransaction; raise; end; Este código fica implícito quando você chama .Save fora de um contexto de transação. Ou seja, sempre existe segurança, nada é feito nas coxas. Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... Que controles você precisa? EU !, De nenhum Quando menos tiver que me preocupar com controles disso-daquilo melhor, ganho em produtividade... eu disse PRA QUEM ACHA, afinal a discusão era DBWARE ou não... Pra quem achar, basta dizer o que precisa, pois sempre haverá uma forma de fazer. BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim Cliente := TCliente.Retrieve(ID); TClienteEditPresenter.Run(Cliente); Em duas linhas você traz o cliente, mostra pro usuário, o usuário altera o que quer, clica OK, e o que o usuário alterou é enviado para o banco em uma única transação. TClienteEditPresenter.Run; Em uma linha você faz
[delphi-br] alguém tem uma função vamos dizer mais eficaz
a função abaixo deixa somente os números, eu ainda estou dando uma olhada em expressões regulares e da pra fazer muita coisa, se alguém tiver uma função mais rapida do que essa...ja ajuda... function adOnlyNumber(const Value: String): String; var I : Integer; S : String; begin S := ''; for I := 0 to Length(Value) do if (Value[I] in ['0'..'9']) then S := S + Copy(Value,I,1); Result := S; end; Rodrigo Mota. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Validação mais inteligente
procedure valida_cpf ; var x : integer; begin for x := 1 to 11 do begin if cpf = replicate( ord(x) ,11) ) then begin ShowMessage('CPF Inválido'); Exit; end; end; Em 30/11/06, Rodrigo [EMAIL PROTECTED] escreveu: if (cpf '000')and(cpf '111')and(cpf '222') and(cpf '333')and(cpf '444')and(cpf '555') and(cpf '666')and(cpf '777')and(cpf '888') and(cpf '999')then galera tenho uma validação de CPF e tive que colocar esse codigo acima também existe uma forma de validação...usando expressão regular..ou algo melhor do que o acima...? qq sugestão é bem vinda. abs. Rodrigo Mota. [As partes desta mensagem que não continham texto foram removidas] -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Luiz Escobar wrote: DBAware não é um desconhecido pra mim, e confesso que eu fiz injustiça. A roda quadrada é usar TDataset como objeto de negócio. Isso dá mais dor de cabeça do que Whisky paraguaio. O TDataset da dor de cabeça pra quem não sabe usar, é como Whisky paraguaio, pra quem não sabe comprar e tomar... Outro Matuzalém. Esse ano completei 21 de programação, 18 de Basic, 16 de Clipper e Pascal (Turbo 3). Parece que foi ontem. Meu DEUS, outro Jovem que acha que sabe tudo que diz Até parece que vc não vai ser um matuzalém... e pior vai ser um dos teimosos e sem educação Já está acontecendo. DBAware em .net publica propriedades de objetos, e o InstantObjects tem um esquema parecido para win32 e propriedades publicadas via RTTI. Pra quem gosta de DBAware é um prato cheio. Bom seguinte meu caro, a conversa arqui é DBWARE ou ÑDBWare certo, referindo-se a RESUMINDO, DBEDIT ou EDIT, DBLISTBOX ou LISTBOX, sendo assim DBWare é muito melhor Outra, até que me provem ao contrario à matematica sempre foi exata, então 1+1=2+3=5, certo então quanto mais código para ser interpretado/executado/compilado, maior a aplicação e mais pesada para rodar nas maquinas, então enquanto o parque tecnologico são de maquinas mais modestas, os DBWare´s ainda vão ser a melhor opção, imagine uma aplicação Delphi 6-DWARE contra uma BDS2006-FrameWork-MVC, a diferença deve ser em MEGAS. então, veja se me entende, por enquanto DBWare´s são melhores em performance e em produtividade contra os Edit´s da vida BASTA vc saber usar, porque se vc não sabe usar então meu caro, ai num tem jeito não... Não disse que FRAMEWORK-MVC seja pior que DBWare´s, quiz dizer que ele ainda esta crescendo/amadurecendo e futuramente com maquinas melhores que as de hoje, com certeza seja mais uma opção ou à opção realmente melhor que os DBWare´s Ponto Final... DEU PRA ENTERDER !!!... Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!
Luiz eu tb estou olhando mais de perto isso. O bom é que tu pode criar uma classe TCliente, e chamando o retrieve, por exemplo, carregar os dados do banco. O ganho é que tu faz isso na classe, e só instancia o objeto. Com TDataSet, se em cada form tu for colocar um TTable ou um TQuery para buscar esses dados, tu vai ter que localizar o cliente corespondente, ou com Locate, ou com um GotoKey. Em resumo, e sempre tem que escrever muito código. Já no caso, usando um objeto cliente, tu escreve esse código uma vez só e pronto. - Original Message - From: Luiz Escobar [EMAIL PROTECTED] To: delphi-br@yahoogrupos.com.br Sent: Thursday, November 30, 2006 2:01 PM Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão! Andreano, não é achar que não deve ter, é ter certeza que não precisa ter. Opa, isso precisa ter muita base pra falar né futuro matuzalem É sempre questão de preferência. Falo por mim, estou apenas expondo vantagens de um modelo orientado a objetos perante o RAD (com exceção de usar TDataset como objeto de negócio - isso é roda quadrada). HUmmm uma questao de preferencias. agora melhorou TDataset é orientado a tabela, OPF é orientado a objetos do domínio do problema. ==TDataset== TabCliente.Open; // ou .Query := 'xx'; TabCliente.Locate(); // ou TabCliente.Open; TabCliente.Edit TabClienteNOME := 'Outro'; TabCliente.Post; e se tiver Cached updates... transação... ai vc coloca um APPLYUPDATE(-1) e ta tudo certo ==OPF== Cliente := TCliente.Retrieve(ID); -- monta query, pesquisa, etc. Cliente.Nome := 'Outro Nome'; Cliente.Save; -- cache, controle transacional, tudo aqui dentro. E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra TDataset. Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho um SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias alterações e mando salvar tudo de uma vez para que se der um problema eu possa fazer um ROLLBACK ??? Este exemplo ta meio desproporcional... Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo mesmo porque os controles ficaram mais ainda longe das mãos dos programadores não que eu não ache isso maravilhoso, muito pelo contrario, quanto menos codigo melhor... BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as coisas, vou ter que fazer um label1.caption := cliente.nome ? Explique mais, ou mostre onde posso conseguir mais coisa to começando a gostar do bixim ==DBAware== DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em um componente (DB*) e a um datasource. Se você quer um componente 'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset estiver em um DataModule e por desencargo do destino a ligação quebrar (nisso o Delphi melhorou um bocado), você tem que reabrir o form e refazer a bendita. é isso de quebrar realmente acontecia muito com D2 mas no D6 nunca aconteceu comigo ==MVP== MVP é totalmente desacoplado, é o framework que entende o componente, e não o contrário. O formulário que usa o padrão MVP *não tem código*, você pode mandar os .pas e os .dfm para uma empresa de design, entregar uma licença de Delphi pra eles, eles usam qualquer componente que eles quiserem, você tras os novos formulários para o seu projeto e recompila. A única exigência é que os componentes continuem com o mesmo nome, porque MVP pode ser bom, mas não é feiticeiro. HUmmm isso realmente parece bom... Teria mais um monte pra falar, mas encerro aqui minha participação nessa thread com esse mini-artigo (a menos que os colegas tenham dúvidas). Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai dar Valeu e obrigado Luiz Escobar Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase DOS - Clipper/Assembler xBase SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k LINUX - LAZARUS/Kylix/MySQL; http://www.megasistema.com.br [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.430 / Virus Database: 268.15.2/559 - Release Date: 30/11/2006 05:07