Alterando o arquivo DFM

230 views
Skip to first unread message

acaua...@pop.com.br

unread,
Apr 18, 2008, 4:01:25 PM4/18/08
to DUG-RS - Delphi Users Group Rio Grande do Sul
Pessoal,

fiz um conversor para alterar as propriedades existentes de um valor
'X' para 'Y', ou excluir determinada propriedade (varrendo todso os
arquivos .dfm do projeto), inventei de colocar mais propriedades em um
objeto (isso quando elas estão com o valor default, pois daí não são
persistidas no respectivo dfm), só que algumas (a maioria não estão
funcionando), a única conclusão que cheguei é que as propriedades são
posicionais para cada objeto, bingo fui lá ver conferir se eram
persistidas em ordem alfabetica ou outra relação NÃO cheguei a lugar
nenhum...

O objetivo é abrir um dfm e editar ele incluiindo um propriedade...
alguém se habilita a trocar uma idéia de como fazer isso ir pra
frente...
Passo os fontes por e-mail, vale a pena usei para converter a
aplicação de Delphi4 para 2007 (vários problemas de tela, e
propriedades removidas e incluídas etc).

Att,
Acauan Ramos.

Daniel Wildt

unread,
Apr 18, 2008, 10:29:01 PM4/18/08
to dug...@googlegroups.com
Pergunta, abrindo os fontes na versão mais nova o próprio Delphi não atualiza para você as propriedades? Dá um trabalho bem mais manual, mas dependendo do projeto vale a pena.
 
Eu achei interessante Acauan, se quiser disponibilizar o fonte eu agradeço. Se for o caso de deixar público, te sugiro subir no CodeCentral da CodeGear:
Assim fica disponível para o mundo todo poder olhar.
 
Att,
Daniel Wildt

 
--
Regards,
Daniel Wildt
http://danielwildt.blogspot.com
http://weblogs.java.net/blog/dwildt/

java.net Global Education and Learning Community (GELC) - http://edu-gelc.dev.java.net
http://wiki.java.net/bin/view/People/DanielWildt

acaua...@pop.com.br

unread,
Apr 22, 2008, 6:30:54 AM4/22/08
to DUG-RS - Delphi Users Group Rio Grande do Sul
É verdade, as propriedades de classes nativas sim, e aí está a
compatibilidade desde a versão 1.
O problema ocorreu justo em componentes de terceiros, mas um deles
disponibilizava esta ferramenta, inclusive depois de muitos pedidos,
liberou os fontes para que eu adaptasse para outros componentes também
de terceiros, foi aí que tentei deixar mas genérico possível, onde
posso alterar nomes de classes, nomes e valores de propriedades,
incluir units na ocorrência de determinada string... e a rotina que
não está dando certo, incluir propriedades no DFM (defaults nem sempre
são persistidas, por isso a inclusão), porém pelos testes imagino que
exista uma ordem para que estas sejam gravadas dentro de cada objeto,
e infelizmente pelo que pude ver não é em ordem alfabética.

Att,
Acauan Ramos.


