ComboBox DUVIDA CRUEL!
Tenho alguns ComboBox com Tamanho (width) de 150 no formulário.
Até aí tudo bem. O problema é que os textos que estão os [i:ce00bde5f0]Items[/i:ce00bde5f0] são maiores que este tamanho.
[b:ce00bde5f0]Como faço para aumentar a largura da lista de DropDown do Combobox?[/b:ce00bde5f0]
Obrigado,
Até aí tudo bem. O problema é que os textos que estão os [i:ce00bde5f0]Items[/i:ce00bde5f0] são maiores que este tamanho.
[b:ce00bde5f0]Como faço para aumentar a largura da lista de DropDown do Combobox?[/b:ce00bde5f0]
Obrigado,
Tenil
Curtidas 0
Respostas
Beppe
24/10/2003
Tipow, coloca isto no OnDropDown:
Ataliba
procedure TForm1.ComboBox1DropDown(Sender: TObject); var I, MaxWidth, OneWidth: Integer; begin with (Sender as TCustomComboBox) do begin MaxWidth := Width; for I := 0 to Items.Count - 1 do begin OneWidth := Canvas.TextWidth(Items[I]); if OneWidth > MaxWidth then MaxWidth := OneWidth; end; SendMessage(Handle, CB_SETDROPPEDWIDTH, MaxWidth + 8, 0); end; end;
Ataliba
GOSTEI 0
Tenil
24/10/2003
Mano, funcionou legal.
Se não for pedir demais, você poderia me dar uma breve explicação deste código?
Se não for pedir demais, você poderia me dar uma breve explicação deste código?
GOSTEI 0
Beppe
24/10/2003
Se não for pedir demais, você poderia me dar uma breve explicação deste código?
É sim!!! :twisted: Brincadeira. Agora, comentado:
procedure TForm1.ComboBox1DropDown(Sender: TObject); var MaxWidth: Integer; // largura do maior item OneWidth: Integer; // largura do item corrente I: Integer; // sei lah... begin // pra simplificar o acesso, e garantir que estamos // trabalhando com um combo with (Sender as TCustomComboBox) do begin // assume que a maior largura é a largura da combo MaxWidth := Width; // verifica cada item for I := 0 to Items.Count - 1 do begin // pega a largura deste OneWidth := Canvas.TextWidth(Items[I]); // se é maior que a atual, muda... if OneWidth > MaxWidth then MaxWidth := OneWidth; end; // manda uma mensagem para alterar a largura da // listbox(eh uma listbox que eh aberta), com uma folga de 8 SendMessage(Handle, CB_SETDROPPEDWIDTH, MaxWidth + 8, 0); end; end;
E eh isso...
Ataliba
GOSTEI 0
Tenil
24/10/2003
Que porcaria de explicação!!! :twisted:
Eheheh
Valeu mano, abraço.
Eheheh
Valeu mano, abraço.
GOSTEI 0