DBLookupComboBox que desafio...

Delphi

13/05/2005

Olá amigos pogramadores e analistas,
Estou com um desafio e tanto. É o seguinte, estes dias tentei colocar um DBLookupComboBox de mais ou menos 5 centímetros (Usando IBX e Feirebird, Delphi 7) para tester se conseguiria fazer com que quando abrisse a janela do DBLookupComboBox, a janela fosse maior que o DBLookupComboBox tivesse uns 10 centímetros, mas tudo que tentei foi só falha e fiquei com essa curiosidade: tem que ser possível, se até o MS-Access, faz.
Se pudessem me ajudar a tirar essa dúvida eu agradeço muito.

t+
rodrigorpb@bol.com.br

Rodrigo.


Rodrigorpb

Rodrigorpb

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

13/05/2005

Já tentou usar a propriedade DropDownWidth? Só mais uma coisa, não é recomendado o uso de componentes tipo lookup com bancos de dados cliente/servidor como o IB/FB já que aumenta o tráfego na rede para manter a origem da lista.


GOSTEI 0
Ericlemes

Ericlemes

13/05/2005

Não entendi sua dúvida... tem algo a ver com DropDownWidth?


GOSTEI 0
Rodrigorpb

Rodrigorpb

13/05/2005

É essa propriedade mesmo, olhei todas, mas eu tinha colocado 10 e vem com 0 ai achei que naum fosse essa...
Outra coisa... vc disse que naum é bom usar lookup qual vc me indicaria?
E como faço no caso do DBlookupComboBox para abrir mais a janela quando clico, mas agora é deixar maior para baixo, pois quando eu abro e tem 10 itens só aparece um ai se eu clicar de novo, abre normal.

Obrigado.

Rodrigo


GOSTEI 0
Ericlemes

Ericlemes

13/05/2005

Acho que o que ela quis dizer sobre o uso do DBLookupCombo é tomar cuidado com o volume de dados q vai colocar no combo. Pra mim, costumo usar pra coisas q não exigem carregamento de mais de 100 registros.

Usar o clientdataset é interessante, pois ele vai uma vez no banco, e a partir daí consulta só no cds. Talvez com IBX, ele faça novas consultas na base, dependendo de como vc navega nele.

Sobre o número de itens, vc está querendo dizer DropDownRows?


[]´s

Eric Lemes


GOSTEI 0
Gandalf.nho

Gandalf.nho

13/05/2005

O problema com o DBLookupComboBox é que para mostrar o que está nele é necessário o dataset de origem (geralmente uma query sem WHERE) permanecer aberto, o que não é bom num ambiente cliente/servidor. No meu caso, eu criei um pequeno form com um TRxDBLookupList (RxLib) e um IBQuery que será usado como uma espécie de falso LookupCombo. Nos forms de cadastro, uso DBEdits normais e uso o pressionamento de uma tecla específica que irá chamar esse form passando como parâmetros a query de origem da lista além de um ou mais campos que serão atualizados. A vantagem desse método é que a query só será aberta quando precisar alterar o campo e não ficar aberta todo o tempo que o dataset principal permanecer aberto.


GOSTEI 0
Rodrigorpb

Rodrigorpb

13/05/2005

Tenho todas as cidades carregando no DBLookupComboBox. Encontrei um comando para abrir toda a janela para baixo, quando clica a primeira vez é: Query.FetchAll
Ai abre certinho...
só que realmente para cadastrar um pessoa fisica por exemplo fica muito lento...
só que naum tem como escapar dessa lerdeza eu acho, mesmo usando uma SP no banco de dados.

Obrigado.
Rodrigo


GOSTEI 0
Gandalf.nho

Gandalf.nho

13/05/2005

É que quando vc dá FetchAll carrega todos os registros retornados pela query. Já imaginou um Lookupcombo baseado numa tabela bem grande e vc dando FetchAll, principalmente em rede? Vai ficar cada vez mais lento


GOSTEI 0
Rodrigorpb

Rodrigorpb

13/05/2005

Vcs sabem se tem como abrir na primeira vez que clica um DBLoockupComboBox por inteiro, sem usar o FetchAll? Pois realmente com muitos dados naum dá para usar, mas é um pouco incomodo vc ter que clicar duas vezes para abrir o ComboBox.

t+
Rodrigo
rodrigorpb@bol.com.br


GOSTEI 0
POSTAR