Mais rapidez para abrir um treeview?
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:
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
Curtidas 0
Respostas
Ara.es
28/06/2008
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 !!
GOSTEI 0
Adriano_servitec
28/06/2008
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.
GOSTEI 0
Adriano_servitec
28/06/2008
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.
GOSTEI 0