Mais rapidez para abrir um treeview?

28/06/2008

0

Pessoal tenho um treeview que carrega todos os município do Brasil, só que ao abrir o form ele demora uns 7 segundos, gostaria que ele carregasse mais rápido.

O código está no onShow do Form
Código:
procedure TfrmPesMunicipios.FormShow(Sender: TObject);
var
  Nodo, SubNode1, SubNode2: TTreeNode;
begin
  top  := 0;
  left := 0;
  {: Adicione a linha abaixo.
  ela prepara o treeview para edicao e não reporta as alterações
  para a tela enquanto não terminar o processo, tornando o
  procedimento mais veloz}
  TreeView1.Items.BeginUpdate;
  TreeView1.Items.Clear;
  {: Desabilitar os controle ligados a tabela, para melhorar a performance}
  cdsTEstado.Close;
  cdsTEstado.SQL.Clear;
  cdsTEstado.SQL.Text := ´ select comunicipio, nomunicipio, infaixa ´+
                         ´ from tb8munic                            ´+
                         ´ where infaixa is null                    ´+
                         ´ order by nomunicipio                     ´;
  cdsTEstado.Open;
  cdsTEstado.DisableControls;
  cdsTEstado.First;
  while not cdsTEstado.Eof do
   begin
     if cdsTEstado.FieldByName(´infaixa´).Value = null then
      begin
        SubNode1:= TreeView1.Items.AddChild(Nodo, cdsTEstadoNOMUNICIPIO.value);
        with cdsTMunicipios do
        begin
          Close;
          Params[0].AsString := Copy(cdsTEstadoCOMUNICIPIO.AsString, 1, 2);
          Open;
          cdsTMunicipios.DisableControls;
          cdsTMunicipios.First;
          while not cdsTMunicipios.Eof do
           begin
             SubNode2:= TreeView1.Items.AddChild(SubNode1, cdsTMunicipiosNOMUNICIPIO.value);
             cdsTMunicipios.Next;
           end;
        end;
        cdsTMunicipios.EnableControls;
        cdsTEstado.Next;
      end;
   end;
   cdsTEstado.EnableControls;
   {: informa ao treeview que as alterações foram finalizadas}
   TreeView1.Items.EndUpdate;
end; 



Adriano_servitec

Adriano_servitec

Responder

Posts

28/06/2008

Ara.es

Por que vc nao preenche ele por demanda. Adicione somente os estados e conforme o usuario for escolhendo um estado vc adiciona os municipios daquele estado. Com isso, nem será preciso adicionar todos os municipios. Flw !!


Responder

28/06/2008

Adriano_servitec

Por que vc nao preenche ele por demanda. Adicione somente os estados e conforme o usuario for escolhendo um estado vc adiciona os municipios daquele estado. Com isso, nem será preciso adicionar todos os municipios. Flw !!
Hum, é que os Estados e Cidades ficaram num campo só, estou tentando transferir os Estados para um novo campo.

Vou ver aqui se eu consigo.

Obrigado por responder amigo.


Responder

28/06/2008

Adriano_servitec

Por que vc nao preenche ele por demanda. Adicione somente os estados e conforme o usuario for escolhendo um estado vc adiciona os municipios daquele estado. Com isso, nem será preciso adicionar todos os municipios. Flw !!
Hum, é que os Estados e Cidades ficaram num campo só, estou tentando transferir os Estados para um novo campo.

Vou ver aqui se eu consigo.

Obrigado por responder amigo.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar