Screen.DataModuleCount não funciona
Pessoal
begin
showmessage(´Count ´+IntToStr(Screen.DataModuleCount));
for t := 0 to Screen.DataModuleCount - 1 do
FillSourcesForm(Screen.DataModules[t],AItems,AClassName);
for t := 0 to FormCount - 1 do
FillSourcesForm(Forms[t], AItems,AClassName);
end;
fiz isso em um componente meu... pois preciso ver se acho alguns tipo de componente em qq tela aberto, tanto Form qto DataModule
Eu tenho isso feito em outro componente em casa e funciona normal
Estava implementando isso aqui em serviço tbm e o DataModuleCount esta vindo sempre 0
Estou deixando os datamodules aberto no projeto antes de chamar esta função que esta em um Editor de Componente que fiz.
Alguem tem algum ideia?
Pois o FormCount esta funcionando certinho (infelizmente o que eu quero nesse caso específico esta nos DataModules)
begin
showmessage(´Count ´+IntToStr(Screen.DataModuleCount));
for t := 0 to Screen.DataModuleCount - 1 do
FillSourcesForm(Screen.DataModules[t],AItems,AClassName);
for t := 0 to FormCount - 1 do
FillSourcesForm(Forms[t], AItems,AClassName);
end;
fiz isso em um componente meu... pois preciso ver se acho alguns tipo de componente em qq tela aberto, tanto Form qto DataModule
Eu tenho isso feito em outro componente em casa e funciona normal
Estava implementando isso aqui em serviço tbm e o DataModuleCount esta vindo sempre 0
Estou deixando os datamodules aberto no projeto antes de chamar esta função que esta em um Editor de Componente que fiz.
Alguem tem algum ideia?
Pois o FormCount esta funcionando certinho (infelizmente o que eu quero nesse caso específico esta nos DataModules)
Osocram
Curtidas 0
Respostas
Osocram
24/07/2009
Pelo visto no Delphi 7 ele se comporta diferente.
No serviço estou usando D7 e em casa D2007. E em casa funciona...
Estava debugando os forms que aparecem ja q os datamodules não estavam aparecendo.
Percebi que estava vindo uns forms com os nomes DataModuleForm, DataModuleForm_1 e talz.
Mandei listar os componetes deles... e por minha surpresa apareceu os meu DataModules.
Então tive que fazer um FOR dentro do outro para conseguir acessar os DataModules.
Ficando assim
Bom isso resolveu o Problema.
Estou postando aqui a solução caso alguem um dia precise esta registrado.
Mas ainda estou na duvida, se isso realmente esta diferente no D7 e D2007.
Flw.
No serviço estou usando D7 e em casa D2007. E em casa funciona...
Estava debugando os forms que aparecem ja q os datamodules não estavam aparecendo.
Percebi que estava vindo uns forms com os nomes DataModuleForm, DataModuleForm_1 e talz.
Mandei listar os componetes deles... e por minha surpresa apareceu os meu DataModules.
Então tive que fazer um FOR dentro do outro para conseguir acessar os DataModules.
Ficando assim
var t,x: Integer; begin AItems.Clear; with Screen do begin for t := 0 to Screen.DataModuleCount - 1 do FillSourcesForm(Screen.DataModules[t],AItems,AClassName); for t := 0 to FormCount - 1 do [b] //essa mudança so para o delphi 7 pois ele não esta reconhecendo o Screen.DataModule if Forms[t].ClassName = ´TDataModuleForm´ then for x:=0 to Forms[t].ComponentCount - 1 do FillSourcesForm(Forms[t].Components[x], AItems,AClassName) else [/b] FillSourcesForm(Forms[t], AItems,AClassName); end;
Bom isso resolveu o Problema.
Estou postando aqui a solução caso alguem um dia precise esta registrado.
Mas ainda estou na duvida, se isso realmente esta diferente no D7 e D2007.
Flw.
GOSTEI 0