Alinhamento ComboBox e ListBox

Passando pela internet encontrei uma dica que achei interessante.
Não sei se você já precisou alterar o alinhamento dos valores de um combo ou listbox, mas caso precise fica aí a dica…

Por exemplo, se você tem um combobox ou um listbox com valores numéricos, e deseja que fiquem alinhandos à direita, siga os passos abaixo:

Evento onCreate do form:

ComboBox1.Style := csOwnerDrawFixed;
ListBox1.Style := lbOwnerDrawFixed;

E agora no evento onDrawItem de cada um deles:

// ComboBox
var
  x: Integer;
  txt: String;
begin
  with ComboBox1 do
  begin
    Canvas.FillRect(Rect) ;
    txt := Items[Index];
    x := Rect.Right - Canvas.TextWidth(txt) - 4;
    Canvas.TextOut(x, Rect.Top, txt) ;
  end;
end;
// ListBox
var
  x: Integer;
  txt: String;
begin
  with ListBox1 do
  begin
    Canvas.FillRect(Rect) ;
    txt := Items[Index];
    x := Rect.Right - Canvas.TextWidth(txt) - 4;
    Canvas.TextOut(x, Rect.Top, txt) ;
  end;
end;

Pronto, a partir disso também podemos alinhar ao centro, apenas mudando o valor da variavel x no evento onDrawItem:

x := Round((Width - Canvas.TextWidth(txt))/2) - 4;

Em breve voltarei com mais dicas
Willian Rodrigues

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0Print this pageEmail this to someone

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blog Willian Rodrigues

Receba as atualizações do blog no seu e-mail