On 18 abr, 23:29, "Daniel Wildt" <dwi...@gmail.com> wrote:
> Pergunta, abrindo os fontes na versão mais nova o próprio Delphi não
> atualiza para você as propriedades? Dá um trabalho bem mais manual, mas
> dependendo do projeto vale a pena.
>
> Eu achei interessante Acauan, se quiser disponibilizar o fonte eu agradeço.
> Se for o caso de deixar público, te sugiro subir no CodeCentral da CodeGear:http://cc.codegear.com/
> Assim fica disponível para o mundo todo poder olhar.
>
> Att,
> Daniel Wildt
>
> On 4/18/08, acauanra...@pop.com.br <acauanra...@pop.com.br> wrote:
>
>
>
>
>
>
>
> > Pessoal,
>
> > fiz um conversor para alterar as propriedades existentes de um valor
> > 'X' para 'Y', ou excluir determinada propriedade (varrendo todso os
> > arquivos .dfm do projeto), inventei de colocar mais propriedades em um
> > objeto (isso quando elas estão com o valor default, pois daí não são
> > persistidas no respectivo dfm), só que algumas (a maioria não estão
> > funcionando), a única conclusão que cheguei é que as propriedades são
> > posicionais para cada objeto, bingo fui lá ver conferir se eram
> > persistidas em ordem alfabetica ou outra relação NÃO cheguei a lugar
> > nenhum...
>
> > O objetivo é abrir um dfm e editar ele incluiindo um propriedade...
> > alguém se habilita a trocar uma idéia de como fazer isso ir pra
> > frente...
> > Passo os fontes por e-mail, vale a pena usei para converter a
> > aplicação de Delphi4 para 2007 (vários problemas de tela, e
> > propriedades removidas e incluídas etc).
>
> > Att,
> > Acauan Ramos.
>
> --
> Regards,
> Daniel Wildthttp://danielwildt.blogspot.comhttp://weblogs.java.net/blog/dwildt/
>
> java.net Global Education and Learning Community (GELC) -http://edu-gelc.dev.java.nethttp://wiki.java.net/bin/view/People/DanielWildt- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -

Jair - MICROFLEX

unread,
Apr 22, 2008, 10:35:44 AM4/22/08
to dug...@googlegroups.com
Olá, Acauan!

Você provavelmente encontrou problemas de projeto nesses componentes de
terceiros. É bem possível que algum deles, por defeito, exija a definição de
uma propriedade antes de outra. Você só terá certeza analisando os fontes
desse componente. A boa prática de desenvolvimento deve evitar esse tipo de
dependência, mas nem todos os desenvolvedores respeitam isso.

Se for mesmo esse o caso, não deve haver qualquer lógica para a ordem
exigida nessa definição. Em um projeto bem concebido, as suas rotinas de
ajuste do DFM deveriam funcionar normalmente.


Um abraço,
Jair


--------------------------------------------------
From: <acaua...@pop.com.br>
Sent: Tuesday, April 22, 2008 7:30 AM
To: "DUG-RS - Delphi Users Group Rio Grande do Sul"
<dug...@googlegroups.com>
Subject: [dug-rs] Re: Alterando o arquivo DFM

> --
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 269.23.2/1389 - Release Date:
> 21/04/2008 08:34
>
>

Daniel Wildt

unread,
Apr 23, 2008, 9:37:47 PM4/23/08
to dug...@googlegroups.com
Pelo o que eu sei não tem nada sobre ordem de propriedades serem gravadas no DFM.
 
A menos que o componente tenha um defeito.
 
O correto é sempre usar um método "load" que os componentes possuem para fazer algumas atribuições mais complexas, pois ali todas as propriedades já foram carregadas do DFM.
 
Isto muitas vezes não ocorre e neste caso sim, as propriedades devem ser gravadas em uma determinada ordem. Todo caso isto é um erro de projeto do componente.
 
Este tipo de problema, para confirmar, você está enfrentando somente nos componentes de terceiros certo?
 
Att,
Daniel Wildt

 
--
Regards,
Daniel Wildt
http://danielwildt.blogspot.com
http://weblogs.java.net/blog/dwildt/

acaua...@pop.com.br

unread,
Apr 24, 2008, 6:58:30 AM4/24/08
to DUG-RS - Delphi Users Group Rio Grande do Sul
Sim exatamente, estou com problemas para adicionar propriedades em
componentes do ReportBuilder... coisas do tipo habilitar a pesquisa
interna texto, imprimir para arquivo, etc, uma vez que são
propriedades novas e interessantes em relação a versão anterior que
usávamos.

Att,
Acauan Ramos.


