Re: [delphi-br] Migrar delphi 7 para Delphi 2010.
Bom dia, No inicio quando lançou o delphi 2010 tinha muitos problemas em relação algumas rotinas alterada na nova versão do dephi 2010, mas a migração é tranquila no Delphi 2010 com update 4/5 pois ja não encontrei os bugs anteriores, só que alguns tipos de campos mudaram como por exemplo pchar agora é pansichar e assim vai, mas 80% aproveita da versão antiga e precisa limpar todos os fields dos clientedataset (caso vc usa) e adicionar novamente pois mudam os tipos de campos. --- Em qua, 25/8/10, Samuel M. Basso samuelba...@yahoo.com.br escreveu: De: Samuel M. Basso samuelba...@yahoo.com.br Assunto: [delphi-br] Migrar delphi 7 para Delphi 2010. Para: delphi-br@yahoogrupos.com.br Data: Quarta-feira, 25 de Agosto de 2010, 13:13 Bom dia Pessoal. Gostaria de trocar algumas dicas e ideias sobre migração de aplicação feita em delphi 7 para delphi 2010 se é tranquilo, o que muda? Se é complicado ou não? To muito afim de fazer a migração porem não sei o quanto é dificil ou não. -- Atenciosamente, Samuel M. Basso Cel: (54) 8135-3723 Skype: samuelbasso E-mail/MSN: samuelba...@gmail.com Web site: www.otimizy.com.br [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] Problemas com MySQL 5.1 e Delphi 2010
Boa tarde, Ao invés de colocar a virgula no dbedit tente colocar no displayformat do clientdataset (obs cito o clientdataset mas o mydac tambem da por uso o corelab da devart) que vc nescessita pois normalmente campo decimal é somente colocar a mascara no display format ex(###,##0.00). --- Em qui, 26/8/10, Eduardo Silva dos Santos eduardo@gmail.com escreveu: De: Eduardo Silva dos Santos eduardo@gmail.com Assunto: Re: [delphi-br] Problemas com MySQL 5.1 e Delphi 2010 Para: delphi-br@yahoogrupos.com.br Data: Quinta-feira, 26 de Agosto de 2010, 12:14 Lucas, não uso DbEdit mais vou fazer um teste aqui. Qual versão do MyDAC você ta usando? Att, ... Eduardo Silva dos Santos DRD SISTEMAS (27) 3218-4201 (27) 9961-7095 MSN: eduardo@gmail.com Site: http://www.drdsistemas.com.br/ ... Em 26 de agosto de 2010 08:33, Lucas Eduardo Barao Neves lucas_del...@yahoo.com.br escreveu: Bom dia pessoal. Estou com um problema com campos do tipo float e DBEdit no Delphi 2010 com MySQL5.1. O problema é o seguinte: crio meu campo no MySQL como float de 16,2. Na aplicação coloco um dbedit e quando tento preenchê-lo colocando vírgula como separador decimal ele dá o seguinte erro: --- Project raised exception class EDatabaseError with message ''1,25' is not a valid floating point value for field 'Valor Gasolina''. --- Se eu apagar o valor e digitar ponto como separador, por ex. 1.25, ele não aceita, aliás, o dbedit nem deixa eu digitar o '.', aceitando somente a vírgula. Alguém saberia por que isso acontece e como posso resolver? Para referência, estou usando os componentes MyDAC. Grato a todos, Lucas Neves [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Iniciar em sistemas web
Para desenvolvimento web com delphi 7 pesquise no google sobre apostila intraweb, so precisa saber de delphi e um pouco de html. Se puder espere o RadPHP que vai ser lancado ou use o DotNet express(Free) para desenvolimento ASP. Abraços. --- Em qui, 19/8/10, Albuquerque sys.e...@yahoo.com escreveu: De: Albuquerque sys.e...@yahoo.com Assunto: [delphi-br] Iniciar em sistemas web Para: delphi-br@yahoogrupos.com.br, delphi-br@yahoogrupos.com.br Data: Quinta-feira, 19 de Agosto de 2010, 18:13 Caríssimos, Preciso de um “pontapé inicial” dos colegas. Há 10 anos trabalho com Delphi (+MSSQL) criando sistemas desktop. Atualmente utilizo o Delphi2007, porém nunca tive interesse em desenvolver sistemas para web.Nunca sequer mexi nas opções .net que sei que ele oferece. Na época gastei um bom dinheiro na licença do RadStudio2007 porém até hoje sei que só usei “metade” dele..rsrs. Porém... Surgiu uma grande, e ótima, oportunidade envolvendo desenvolvimento de um sistema para web. Só que estou totalmente perdido !!! Se não for abusar de suas boas vontades: -meu conhecimento em desenvolvimento de sistemas desktop é útil em alguma coisa em sistemas para web ? -o Delphi “puro” faz todo um webservice funcionar ou tem que ter uma outra linguagem junto (PHP, Ajax, etc) ? -o que exatamente procurar no Google para conseguir dar os primeiros passos nessa nova empreitada ? Desde já agradeço a atenção dispensada. Att. Albuquerque [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] Free Lancer Delphi 7
se precisa podemos conversar alan.ricardo.so...@gmail.com --- Em sex, 13/8/10, anderson andersondias2...@yahoo.com.br escreveu: De: anderson andersondias2...@yahoo.com.br Assunto: [delphi-br] Free Lancer Delphi 7 Para: delphi-br@yahoogrupos.com.br Data: Sexta-feira, 13 de Agosto de 2010, 13:48 Bom dia preciso de fazer alguams alterações em um programa para pizzaria e um para mercado, ecf e relatorios [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] QRAngledLabel
Realmente concordo com o Luciano, Instale o componente citado mas é limitado, ao invés de usar o componente de terceiro segundo pelo que percebi a unica finalidade dele é escrever o teste inclinado (posso estar errado), sendo que é possivel fazer isso com o canvas no delphi sendo nativo e sem depender de componentes. --- Em sex, 13/8/10, Luciano Bruno lsbdevelopm...@yahoo.com.br escreveu: De: Luciano Bruno lsbdevelopm...@yahoo.com.br Assunto: Re: [delphi-br] QRAngledLabel Para: delphi-br@yahoogrupos.com.br Data: Sexta-feira, 13 de Agosto de 2010, 1:38 Não percebi. bom existe uma rotina que desenha o testo na vertical, eu usei ela com o quick e com o report builder. ela desenha uma imagem com o texto. Em 12 de agosto de 2010 08:25, Alan ricardo Souza alanr.so...@yahoo.com.brescreveu: Hum, precisa ser realmente este componente? --- Em qua, 11/8/10, Magnun Oliveira magnunolive...@gmail.commagnunoliveira%40gmail.com escreveu: De: Magnun Oliveira magnunolive...@gmail.com magnunoliveira%40gmail.com Assunto: Re: [delphi-br] QRAngledLabel Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Data: Quarta-feira, 11 de Agosto de 2010, 14:59 Já tentei Colocar o caracter #13, #10 sLineBreak, e nada rolou ... [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Luciano S. Bruno Consultor em TI [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] QRAngledLabel
Hum, precisa ser realmente este componente? --- Em qua, 11/8/10, Magnun Oliveira magnunolive...@gmail.com escreveu: De: Magnun Oliveira magnunolive...@gmail.com Assunto: Re: [delphi-br] QRAngledLabel Para: delphi-br@yahoogrupos.com.br Data: Quarta-feira, 11 de Agosto de 2010, 14:59 Já tentei Colocar o caracter #13, #10 sLineBreak, e nada rolou ... [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] Ver o resultado do Inner Join sem applyupdate
Bom dia, Acredito que não é possivel pois o post salva ele somente do repositorio do clientdataset e o applyupdate envia para o banco, neste caso vejo somente duas soluções. 1 - Mandar um update diretamente pelo banco e dependendo do banco um commit. 2 - Guardar o cod do master dar o applyupdate e resgatar o cod usando depois o edit. Abraços. --- Em ter, 10/8/10, Marciano Venter venter.marci...@gmail.com escreveu: De: Marciano Venter venter.marci...@gmail.com Assunto: [delphi-br] Ver o resultado do Inner Join sem applyupdate Para: delphi-br@yahoogrupos.com.br, lista-del...@yahoogrupos.com.br Data: Terça-feira, 10 de Agosto de 2010, 13:39 Bom dia Pessoal, Existe alguma maneira de ver o resultado de uma junsão somente dando o post no clientdataset ? sem aplicar o applyupdate ? Estou trabalhando com Master/Detail, então não posso dar um applyupdate diretamente no detail e preciso dos dados ele em outro furmulário antes de salvar o master. o sql do SqldataSet é esse : SELECT EO.*, E.DSC_EQUIPAMENTO FROM TBL_EQUIP_ORDEM EO INNER JOIN TBL_EQUIPAMENTO E ON (EO.ID_EQUIPAMENTO = E.ID_EQUIPAMENTO) WHERE ID_ORDEM = :ID_ORDEM -- Marciano Venter Email: venter.marci...@gmail.com Celular: (51) 9672 6093 venter.marci...@gmail.com marcianoven...@hotmail.com [image: Twitter] http://www.twitter.com/ventermarciano@ventermarciano [image: Facebook]http://www.facebook.com/profile.php?id=10304177338ref=profile Marciano Venter [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: Res: [delphi-br] Estrutura Padrão de Sof tware
Boa tarde, Para trabalhar com aplicação MDI não mudar muita coisa em relação aos datamodules. Voce pode criar os data modulos normalmente, depois crie um form novo (na aba propriedades formstyle = mdiform) e os demais forms dev ser criardos formstyle = mdichild tendo que ser criado em tempo de execução onde sera criado por cima dos form child. --- Em ter, 10/8/10, Eny Urias enyur...@yahoo.com.br escreveu: De: Eny Urias enyur...@yahoo.com.br Assunto: Res: [delphi-br] Estrutura Padrão de Software Para: delphi-br@yahoogrupos.com.br Data: Terça-feira, 10 de Agosto de 2010, 18:51 Como vc trabalha numa aplicação MDI utilizando DataModule? Se o usuário quiser abrir dois formularios de clientes como vc faz? Não dá conflito já que os componentes de acesso aos dados estão no DM? -- Eny Trova Urias Somos o que repetitivamente fazemos, portanto, a excelência não é um feito, mas um hábito- Aristóteles De: Adriano de F. Trindade trind...@desbrava.com.br Para: delphi-br@yahoogrupos.com.br Enviadas: Segunda-feira, 9 de Agosto de 2010 19:03:05 Assunto: RES: [delphi-br] Estrutura Padrão de Software Não quero te desanimar, mas mostrar os problemas provoca a busca de soluções para eles, e com isso aprende-se. Pelo jeito você está meio “cru” no negócio, e a lógica, você até que está indo bem, considerando a herança dos formulários. O que falta, na real, é você fracionar estes seus casos de uso aí. Explico: DataSource, por exemplo, alguns formulários vão precisar de um, outros de 5 e outros de 20. Se você fazer no seu modelo primário um único DataSource, em cada formulário que você criar herdando este formulário, terá que adicionar mais DataSources. Mas, se você fizer o modelo com 10, aí você atende a maioria dos casos, e em raras oportunidades terás que adicionar mais data sources além desses 10 aí. Entendeu o exemplo? Eu quis dizer: projetar considerando o máximo de possibilidades para cada form, e não o mínimo. Certo? Agora esqueça esses data sources aí. Crie um único Data Module, com um nome bem curto (eu uso “DM”) e coloque todos seus componentes de acesso á dados lá: ClientDataSets, DataModules, DataSetProviders e por aí vai. Desta maneira, você não vai ter componentes de acesso á dados espalhados pelo seu projeto. Eu comecei há 5 anos atrás um sistema mais ou menos da maneira que você estava começando este. Começou com 34 tabelas e hoje tem 220 tabelas no BD. De todo o tempo de desenvolvimento, no mínimo 30% dele foi refazendo coisas que fiz sem considerar todas as possibilidades. Por exemplo: ao projetar um formulário para Notas Fiscais, você precisa de uma tabela para os dados da NF e outra para o detalhamento da NF, que são os produtos/serviços. Primeiro fiz com uma tabela para produtos e outra para serviços: tive que refazer para colocar produtos e serviços em uma única tabela. Alguns valores como frete e seguro iam no corpo da NF. Não, não dá certo, valores de frete e seguro tem que ser distribuídos pelos itens da NF para conseguir gerar a NF-e direito. No corpo da NF, só dados cadastrais, dados monetários tem que ser tudo nos itens. E tome refazer enormes partes do código. Minha dica pra ti é: vá para o Delphi por último. Faça funcionar no papel primeiro. Vai lidar com Notas Fiscais? Estude o lay-out da NFe e do SPED antes para saber de quais dados você precisará e modelar seu BD de acordo. Sugiro usar a padronização de nomes de campos que consta no lay-out da NF-e, vai tornar sua vida mais fácil no futuro. Vais trabalhar com ECF? Estude o manual do PAF-ECF. Vais gerar boletos para bancos? Estude a documentação sobre quais dados você precisa informar nos arquivos gerados para os bancos e use eles nas contas á pagar/receber. Quais impostos vais ter que informar? Campos no BD para cada um. É mais importante para seu projeto entrar nas empresas e ver como que todos trabalham, que informações um departamento precisa obter do outro, o rastreamento de quem fez o quê, o controle de acesso, permissões para os menus, acesso de vários usuários ao mesmo tempo... Depois que tiver tudo isso no papel, aí sim você vai pro Delphi. Porque sabendo isso tudo, aí você saberá quantos formulários vai precisar, quantos campos em cada formulário, quantos ClientDataSets... Bote a prancheta embaixo do braço, esqueça a “programação de software acadêmica” e disseque a prática das pessoas. Só depois você vai saber o quê precisa fazer no Delphi e quais problemas terá que solucionar DE VERDADE. Falou! De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Rodrigo Rossi Enviada em: segunda-feira, 9 de agosto de 2010 17:42 Para: delphi-br@yahoogrupos.com.br; n...@yahoogrupos.com.br Assunto: [delphi-br] Estrutura Padrão de Software Boa tarde. Estou desenvolvendo já faz uns 3 meses um software em Delphi 2010 para ERP, não é um ERP muito grande mas a idéia é atender vários ramos de atividade, é um projeto importantíssimo para min, este software estou
[delphi-br] Cadastro de Turmas para Sistema Escolar
Pessoal, Estou com uma dúvida de como montar um cadastro de turmas. Tenho uma tabela de turmas com os campos nome da turma,curso,sala,professor,data inicio,data termino,hora inicio,hora término. Estou tendo problema pois está possível de cadastrar uma turma para um professor sendo que ele já está dando aula em uma sala. Ou colocar um professor numa sala onde já está ocupada por outro professor. Queria uma idéia de como montar esse cadastro para não ter esse tipo de erro. Desde já agradeço Ricardo. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Componente TImage
Amigo, tenta esse macete: em tempo de projeto, coloque uma imagem do tipo jpg e depois a tire, rode o programa e tenta abrir uma imagem jpg Também evite colocar somente a instrução que colocou: image1.picture.loadfromfile. Coloque assim if (OpenPictureDialog1.execute) then aí vc coloca a sua linha. Isso é para evitar que, caso clique em cancelar, não gere uma exceção. Depois diga se funcionou. Comigo funciona Em 20/09/07, Ribamar Sousa [EMAIL PROTECTED] escreveu: Tentei fazer novamente uma aplicacao colocando o mesmo comando: Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Sendo que agora está aparecendo esse erro: --- Debugger Exception Notification --- Project TESTE.exe raised exception class EInvalidGraphic with message 'Unknown picture file extension (.)'. Process stopped. Use Step or Run to continue. --- OK Help --- Alguém sabe dizer o que seria?? Agradeço desde já Abraços - Mensagem original De: Rubem Nascimento da Rocha [EMAIL PROTECTED]djpardalrocha%40hotmail.com Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Enviadas: Quarta-feira, 19 de Setembro de 2007 22:56:20 Assunto: RE: [delphi-br] Componente TImage Inclua na cláusula uses do teu form a unit jpeg. Sds. To: [EMAIL PROTECTED] os.com.brFrom: [EMAIL PROTECTED] com.brDate: Wed, 19 Sep 2007 18:51:20 -0700Subject: [delphi-br] Componente TImage Pessoal seguinte...eu estou utilizando o componente TImage...e adicionei tambem o OpenPictureDialog e no clique do botao eu façoImage1. Picture.LoadFrom File(OpenPicture Dialog1.FileName );para selecionar a imagem...sendo que só seleciona imagens:*.BMP, *.ICO, *.EMF, *WMFeu queria selecionar tambem *.JPG...isso seria possivel???Caso nao seja... qual seria uma solucao para isso?!?!?!Abraç osFlickr agora em português. Você clica, todo mundo vê.http://www.flickr. com.br/[As http://com.br/%5BAs partes desta mensagem que não continham texto foram removidas] _ _ _ _ _ _ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile. live.com/ signup/signup2. aspx?lc=pt- br [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr.com.br/ [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] Sobre herança no delphi
Olá Valfrid, tudo bem? Agora vc complicou o meu entendimento... :-( Estou voando na sua explicação. Se vc puder elucidar com um exemplo, ficarei grato. Em 13/08/07, Valfrid-Ly Silva Couto [EMAIL PROTECTED] escreveu: Ricardo, Só complementando, já que aparentemente nas suas classes você não teria um sacramento não tipado o seu objeto sacramento deveria ser abstrato para não ser instanciado, implementando os métodos genéricos e forçando a implementação dos métodos nas classes descendentes. Se você não utilizar um framework de persistência, um exemplo seria o método save que teria que obrigatoriamente ser implementado em cada classe filha para gravar os dados na tabela correta, chamando o método da classe pai (sacramento) para que esse gravasse os dados genéricos na própria tabela! Joao Morais [EMAIL PROTECTED] post%40joaomorais.com.br escreveu: ricardo_sx wrote: Alguém teria um sisteminha exemplo para demonstrar como, na prática, é aplicado a herança no delphi entre classes e no Banco de Dados? Pois estou com dificuldades nesse entendimento. Fiz um sistema onde a classe genérica se chama Sacramento e as especializadas se chamam batismo, eucaristia, matrimonio, crisma. No banco de dados eu fiz assim: criei as tabelas sacramento, batismo, matrimonio, crisma e eucaristia. O que era comum a todos eu gravava em sacramento e o que era específico gravava na tabela específica. ou seja: ao registrar um batismo, alguns dados, como nome e endereço cadastrava em sacramento e padrinho, madrinha, data de batismo gravava na tabela batismo. a relação que faço entre a tabela genérica com a especializada é o código de registro que são iguais. Por favor, se alguém puder me orientar a respeito, agradeceria e muito. No momento, preciso, somente, entender esse esquema de forma simples e clara para ficar fixado na mente. A regra é a seguinte: cada classe deve possuir uma tabela que irá guardar os membros desta classe. Neste exemplo: TContato Nome: string; Endereco: string; TPessoa = class(TContato) Apelido: string; TEmpresa = class(TContato) NroFiliais: Integer; você tem três tabelas. A tabela contato tem campos para nome e endereço. A tabela pessoa tem apenas o campo apelido. A tabela Empresa tem apenas o campo NroFiliais. Quando você cria uma instância de pessoa, você: VPessoa.Nome := 'O nome'; VPessoa.Endereco := 'O endereco, nro'; VPessoa.Apelido := 'O apelido'; e quando grava, o campo nome e endereço vai para uma tabela, o campo apelido vai para outra. Todas as tabelas tem, além destes campos, o campo Id. Para este caso, o campo Id na tabela contato e pessoa tem o mesmo valor, e é desta forma que as informações estão ligadas. Esta é a forma politicamente correta de se escrever um OPF. Hth. -- Joao Morais -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] (off topic) Quero comprar a revista PC EXPERT 29 - que veio com o Delphi 4.
Eu acho que tenho essa revista... Só olhando em casa mesmo. Se eu tiver, farei um precinho especial pra vc ok? rsrsrsrs Em 28/06/07, Valfrid-Ly Silva Couto [EMAIL PROTECTED] escreveu: Olha, essa eu não achei não, mas você ainda consegue comprar a revista WWW.COM.BR http://www.com.br/ no site da editora Europa!! Acho que é a edição 13 que veio com o Delphi 3 C/S! Walter Alves Chagas Junior [EMAIL PROTECTED]wchagas%40telemont.com.br escreveu: Olha, essa revista esteve nas bancas em 2001 mais ou menos. Se você conseguir um exemplar destes é só mesmo com quem a tenha pois acredito que nem a distribuidora ou a editora também os tenham mais. []s Walter Alves Chagas Junior Projeto e desenvolvimento de sistemas Telemont Engenharia de telecomunicações S/A Belo Horizonte - MG - Brasil [EMAIL PROTECTED] wchagas%40telemont.com.br Fone: (31) 3389-8217 Fax: (31) 3389-8215 -Mensagem original- 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 [EMAIL PROTECTED] tiano27%40yahoo.com.br Enviada em: quinta-feira, 28 de junho de 2007 08:30 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] (off topic) Quero comprar a revista PC EXPERT 29 - que veio com o Delphi 4. Colegas Se algum colega tiver a revista ou souber me indicar onde posso comprar a revista PC EXPERT que veio com o Delphi 4. Qualquer comentario é bem-vindo, muito obrigado. []´s. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos Valfrid-Ly Silva Couto [EMAIL PROTECTED] valfrid%40uol.com.br [EMAIL PROTECTED] valfrid%40intermega.com.br [EMAIL PROTECTED] valfrid_ly%40hotmail.com ICQ 15114646 - Novo Yahoo! Cadê? - Experimente uma nova busca. [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] Dúvidas sobre quickreport.
Marcelo, bom dia. Eu especifiquei isso sim, mas continua gerando aquele resultado que eu apresentei anteriormente... Será pq os componentes de acesso aos dados estão num datamodule? Em 21/06/07, Marcelo - Kappesberg [EMAIL PROTECTED] escreveu: Ola, veja se vc especificou o agrupamento na propriedade Expression da banda do grupo... La vc deve informar qual eh o agrupamento. tipo QRGroup1.Expression := 'SqlTeste.mes'; falow!!! - Original Message - From: ricardo_sx To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Wednesday, June 20, 2007 8:23 PM Subject: [delphi-br] Dúvidas sobre quickreport. Amigos, estou com o seguinte problema no quick report (estou utilizando o interbase 6.0): Tenho a seguinte view: codigo_Caixa, data, valor, descricao, tipo_movimento, mes, ano (isso vale também quando estou fazendo pela própria tabela) E estou tentando gerar um relatório no seguinte formato: Cabeçalho: Relatório de Entradas --- Group Header: REferente ao mês de [DbMes] codigo movimentado em valor descricao - detail: [codigo_Caixa] [data] [valor] [descricao] --- group footer: Subtotal Sum(valor) -- No form create aonde está o componente quickrep, está assim: SqlTeste.Close; SqlTeste.SQL.Clear; SqlTeste.SQL.Add('SELECT * from vw_caixa'); SqlTeste.SQL.Add('where tipo_Movimentacao = :ptipo order by mes'); SqlTeste.ParamByName('ptipo').AsString:='Entrada'; SqlTeste.Open; No BeforePrint do Group Header está assim: case sqlteste['mes'] of 1:DbMes.Caption:='Janeiro'; 2:DbMes.Caption:='Fevereiro'; 3:DbMes.Caption:='Março'; 4:DbMes.Caption:='Abril'; 5:DbMes.Caption:='Maio'; 6:DbMes.Caption:='Junho'; 7:DbMes.Caption:='Julho'; 8:DbMes.Caption:='agosto'; 9:DbMes.Caption:='setembro'; 10:DbMes.Caption:='oututbro'; 11:DbMes.Caption:='novembro'; 12:DbMes.Caption:='dezembro'; end; Quando eu rodo a aplicação, ele só me mostra o 1º ou o último dado que consta na referida view no group header. Em detail, ele mostra todos os registros. Por que isso está acontecendo? Por que o group header não está sendo atualizado quando é mudado de mês? Alguém poderia me ajudar? Segue o modelo do resultado: Referente ao mês de Março codigo caixa movimentado em valor descricao 0001 19/03/2007 100,00 jfgufg 0003 19/04/2007 100,00 jhgjguf 0004 19/06/2007 100,00 ufghfhg . . . subtotal 300,00 Lembrando que o componente SqlTeste (TIBQuery) não consta, previamente, uma instrução sql. Isso é feito no momento em que se cria o formulário. [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] Dúvidas sobre quickreport.
Vou ver se quebro mais a cabeça por aqui, pois tudo o que foi dito está funcionando corretamente. A view não está retornando somente um mês. No detail do quickrep ele apresenta todas as datas, porém no group header só fica no mes de março, por exemplo. Quanto ao master, o mesmo está apontando para o quickrep e o footerband ou footband está apontando para a banda do group footer ou algo similar. Em 21/06/07, Delphi 2005 - BR [EMAIL PROTECTED] escreveu: Verifique a propriedade master do seu qrgroup. - Original Message - From: Marcelo - Kappesberg To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, June 21, 2007 8:24 AM Subject: Re: [delphi-br] Dúvidas sobre quickreport. Pois eh, mas o sintoma eh como se nao estivesse com a propriedade expression definida. mas ainda pode ser um problema na view, ela pode estar trazendo sempre o mesmo mes no campo mes... coloca o campo mes para ser exibido no relatorio tambem, soh para ver se traz o mes certo... No caso de ser por causa do datamodule acho que eh indiferente, jah que os dados estao sendo retornados.. - Original Message - From: Ricardo Souza To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br Sent: Thursday, June 21, 2007 7:52 AM Subject: Re: [delphi-br] Dúvidas sobre quickreport. Marcelo, bom dia. Eu especifiquei isso sim, mas continua gerando aquele resultado que eu apresentei anteriormente... Será pq os componentes de acesso aos dados estão num datamodule? Em 21/06/07, Marcelo - Kappesberg [EMAIL PROTECTED]joe%40kappesberg.com.br escreveu: Ola, veja se vc especificou o agrupamento na propriedade Expression da banda do grupo... La vc deve informar qual eh o agrupamento. tipo QRGroup1.Expression := 'SqlTeste.mes'; falow!!! - Original Message - From: ricardo_sx To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brdelphi-br%40yahoog rupos.com.br Sent: Wednesday, June 20, 2007 8:23 PM Subject: [delphi-br] Dúvidas sobre quickreport. Amigos, estou com o seguinte problema no quick report (estou utilizando o interbase 6.0): Tenho a seguinte view: codigo_Caixa, data, valor, descricao, tipo_movimento, mes, ano (isso vale também quando estou fazendo pela própria tabela) E estou tentando gerar um relatório no seguinte formato: Cabeçalho: Relatório de Entradas --- Group Header: REferente ao mês de [DbMes] codigo movimentado em valor descricao - detail: [codigo_Caixa] [data] [valor] [descricao] --- group footer: Subtotal Sum(valor) -- No form create aonde está o componente quickrep, está assim: SqlTeste.Close; SqlTeste.SQL.Clear; SqlTeste.SQL.Add('SELECT * from vw_caixa'); SqlTeste.SQL.Add('where tipo_Movimentacao = :ptipo order by mes'); SqlTeste.ParamByName('ptipo').AsString:='Entrada'; SqlTeste.Open; No BeforePrint do Group Header está assim: case sqlteste['mes'] of 1:DbMes.Caption:='Janeiro'; 2:DbMes.Caption:='Fevereiro'; 3:DbMes.Caption:='Março'; 4:DbMes.Caption:='Abril'; 5:DbMes.Caption:='Maio'; 6:DbMes.Caption:='Junho'; 7:DbMes.Caption:='Julho'; 8:DbMes.Caption:='agosto'; 9:DbMes.Caption:='setembro'; 10:DbMes.Caption:='oututbro'; 11:DbMes.Caption:='novembro'; 12:DbMes.Caption:='dezembro'; end; Quando eu rodo a aplicação, ele só me mostra o 1º ou o último dado que consta na referida view no group header. Em detail, ele mostra todos os registros. Por que isso está acontecendo? Por que o group header não está sendo atualizado quando é mudado de mês? Alguém poderia me ajudar? Segue o modelo do resultado: Referente ao mês de Março codigo caixa movimentado em valor descricao 0001 19/03/2007 100,00 jfgufg 0003 19/04/2007 100,00 jhgjguf 0004 19/06/2007 100,00 ufghfhg . . . subtotal 300,00 Lembrando que o componente SqlTeste (TIBQuery) não consta, previamente, uma instrução sql. Isso é feito no momento em que se cria o formulário. [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] [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] Pesquisando aniversário por período
Ezequiel e Eduardo, desde já, agradeço pela ajuda dada. Ao Ezequiel, gostei da solução que vc deu pra esse problema. Fiz o teste no interbase e funcionou legal. Vou jogar na aplicação e ver se vai dar ou não algum piti... Mas, de antemão, fico muito grato pela força. Se puder e tiver um tempinho, teria como me falar em off por que dessas multiplicações com 100 e a soma com os dias? Pra eu poder entender no todo a estrutura montada por vc. Caso contrário, não tem problema algum, pois já ajudou e muito. Um abraço aos dois. Ricardo Em 10/06/07, Ezequiel [EMAIL PROTECTED] escreveu: É tudo questão de lógica... Repare o seu SQL (substituindo os valores dos parametros): select * from paroquiano where (extract(day from data_Nascimento)=25 and extract(day from data_Nascimento)=3) . Você quer pegar o registro que o dia seja = a 25 mas que seja = 3 Impossível Bom, mas uma maneira de resolver isso é através da matemática! Tente assim: select * from paroquiano where ((extract(month from data_nascimento)*100)+(extract(day from data_nascimento))) = ((:MesIni * 100) + :DiaIni) and ((extract(month from data_nascimento)*100)+(extract(day from data_nascimento))) = ((:MesFim * 100) + :DiaFim) Existem outras maneiras, mas acho que essa é a mais curta... []'s Ezequiel ricardo_sx escreveu: Amigos, boa noite. Estou tentando fazer uma consulta onde retorne, através de um período informado, os registros contido na tabela paroquiano. Eu tenho a seguinte linha que atende em parte o meu problema: select * from paroquiano where (extract(day from data_Nascimento)=:DiaIni and extract(day from data_Nascimento)=:DiaFim) and extract(month from data_Nascimento) =:MesIni; //poderia incluir até and extract(month from data_Nascimento) =:MesFim que não vai fazer efeito Através dessa instrução, caso eu digite 01/04 a 31/04, eu vou ter o retorno desejado, porém, se eu digitar 25/04 a 03/05 não vou conseguir resultado. Gostaria de saber se alguém tem uma solução pra esse problema? Lembrando que utilizo interbase 6.0 PS: procurei mensagens anteriores sobre esse assunto e, as dicas informadas, não fizeram efeito pra mim. Peguei todas e testei na hora no interbase e nada de gerar o retorno desejado. [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Moderadores
Também não aguentei... galdariah o Davi disse: por que ALGUMAS mensagens minhas Ele não disse todas, disse algumas Em 07/06/07, galdariah [EMAIL PROTECTED] escreveu: Desculpa não sou moderadora, mas eu não agüentei. se suas mensagens não chegam na lista, como essa chegou? --- Em delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br, Davi Eduardo Borges Wall [EMAIL PROTECTED] escreveu Gostaria de saber por que algumas mensagens minhas não estão chegando na lista. Todas as mensagens passam pelos moderadores? Qual critério utilizado para não liberar uma mensagem? []'s [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] problemas em capturar o último registro via sql
Ricardo, realmente concordo com vc na sua primeira frase e vc sabe pq? Porque, antes de enviar pra lista a minha dúvida, eu procuro informações de maneiras variadas, seja no help do delphi, seja em apostilas que encontro pela internet e etc. Caso não venha localizar a informação, realmente acabo postando aqui para pedir ajuda aos companheiros, que por sinal, vem procurando me ajudar de alguma forma. Inclusive quero externar minha gratidão ao João Morais. João, a dica sobre o fieldbyname... .isNull funcionou! valeu mesmo! Ricardo, desculpe qualquer coisa, mas antes de afirmarmos qualquer coisa sobre o próximo, vamos colher informações para saber se realmente a pessoa procurou pesquisar a informação antes ou não. A lista, fico grato por tê-la encontrado e, mais ainda, por ter pessoas dispostas a ajudar! Em 04/06/07, Joao Morais [EMAIL PROTECTED] escreveu: Ricardo César Cardoso wrote: Sei que não devia me meter, mas as vezes usar a ajuda do Delphi pode ser bem produtivo. IsEmpty e IsNull são funções documentadas no Help de qualquer versão do Delphi. Sempre é importante ter em mente quais variações de comandos podem existir e verificar se elas existem e podem ajudá-lo. Mas as vezes o problema é um pouco mais complicado. Ele estava acessando o objeto tdataset diretamente, sem fazer referência ao objeto tfield, portanto sem base para consultar o help. O problema não era o uso do IsNull, mas o fato de converter um variant null para string. As pessoas em geral até sabem pescar, as vezes falta apenas alguém para explicar de que lado é melhor jogar o anzol. -- Joao Morais Ricardo Souza [EMAIL PROTECTED] ricardo.sx%40gmail.com escreveu: João, muito obrigado por passar essa instrução. Vou fazer o teste para ver se funciona. Mas, de antemão, creio que vai funcionar! Agradeço pela objetividade na resposta, procurando, acima de tudo, auxiliar seu semelhante. Deus te abençoe. Em 02/06/07, Joao Morais [EMAIL PROTECTED]post%40joaomorais.com.br escreveu: ricardo_sx wrote: amigos, boa noite. foi-me ensinado usar a instrução select max (codigo) as cod from sacramento para retornar o código máximo de uma tabela. quando faço isso no delphi não gera problema quando eu realmente tenho registro na tabela, mas quando eu não tenho ele critica dizendo que não pode converter o valor null para string. segue um pedaço de código para poder ilustrar: sqlsacramento.sql.add(´select max(codigo) as cod from sacramento´); sqlsacramento.open; texto:=sqlsacramento[´cod´]; ** var VField: TField; VCod: Integer; begin VField := SQLSacramento.FieldByName('cod'); if VField.IsNull then VCod := 1 else VCod := VField.AsInteger + 1; -- Joao Morais ** nessa linha gera o erro que citei anteriormente porque é retornado null. o que fazer para corrigir esse problema? eu uso interbase e os componentes (tibdatabase, tibtransaction, tibquery, tibupdatesql) já tentei testar da seguinte maneira: if (sqlsacramento.isempty) then else só que isso ainda assim gera problema. preciso de algo que teste se está nulo o retorno ´cod´. existe alguma forma de conseguir testar se é valor nulo ou não? (delphi 7 + interbase 6) [As partes desta mensagem que não continham texto foram removidas] - Novo Yahoo! Cadê? - Experimente uma nova busca. [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] problemas em capturar o último registro via sql
João, muito obrigado por passar essa instrução. Vou fazer o teste para ver se funciona. Mas, de antemão, creio que vai funcionar! Agradeço pela objetividade na resposta, procurando, acima de tudo, auxiliar seu semelhante. Deus te abençoe. Em 02/06/07, Joao Morais [EMAIL PROTECTED] escreveu: ricardo_sx wrote: amigos, boa noite. foi-me ensinado usar a instrução select max (codigo) as cod from sacramento para retornar o código máximo de uma tabela. quando faço isso no delphi não gera problema quando eu realmente tenho registro na tabela, mas quando eu não tenho ele critica dizendo que não pode converter o valor null para string. segue um pedaço de código para poder ilustrar: sqlsacramento.sql.add(´select max(codigo) as cod from sacramento´); sqlsacramento.open; texto:=sqlsacramento[´cod´]; ** var VField: TField; VCod: Integer; begin VField := SQLSacramento.FieldByName('cod'); if VField.IsNull then VCod := 1 else VCod := VField.AsInteger + 1; -- Joao Morais ** nessa linha gera o erro que citei anteriormente porque é retornado null. o que fazer para corrigir esse problema? eu uso interbase e os componentes (tibdatabase, tibtransaction, tibquery, tibupdatesql) já tentei testar da seguinte maneira: if (sqlsacramento.isempty) then else só que isso ainda assim gera problema. preciso de algo que teste se está nulo o retorno ´cod´. existe alguma forma de conseguir testar se é valor nulo ou não? (delphi 7 + interbase 6) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Sobre inherited - parte 2
Romário, mais uma vez, valeu pela dica. Quanto os tipos dos atributos, estou fazendo um programa bem específico (proj. final de faculdade) para um determinado lugar, não me preocupando em distribuí-lo para outros. A minha preocupação é, somente, passar e ter o canudo nas mãos, entende? O tempo está curtíssimo e não estou apto (atualmente) para fazer aquele projeto. Tenho que fazer um capaz de passar. Aproveitando, gostaria de pedir uma dica sua, caso vc possa dar e saiba: estou com uma base de dados no interbase e, quando tento incluir um novo registro, ele simplesmente é criticado, não deixando gravar por causa do código que é PK. A minha rotina pra, antes de gravar, é a seguinte: consulto no banco o último código da seguinte maneira: SELECT * FROM EVENTO --- SqlEvento.last codigo:=SqlEvento['codigo_Evento']; Depois o incremento em 1. Só que, ao fazer esse passo a passo todo para pegar o último registro, na verdade o registro retornado é o penúltimo e eu não entendo por que. Será que existe outra forma de fazer isso, com o mesmo pensamento? Em 28/05/07, Romario (Listas) [EMAIL PROTECTED] escreveu: Ricardo, Os atributos da sua classe TUCSacramento podem até estar corretos, mas o tipo deles é que acho que estão errados. Você tem OBJETOS na classe tratados como String e/ou TDatetime. Note que paróquia, curso e celebrante tem vida própria. Ou seja, eles existem mesmo que não haja o Sacramento. Quanto ao seu problema, só faltou o OVERRIDE na classe Batismo. Ficaria assim: Classe Sacramento: Function Consultar (Var Texto: String; ID: Byte): Byte; Virtual; ... Function TUCSacramento.Consultar (Var Texto: String; ID: Byte): Byte; Begin {código a ser executado} End; -- Classe Batismo Type TUCBatismo = Class (TUCSacramento) ... Function Consultar (Var Texto: String; ID: Byte): Byte; Override; Function TUCBatismo.Consultar (Var Texto: String; ID: Byte): Byte; Begin Inherited; {código do consultar batismo a ser executado} End; -- Sds, Romario Ricardo Souza escreveu: Romário, antes de mais nada, agradeço a atenção dispensada para o meu problema. Quanto a ele, os atributos anteriormente informados estão corretos, pois a classe sacramento engloba 4 classes especialistas, a saber: batismo, crisma, eucaristia e matrimônio e os atributos que constam nela estão corretos. E, sobre o problema de executar o que está na function consultar localizada em sacramento, basta eu colocar o termo virtual e fazer o código normalmente e, depois, em batismo faço nova declaração da mesma function consultar e, no corpo dela, incluo inherited para que faça o que antecessor tem + o código do herdeiro? Ex.: -- classe sacramento: function consultar (var texto:string;id:byte):byte; virtual; ... function TUCSacramento.consultar (var texto:string;id:byte):byte; begin {código a ser executado} end; -- classe batismo type TUCBatismo = class (TUCSacramento) ... function consultar (var texto:string;id:byte):byte; function TUCBatismo.consultar (var texto:string;id:byte):byte; begin inherited; {código do consultar batismo a ser executado} end; -- É isso mesmo que eu entendi? [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Sobre inherited - parte 2
João, valeu por ter respondido minha dúvida. Agora com essa informação gerou outra: o max funciona para campo string? Eu armazeno o código assim: 0001, 0002, 0003 ... do tipo string; Desculpe perguntar isso pois sou iniciante e não entendo certas coisas. Em 29/05/07, Joao Morais [EMAIL PROTECTED] escreveu: Ricardo Souza wrote: A minha rotina pra, antes de gravar, é a seguinte: consulto no banco o último código da seguinte maneira: SELECT * FROM EVENTO --- SqlEvento.last codigo:=SqlEvento['codigo_Evento']; Depois o incremento em 1. select max(codigo_evento) as cod from evento; então pega o campo 'cod' e incrementa 1. -- Joao Morais [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Sobre inherited - parte 2
Romário, antes de mais nada, agradeço a atenção dispensada para o meu problema. Quanto a ele, os atributos anteriormente informados estão corretos, pois a classe sacramento engloba 4 classes especialistas, a saber: batismo, crisma, eucaristia e matrimônio e os atributos que constam nela estão corretos. E, sobre o problema de executar o que está na function consultar localizada em sacramento, basta eu colocar o termo virtual e fazer o código normalmente e, depois, em batismo faço nova declaração da mesma function consultar e, no corpo dela, incluo inherited para que faça o que antecessor tem + o código do herdeiro? Ex.: --- classe sacramento: function consultar (var texto:string;id:byte):byte; virtual; ... function TUCSacramento.consultar (var texto:string;id:byte):byte; begin {código a ser executado} end; --- classe batismo type TUCBatismo = class (TUCSacramento) ... function consultar (var texto:string;id:byte):byte; function TUCBatismo.consultar (var texto:string;id:byte):byte; begin inherited; {código do consultar batismo a ser executado} end; É isso mesmo que eu entendi? Em 27/05/07, Romario (Listas) [EMAIL PROTECTED] escreveu: Ricardo, Ao meu ver, você está colocando quatro objetos em uma classe só. 1) Paróquia 2) Sacramento 3) Curso 4) Celebrante Identifique as propriedades de cada uma dessas classes e depois monte a classe TUCSacramento. Ex.: Type TUCSacramento = Class(TObject) Private Codigo : Integer; Paroquia : TUCParoquia; Celebrante : TUCCelebrante; Curso : TUCCurso; TipoSacramento : String; Observacao : String; Protected Public End; Quanto ao seu problema, defina o método como VIRTUAL para aproveitar as facilidades oferecidas pelo polimorfismo e modificar o comportamento do acessor. Ex.: Function Cadastrar : Boolean; Virtual; Function Consultar(Var Texto: String; ID: Byte): Byte; Virtual; Sds, Romario ricardo_sx escreveu: Há um tempo atrás questionei sobre o termo Inherited, onde me informaram que ele significa faça aquele código contido no herdado + o código posterior ao termo. Blz. Eu, agora estou com a seguinte dificuldade: tenho duas classes: uma genérica e outra especializada, seguem: type TUCSacramento = class {classe genérica} private codigo_Sacramento:string; codigo_Paroquiano:string; tipo_Sacramento:string; celebrante:string; data_Inscricao:TDateTime; inicio_Curso:TDateTime; termino_Curso:TDateTime; obs:string; public function cadastrar:boolean; function consultar(var texto:string;id:byte):byte; function alterar:boolean; virtual; function excluir(codigo:string):boolean; end; function TUCSacramento.consultar(var texto:string;id:byte):byte; begin texto:='qualquer coisa'; result:=1; end; e a classe especializada: type TUCBatismo = class(TUCSacramento) private padrinho:string; madrinha:string; diocese_Batismo:string; paroquia_Batismo:string; data_Batismo:TDateTime; livro_Batismo:string; folha_Batismo:string; numero_Batismo:string; public function cadastrar:boolean; function consultar(var texto:string;id:byte):byte; function alterar:boolean; override; function excluir(codigo:string):boolean; override; end; function TUCBatismo.consultar(var texto:string;id:byte):byte; begin inherited; result:=2; end; Meu problema é o seguinte: Eu tenho um código pra ser realizado na classe Sacramento e um outro na classe batismo. Sendo que na classe batismo eu preciso que, antes de executar seu respectivo código, realize o código descrito na classe Sacramento. Então pensei nesse tal de inherited, porém não estou conseguindo fazê-lo funcionar. Será que alguém poderia me ajudar? [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Sobre inherited - parte 2
Caro João, obrigado pelas dicas! vou fazer e ver se funciona. Qualquer coisa retorno, lembrando que bons filmes têm trilogia e, possivelmente, o meu terá a parte 3 rsrsrsrs. Em 28/05/07, Joao Morais [EMAIL PROTECTED] escreveu: Ricardo Souza wrote: Romário, antes de mais nada, agradeço a atenção dispensada para o meu problema. Quanto a ele, os atributos anteriormente informados estão corretos, pois a classe sacramento engloba 4 classes especialistas, a saber: batismo, crisma, eucaristia e matrimônio e os atributos que constam nela estão corretos. E, sobre o problema de executar o que está na function consultar localizada em sacramento, basta eu colocar o termo virtual e fazer o código normalmente e, depois, em batismo faço nova declaração da mesma function consultar e, no corpo dela, incluo inherited para que faça o que antecessor tem + o código do herdeiro? Ex.: -- classe sacramento: function consultar (var texto:string;id:byte):byte; virtual; ... function TUCSacramento.consultar (var texto:string;id:byte):byte; begin {código a ser executado} end; -- classe batismo type TUCBatismo = class (TUCSacramento) ... function consultar (var texto:string;id:byte):byte; function TUCBatismo.consultar (var texto:string;id:byte):byte; begin inherited; {código do consultar batismo a ser executado} end; -- É isso mesmo que eu entendi? Falta alguns detalhes: Na classe abstrata, inclua o termo virtual depois de cada método que você queira especializar. Mas apenas na classe, na implementação você não precisa recolocar o virtual. Na classe especializada, inclua o termo override para os métodos que você quer modificar comportamento. Aqui também, apenas na linha que declara o método. Na implementação não precisa do override. Dentro do método que possui um override você usa o inherited para chamar o que foi declarado na classe anterior. Por enquanto é isso, o restante fica para uma futura parte 3 pra não complicar além do necessário. -- Joao Morais Em 27/05/07, Romario (Listas) [EMAIL PROTECTED]rbr_vix_es%40yahoo.com.br escreveu: Ricardo, Ao meu ver, você está colocando quatro objetos em uma classe só. 1) Paróquia 2) Sacramento 3) Curso 4) Celebrante Identifique as propriedades de cada uma dessas classes e depois monte a classe TUCSacramento. Ex.: Type TUCSacramento = Class(TObject) Private Codigo : Integer; Paroquia : TUCParoquia; Celebrante : TUCCelebrante; Curso : TUCCurso; TipoSacramento : String; Observacao : String; Protected Public End; Quanto ao seu problema, defina o método como VIRTUAL para aproveitar as facilidades oferecidas pelo polimorfismo e modificar o comportamento do acessor. Ex.: Function Cadastrar : Boolean; Virtual; Function Consultar(Var Texto: String; ID: Byte): Byte; Virtual; Sds, Romario ricardo_sx escreveu: Há um tempo atrás questionei sobre o termo Inherited, onde me informaram que ele significa faça aquele código contido no herdado + o código posterior ao termo. Blz. Eu, agora estou com a seguinte dificuldade: tenho duas classes: uma genérica e outra especializada, seguem: type TUCSacramento = class {classe genérica} private codigo_Sacramento:string; codigo_Paroquiano:string; tipo_Sacramento:string; celebrante:string; data_Inscricao:TDateTime; inicio_Curso:TDateTime; termino_Curso:TDateTime; obs:string; public function cadastrar:boolean; function consultar(var texto:string;id:byte):byte; function alterar:boolean; virtual; function excluir(codigo:string):boolean; end; function TUCSacramento.consultar(var texto:string;id:byte):byte; begin texto:='qualquer coisa'; result:=1; end; e a classe especializada: type TUCBatismo = class(TUCSacramento) private padrinho:string; madrinha:string; diocese_Batismo:string; paroquia_Batismo:string; data_Batismo:TDateTime; livro_Batismo:string; folha_Batismo:string; numero_Batismo:string; public function cadastrar:boolean; function consultar(var texto:string;id:byte):byte; function alterar:boolean; override; function excluir(codigo:string):boolean; override; end; function TUCBatismo.consultar(var texto:string;id:byte):byte; begin inherited; result:=2; end; Meu problema é o seguinte: Eu tenho um código pra ser realizado na classe Sacramento e um outro na classe batismo. Sendo que na classe batismo eu preciso que, antes de executar seu respectivo código, realize o código descrito na classe Sacramento. Então pensei nesse tal de inherited, porém não estou conseguindo fazê-lo funcionar. Será que alguém poderia me ajudar? [As partes desta mensagem que não continham texto
Re: Re: RES: [delphi-br] ClientDataSet
Qual é a versão do Delphi que você está usando? Em 09/08/06, Bruno Lichot [EMAIL PROTECTED] escreveu: vamos la entaum ele altera o comando, mas naum e dificl fazer isso, e so ir no fonte do dsp e criar um metodo q faça isso e seja invocado pelo cds com o novo comando..soluçao mais demorada, e a outra e fazer a funçãozinha pra fazer direto mesmo.. solução viavel tb mas, pra q precisa de alterar o comando do SQLDataSet? Não consigo ver justificativa tecnologica pra isso. -- []´s Bruno Lichot Mas desta dorma não altera o SQL do TSQLDataSet? Em 09/08/06, Bruno Lichot [EMAIL PROTECTED] escreveu: tem sim hehehe e so setar a propriedade do dataset provider allowcomandtex para true, e no clientdataset preencher a propriedade commandtex com o comando q vc quiser q ele sobrescreve, isso e mto util pra gerar a alterar relatorios, pra manipulação de dados desaconselho totalmente. mais uma de otimização se os seus dados forem soemnte de consulta, vai no sqldataset e coloca getmetadata false e no datasetprovider readonly true vai ficar mto mais rapido a execução do comando e o retorno dos dados! as ordens -- []´s Bruno Lichot Já procurei por isto e achei uma solução. já precisei. O CDS não tem um propriedade SQL e nem uma que faça um override na propriedade SQL do dataset []s Walter Alves Chagas Junior Projeto e desenvolvimento de sistemas Telemont Engenharia de telecomunicações S/A Belo Horizonte - MG - Brasil [EMAIL PROTECTED] Fone: (31) 3389-8215 Fax: (31) 3389-8200 Parabens Telemont - Somos a 8ª maior empresa do Brasil no segmento de construção!! -Mensagem original- De: delphi-br@yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br ]Em nome de Yahoo Enviada em: quarta-feira, 9 de agosto de 2006 15:05 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] ClientDataSet Alguém sabe como alterar a SQL no componente ClientDataSet e afetar o SQLDataSet? [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- []'s Ricardo Souza [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html