ComponentCount para apenas um tipo, é possível?

Delphi

31/08/2009

Saudações, estou me deparando com o seguinte probleminha..possuo uma form que contém um PageControl e este possui dez abas...ao todo todas as abas possuem 576 componentes mas realizo as atualizações de apenas uma aba por vez (as outras ficam desabilitadas até que a atual seja atualizada)...gostaria de saber se era possível realizar um ComponentCount apenas para os componentes do tipo DBcheckBox. Dessa forma que faço o sistema demora um pouco para exibir a tela (a validação destes componentes é realizada no OnShow do Form). Atualmente está assim:
For cont := 0 to ComponentCount - 1 do
     begin
       if Components[cont] is TDBCheckBox then
       begin
         with Components[cont] as TDBCheckBox do
         begin

É possível fazer isso? Agradeço dese já qualquer ajuda...


Zooropa

Zooropa

Curtidas 0

Respostas

Andcarpi

Andcarpi

31/08/2009

vc quer fazer as atualizacoes de somente uma aba, ou vc já faz por esse meio??

Caso vc já esteja fazendo somente da aba, nao sei, acho que este modo que voce apresentou é o mais rapido mesmo.

Outra coisa, eu qnd faco atualizacao de cada aba, eu uso tags, nao sei se melhoraria, mas filtraria bem o numero de atualizacoes eu acho.

Poe tag de cada componente das abas relativas ao index da aba, como componentes da aba 1, tag 1, e assim vai, ai voce faz a atualizacao comparando com o tabindex.

component[cont].tag = tabindex


GOSTEI 0
Osocram

Osocram

31/08/2009

Tenta fazer assim amigo...
o Panel1 seria as suas tabSheet entendeu?

Dae em vez de pegar os componentes que estão no form vc vai pegar os controles de cada componente na tela.
No seu caso ficaria assim Aba1.ControlCount

procedure TForm1.FormShow(Sender: TObject);
var
  i:integer;
begin
  RichEdit1.Clear;
  for i:=0 to Panel1.ControlCount-1 do begin
    RichEdit1.Lines.Append(Panel1.Controls[i].name);
  end;
end;



GOSTEI 0
Zooropa

Zooropa

31/08/2009

Pessoal,
agradeço pela ajuda. Acredito que a resposta do Osocram seja a mais viável pois realmente os check´s estão em um único panel. Agradeço pela dica da tag mas acho que a leitura do count seria a mesma.
Muito obrigado pelas dicas.


GOSTEI 0
POSTAR