[delphi-br] É possível alterar a classe de um objeto já criado ?
Boa tarde! Gostaria de saber se é possível alterar a classe de um objeto já criado? Porque estamos fazendo uma analise de impacto para migrar do Delphi 6 para o Delphi 2007. A necessidade seria para os campos que a decimal é maior que TRES (3). Hoje o tipo de dados é TFloatField teríamos que trocar para TFMTBcdField. Desde já agradeço. Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] É possível alterar a classe de um objeto já criado ?
O meu problema é o seguinte, tenho um ERP, com mais de 80 DataModulo. Não tenho idéia de quantas QUERY tem o projeto. A idéia seria mudar no DFM e o PAS em (designer) , alterando na unha é normal, funciona, já realizei um teste em uma tela e funcionou. Até onde eu estou vendo três soluções. 1 FindReplace PAS e DMF. 2 Remover todos os Fields da query do tipo numérico e adicionar novamente e 3 Fazer um componente que altere essa classe (Um robô onde adiciono no DataModulo e o mesmo altera). código: --- unit AlteraField; interface uses SysUtils, Classes; type TAlteraField = class(TComponent) private { Private declarations } falterar : boolean; procedure ProcAlterarField(value : boolean); protected { Protected declarations } public { Public declarations } published { Published declarations } property AlterarField : boolean read falterar write ProcAlterarField; end; procedure Register; implementation uses DB; procedure Register; begin RegisterComponents('Standard', [TAlteraField]); end; { TAlteraField } procedure TAlteraField.ProcAlterarField(value: boolean); var i_conta : integer; vComp : TComponent; begin if value then begin for i_conta := 0 to Owner.ComponentCount -1 do begin vComp := Owner.Components[i_conta]; if ( vComp is TFloatField ) then begin if ( TFloatField(vcomp).Size 3 ) then begin //alterar algum propriedade ... //caso altere alguma propriedade aqui, automaticamente altera o DFM. //se conseguir alterar a classe altera de maneira automatica o PAS e DFM. TFloatField(vcomp).Tag := 100; end; end; end; end; falterar := false; end; end. --- De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Rubem Rocha Enviada em: segunda-feira, 27 de julho de 2009 13:27 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] É possível alterar a classe de um objeto já criado ? Prioridade: Alta Até onde me consta, isto vai contra o que se propõe a programação orientada a objetos. Imagine a seguinte hierarquia de classe: Animal - Mamífero - Carnívoro - Canídeo - Cão Animal - Mamífero - Carnívoro - Humanídeo - Homem Como pode criar um objeto de uma classe e depois, do nada, querer que ele seja de uma outra classe? Tomando o exemplo acima, como um homem, do nada, pode se tornar um cão? Isso é ilógico! Sds. De: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br [mailto:delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br ] Em nome de Jeferson Menegon Enviada em: segunda-feira, 27 de julho de 2009 11:33 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br Assunto: [delphi-br] É possível alterar a classe de um objeto já criado ? Boa tarde! Gostaria de saber se é possível alterar a classe de um objeto já criado? Porque estamos fazendo uma analise de impacto para migrar do Delphi 6 para o Delphi 2007. A necessidade seria para os campos que a decimal é maior que TRES (3). Hoje o tipo de dados é TFloatField teríamos que trocar para TFMTBcdField. Desde já agradeço. __ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [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]
RES: RES: [delphi-br] É possível alterar a classe de um objeto j á criado ?
É isso que eu estou procurando... vou estudar esta ferramenta. Se der certo a ferramenta ou o componente vou comentar aqui na lista. Acredito que a minha necessidade já foi ou é de muitos que querem migrar. Obrigado. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Ricardo César Cardoso Enviada em: segunda-feira, 27 de julho de 2009 21:19 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] É possível alterar a classe de um objeto já criado ? A idéia do teu componente é muito boa, mas se vc usa o GExperts ele tem uma função que faz isso que vc quer... Troca os componentes de uma classe para a outra e ainda gera um log de tudo o que foi alterado. Se entendi bem, acho que é o que você está procurando... []'s Ricardo. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em seg, 27/7/09, Jeferson Menegon jeferson_mene...@yahoo.com.br mailto:jeferson_menegon%40yahoo.com.br escreveu: O meu problema é o seguinte, tenho um ERP, com mais de 80 DataModulo. Não tenho idéia de quantas QUERY tem o projeto. A idéia seria mudar no DFM e o PAS em (designer) , alterando na unha é normal, funciona, já realizei um teste em uma tela e funcionou. Até onde eu estou vendo três soluções. 1 – FindReplace PAS e DMF. 2 – Remover todos os Fields da query do tipo numérico e adicionar novamente e 3 –Fazer um componente que altere essa classe (Um robô onde adiciono no DataModulo e o mesmo altera). código: - - - - - - - - - unit AlteraField; interface uses SysUtils, Classes; type TAlteraField = class(TComponent) private { Private declarations } falterar : boolean; procedure ProcAlterarField( value : boolean); protected { Protected declarations } public { Public declarations } published { Published declarations } property AlterarField : boolean read falterar write ProcAlterarField; end; procedure Register; implementation uses DB; procedure Register; begin RegisterComponents( 'Standard' , [TAlteraField] ); end; { TAlteraField } procedure TAlteraField. ProcAlterarField (value: boolean); var i_conta : integer; vComp : TComponent; begin if value then begin for i_conta := 0 to Owner.ComponentCoun t -1 do begin vComp := Owner.Components[ i_conta]; if ( vComp is TFloatField ) then begin if ( TFloatField( vcomp).Size 3 ) then begin //alterar algum propriedade ... //caso altere alguma propriedade aqui, automaticamente altera o DFM. //se conseguir alterar a classe altera de maneira automatica o PAS e DFM. TFloatField( vcomp).Tag := 100; end; end; end; end; falterar := false; end; end. - - - - - - - - - De: delphi...@yahoogrup os.com.br [mailto:delphi...@yahoogrup os.com.br] Em nome de Rubem Rocha Enviada em: segunda-feira, 27 de julho de 2009 13:27 Para: delphi...@yahoogrup os.com.br Assunto: RES: [delphi-br] É possível alterar a classe de um objeto já criado ? Prioridade: Alta Até onde me consta, isto vai contra o que se propõe a programação orientada a objetos. Imagine a seguinte hierarquia de classe: Animal - Mamífero - Carnívoro - Canídeo - Cão Animal - Mamífero - Carnívoro - Humanídeo - Homem Como pode criar um objeto de uma classe e depois, do nada, querer que ele seja de uma outra classe? Tomando o exemplo acima, como um homem, do nada, pode se tornar um cão? Isso é ilógico! Sds. De: delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos .com.br [mailto:delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos .com.br ] Em nome de Jeferson Menegon Enviada em: segunda-feira, 27 de julho de 2009 11:33 Para: delphi...@yahoogrup os.com.br mailto:delphi- br%40yahoogrupos .com.br Assunto: [delphi-br] É possível alterar a classe de um objeto já criado ? Boa tarde! Gostaria de saber se é possível alterar a classe de um objeto já criado? Porque estamos fazendo uma analise de impacto para migrar do Delphi 6 para o Delphi 2007. A necessidade seria para os campos que a decimal é maior que TRES (3). Hoje o tipo de dados é TFloatField teríamos que trocar para TFMTBcdField. Desde já agradeço. __ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [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] Imprimir direto na serial - Impressora Termica
E ai blz!!! Para imprimir tem que passar o parâmetro para a impressora térmica (pelo menos a que eu tenho aqui!), para ela poder entender o que vai ser impresso! Esse código que estou te passando é da Argox uma ótima impressora térmica. Não sei vai te ajudar mais tai. Procedure Imprimir; var P : integer; F : TextFile; arq : TStrings; begin try arq:=TStringList.Create; arq.Add('q800'); //larguna arq.Add('Q203'); //altura arq.Add('O'); //Impres. Transf. Térmica arq.Add('N'); //Limpa Buffer arq.Add('A25,20,0,3,1,1,R,TESTE TESTE ); // aqui eu não sei te explicar todos os parâmetros mais A25 significa texto no inicio na margem 25 o 20 a linha a ser impressa, 3 tamanho da fonte, e o R para marcar o texto se não quiser usa o N arq.Add('A25,40,0,3,1,1,N,TESTE TESTE ); arq.Add('P1'); // 1 SIGINIFICA A QTDE DE COPIAS A SER IMPRESSA AssignFile(F,'LPT1'); ReWrite(F); P := 0; while P = Arq.Count-1 do begin writeln(F,arq.Strings[P]); P := P + 1; end; CloseFile (F); finally arq.Free; end; end; _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Miguel - DPF Enviada em: quarta-feira, 14 de dezembro de 2005 12:23 Para: delphi-br Assunto: [delphi-br] Imprimir direto na serial - Impressora Termica Pessoal, achei esta rotina para imprimir direto na serial, procedure TForm1.Button2Click(Sender: TObject); var Imp: TextFile; produto, valor, cliente: string; begin AssignFile(Imp, 'COM2'); Rewrite(Imp); Writeln(Imp, 'Supermercado TendTudo - Info'); Writeln(Imp, ''); Writeln(Imp, DatetoStr(Date)); Writeln(Imp, 'cod',' ','produto',' ','R$',' ','valor'); while not (table1.Eof) do begin produto:=table1produto.value; cliente:=FloattoStr(table1codigo_cliente.value); valor:=FloattoStr(table1valor.value); Writeln(Imp, cliente,' ',produto,' ','R$',' ',valor, ',00'); table1.next; Writeln(Imp, #12); {Ejetar folha} CloseFile(Imp); end; ela funciona legal em matriciais, agora tenho dois problemas, estou usando uma impressora termica microcom 406 que tira etiquetas, via relatorio imprime bem, com as configurações que eu quero usando rave, porem desde o instante q envio a impressão ate a emissão demora em media 30 segundos por tipo de produto e se tiver q emitir um pedido de 50 tipos de produtos demora muito, eu tentei colocar o codigo acima usando a porta COM2 que é a porta q a impresora utliza, porem somente tirava etiquetas em branco. a segunda duvida q tenho é se tem como formatar o texto a ser impresso agradeço muito pela ajuda Miguel Villacorta Controle de Documentação SGQ DPF Auto Peças Ltda. Fone +55 11 4446-4100 R 4126 Cajamar - SP [EMAIL PROTECTED] ___ Yahoo! doce lar. Faça do Yahoo! sua homepage. http://br.yahoo.com/homepageset.html -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE http://br.rd.yahoo.com/SIG=12fbaccuo/M=386470.7632849.8508174.2369893/D=brc lubs/S=2137111264:HM/Y=BR/EXP=1134650814/A=3135788/R=2/id=noscript/SIG=12c39 trgo/*http:/ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis. com http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1122_lrec_hotelscom.gif _ 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] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do http://br.yahoo.com/info/utos.html Yahoo!. [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
RES: [delphi-br] Imprimir direto na serial - Impressora Termica
E ai blz!!! Para imprimir tem que passar o parâmetro para a impressora térmica (pelo menos a que eu tenho aqui!), para ela poder entender o que vai ser impresso! Esse código que estou te passando é da Argox uma ótima impressora térmica. Não sei vai te ajudar mais tai. Procedure Imprimir; var P : integer; F : TextFile; arq : TStrings; begin try arq:=TStringList.Create; arq.Add('q800'); //larguna arq.Add('Q203'); //altura arq.Add('O'); //Impres. Transf. Térmica arq.Add('N'); //Limpa Buffer arq.Add('A25,20,0,3,1,1,R,TESTE TESTE ); // aqui eu não sei te explicar todos os parâmetros mais A25 significa texto no inicio na margem 25 o 20 a linha a ser impressa, 3 tamanho da fonte, e o R para marcar o texto se não quiser usa o N arq.Add('A25,40,0,3,1,1,N,TESTE TESTE ); arq.Add('P1'); // 1 SIGINIFICA A QTDE DE COPIAS A SER IMPRESSA AssignFile(F,'LPT1'); ReWrite(F); P := 0; while P = Arq.Count-1 do begin writeln(F,arq.Strings[P]); P := P + 1; end; CloseFile (F); finally arq.Free; end; end; _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Miguel - DPF Enviada em: quarta-feira, 14 de dezembro de 2005 12:23 Para: delphi-br Assunto: [delphi-br] Imprimir direto na serial - Impressora Termica Pessoal, achei esta rotina para imprimir direto na serial, procedure TForm1.Button2Click(Sender: TObject); var Imp: TextFile; produto, valor, cliente: string; begin AssignFile(Imp, 'COM2'); Rewrite(Imp); Writeln(Imp, 'Supermercado TendTudo - Info'); Writeln(Imp, ''); Writeln(Imp, DatetoStr(Date)); Writeln(Imp, 'cod',' ','produto',' ','R$',' ','valor'); while not (table1.Eof) do begin produto:=table1produto.value; cliente:=FloattoStr(table1codigo_cliente.value); valor:=FloattoStr(table1valor.value); Writeln(Imp, cliente,' ',produto,' ','R$',' ',valor, ',00'); table1.next; Writeln(Imp, #12); {Ejetar folha} CloseFile(Imp); end; ela funciona legal em matriciais, agora tenho dois problemas, estou usando uma impressora termica microcom 406 que tira etiquetas, via relatorio imprime bem, com as configurações que eu quero usando rave, porem desde o instante q envio a impressão ate a emissão demora em media 30 segundos por tipo de produto e se tiver q emitir um pedido de 50 tipos de produtos demora muito, eu tentei colocar o codigo acima usando a porta COM2 que é a porta q a impresora utliza, porem somente tirava etiquetas em branco. a segunda duvida q tenho é se tem como formatar o texto a ser impresso agradeço muito pela ajuda Miguel Villacorta Controle de Documentação SGQ DPF Auto Peças Ltda. Fone +55 11 4446-4100 R 4126 Cajamar - SP [EMAIL PROTECTED] ___ Yahoo! doce lar. Faça do Yahoo! sua homepage. http://br.yahoo.com/homepageset.html -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE http://br.rd.yahoo.com/SIG=12fbaccuo/M=386470.7632849.8508174.2369893/D=brc lubs/S=2137111264:HM/Y=BR/EXP=1134650814/A=3135788/R=2/id=noscript/SIG=12c39 trgo/*http:/ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis. com http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1122_lrec_hotelscom.gif _ 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] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do http://br.yahoo.com/info/utos.html Yahoo!. [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
RES: [delphi-br] Célula de um StringGrid selecionada
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState); const LM = 3; {each indiviual cell's left margin} TM = 2; {each indiviual cell's top margin} var ptr: Pointer; begin {qualquer cor é armazenada no ponteiro do objeto} ptr := StringGrid1.Objects[Col, Row]; StringGrid1.Canvas.Font.Color := LongInt(ptr); {deixe as filas fixas e as colunas fixas em prata } if gdFixed in State then StringGrid1.Canvas.Brush.Color := clLime; {puxemos o destaque do modo seguinte quando a celula for selecionada } if gdSelected in State then begin StringGrid1.Canvas.Brush.Color := clBlue; StringGrid1.Canvas.Font.Color := clHighlightText; end; {finalmente, faça o desenho de celula atual } StringGrid1.Canvas.TextRect(Rect, Rect.Left + LM, Rect.Top + TM, StringGrid1.Cells[col,row]); end; -Mensagem original- De: Beto Moreno [mailto:[EMAIL PROTECTED] Enviada em: quarta-feira, 13 de outubro de 2004 16:31 Para: Delphi-Br-Msgs Assunto: [delphi-br] Célula de um StringGrid selecionada Olá pessoal! Alguém aqui poderia me informar como colorir as células de um StringGrid qdo elas forem clicadas? Eu escrevi uma rotina q consigo capturar a célula clicada, mas além disso, eu preciso q a celula fique marcada por um determinada cor como se fosse o registro da seleção. Antecipadamente eu agradeço a ajuda. Beto Moreno -- 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] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- 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] ou [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
RES: [delphi-br] [OFF-TOPIC] - Banco de Dados OO
Dá uma olhada nesse artigo. É do InterSystems Caché http://www.linhadecodigo.com.br/artigos.asp?id_ac=69 -Mensagem original- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Enviada em: quinta-feira, 30 de setembro de 2004 15:02 Para: [EMAIL PROTECTED] Assunto: [delphi-br] [OFF-TOPIC] - Banco de Dados OO Olá, Alguém de vcs conhece algum banco de dados onde possa ser trabalhado com conceitos de Orientação a Objetos? Obrigado Renato Bizuti -- 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] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- 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] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] DELPHI 6 com POSTGRES 7.4.1
Bom dia Pessoal, gostaria de saber se algum amigo programa em Delphi 6 com Postgres? E qual componente usa para conexão? Estou com um problema que estou usando o Zeos Access com o DBGrid usando o drive ODBC meu PROBLEMA é quando eu dou um SELECT simples que na tabela existe um campo data o mesmo é retornado errado (no GRID fica 30/12/1899 e no EDIT 00:00:00). Já set a variável do Delphi ( DateSeparator := '/'; ShortDateFormat := 'dd/mm/';) . Não consegui descobrir o problema, pois estou em um WINXP SP2, mais já testei em WINXP e WINXP XP1 e tenho o mesmo problema, não tenho mais idéia do que pode ser. Se algum amigo já passou por isso o que fez para resolver???. Obrigado pela atenção de todos. Jeferson Menegon [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] ou [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