ComboBox Mais Rápido ?
Possuo uma aplicação que em um formulário carrego 26 combobox com um arquivo texto de 245KB.
Se eu jogar direto: ComboBox1.Items.LoadFromFile(´c:\nome_arquivo.txt´); isso demora demais...
Se eu carrego em um e depois faço ComboBox2.Items.AddStrings(ComboBox1.Items); também demora.
Tentei usar TStringList: Faço um LoadFromFile e depois repasso para todos os combos... Mas também demora...
Por último tentei TFileStream: Foi o mais rápido que consegui chegar... Mas ainda está lento...
Alguem conhece outro jeito mais rápido ?
Se eu jogar direto: ComboBox1.Items.LoadFromFile(´c:\nome_arquivo.txt´); isso demora demais...
Se eu carrego em um e depois faço ComboBox2.Items.AddStrings(ComboBox1.Items); também demora.
Tentei usar TStringList: Faço um LoadFromFile e depois repasso para todos os combos... Mas também demora...
Por último tentei TFileStream: Foi o mais rápido que consegui chegar... Mas ainda está lento...
Alguem conhece outro jeito mais rápido ?
G1b4
Curtidas 0
Respostas
Siam
03/10/2005
Não sei se é o caso, mas se Style estiver como csDropDownList, a carga é mais rápida.
GOSTEI 0
G1b4
03/10/2005
Não é esse o caso... Estou tentando carregar um arquivo texto em um TComboBox, apenas isso.... :roll: Mas valeu... :lol:
GOSTEI 0
Siam
03/10/2005
TComboBox possui a propriedade Style que se estiver como csDropDown, a carga é mais lenta.
GOSTEI 0
G1b4
03/10/2005
Ok... Fiz o que me pediu... Mas não notei nenhuma diferença...
Um detalhe: Faço isso no OnCreate do Form.
Um detalhe: Faço isso no OnCreate do Form.
GOSTEI 0
Bruno Belchior
03/10/2005
tente o seguinte...
ComboBox2.Items.CommaText := ComboBox1.Items.CommaText
GOSTEI 0
Delphi32
03/10/2005
Experimente fazer o seguinte:
ComboBox1.Items.BeginUpdate;
//>>carregue agora a combobox
ComboBox1.Items.EndUpdate;
Em geral quase todos os tipos de lista tem uma opção de BeginUpdate e EndUpdate. Quando você chama o BeginUpdate faz com que uma série de ações deixem de ser executadas. Elas só serão executadas quando você chamar EndUpdate. Tente e veja se funciona.
Até!
ComboBox1.Items.BeginUpdate;
//>>carregue agora a combobox
ComboBox1.Items.EndUpdate;
Em geral quase todos os tipos de lista tem uma opção de BeginUpdate e EndUpdate. Quando você chama o BeginUpdate faz com que uma série de ações deixem de ser executadas. Elas só serão executadas quando você chamar EndUpdate. Tente e veja se funciona.
Até!
GOSTEI 0