Fórum ComboBox DUVIDA CRUEL! #190642

24/10/2003

0

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,


Tenil

Tenil

Responder

Posts

24/10/2003

Beppe

Tipow, coloca isto no OnDropDown:

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


Responder

Gostei + 0

24/10/2003

Tenil

Mano, funcionou legal.

Se não for pedir demais, você poderia me dar uma breve explicação deste código?


Responder

Gostei + 0

24/10/2003

Beppe

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


Responder

Gostei + 0

24/10/2003

Tenil

Que porcaria de explicação!!! :twisted:

Eheheh

Valeu mano, abraço.


Responder

Gostei + 0

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

Aceitar