On 23 abr, 22:37, "Daniel Wildt" <dwi...@gmail.com> wrote:
> Pelo o que eu sei não tem nada sobre ordem de propriedades serem gravadas no
> DFM.
>
> A menos que o componente tenha um defeito.
>
> O correto é sempre usar um método "load" que os componentes possuem para
> fazer algumas atribuições mais complexas, pois ali todas as propriedades já
> foram carregadas do DFM.
>
> Isto muitas vezes não ocorre e neste caso sim, as propriedades devem ser
> gravadas em uma determinada ordem. Todo caso isto é um erro de projeto do
> componente.
>
> Este tipo de problema, para confirmar, você está enfrentando somente nos
> componentes de terceiros certo?
>
> Att,
> Daniel Wildt
>
> > /edu-gelc.dev.java.nethttp://wiki.java.net/bin/view/People/DanielWildt-Ocultartexto entre aspas -

Daniel Wildt

unread,
Apr 24, 2008, 11:07:42 PM4/24/08
to dug...@googlegroups.com
Pois é cara, mas ReportBuilder não seria o tipo de componente para ter defeito...
 
Vou deixar marcada esta thread de mensagens para dar uma olhada no final de semana. Se conseguir algo novo nos avisa.
 
Att,
Daniel Wildt

 
--
Regards,
Daniel Wildt
http://danielwildt.blogspot.com
http://weblogs.java.net/blog/dwildt/

Daniel Wildt

unread,
Apr 26, 2008, 8:46:59 PM4/26/08
to dug...@googlegroups.com
Acauan,
 
Qual versão estás usando do Report Builder e de que versão para qual versão de Delphi estás migrando o fonte?
 
Att,
Daniel Wildt

2008/4/25 Daniel Wildt <dwi...@gmail.com>:

acaua...@pop.com.br

unread,
Apr 28, 2008, 7:30:19 AM4/28/08
to DUG-RS - Delphi Users Group Rio Grande do Sul
Desde já agradeço o empenho.

Daniel, estamos convertendo o fonte de Delphi 4 para o Delphi 2007 e
o Report Builder estávamos com a versão 6.02, e agora estamos
desenvolvendo com a versão 10.06.
Um exemplo específico de propriedade que queremos alterar/incluir é
uma que está presente dentro da classe "TppReport" chamada
"TextSearchSettings.Visible", está como default é false, e por ser
default, não é preenchida no .dfm.

"TppReport" . "TextSearchSettings.DefaultString" = "<Find Text>"
conseguimos alterar;
"TppReport" . "TextSearchSettings.Enabled" = "False" conseguimos
altear;

mas esta
"TppReport" chamada "TextSearchSettings.Visible"
tento adicionar à classe e não está sendo aplicada, fiz um teste com o
fonte aberto, utilizando o "View Form as Text", e adicionei esta
propriedade como True, aparentemente está funcionando, mas notei que o
Enabled é um requisito, para visible ser persistida primeiro deve
estar "Enabled=True", até aí tudo bem...

Dei uma relaxada neste projeto, mas esta semana retomo e passo
notícias...

Att,
Acauan Ramos.



On 26 abr, 21:46, "Daniel Wildt" <dwi...@gmail.com> wrote:
> Acauan,
>
> Qual versão estás usando do Report Builder e de que versão para qual versão
> de Delphi estás migrando o fonte?
>
> Att,
> Daniel Wildt
>
> 2008/4/25 Daniel Wildt <dwi...@gmail.com>:
>
>
>
>
>
> > Pois é cara, mas ReportBuilder não seria o tipo de componente para ter
> > defeito...
>
> > Vou deixar marcada esta thread de mensagens para dar uma olhada no final
> > de semana. Se conseguir algo novo nos avisa.
>
> > Att,
> > Daniel Wildt
>
> > Daniel Wildt
> >http://danielwildt.blogspot.com
> >http://weblogs.java.net/blog/dwildt/
>
> > java.net Global Education and Learning Community (GELC) -
> >http://edu-gelc.dev.java.net
> >http://wiki.java.net/bin/view/People/DanielWildt
>
> --
> Regards,
Reply all
Reply to author
Forward
0 new messages