Multi-Lines: TCombobox
Veja nesta Quick Tip como colocar os itens do seu TCombobox em mais de uma linha.
Olá galera, vamos a esta Quick Tip, que tem a função mostrar como podemos exibir um item do TCombobox em mais de uma linha.
Vamos lá, para isso precisamos obviamente ter um TCombobox no nosso formulário, em seguida vamos dar uses em ExtCtrls.
Vamos precisar acessar dois eventos do nosso combobox o primeiro é o onMeasureItem, e o segundo é o onDrawItem.
procedure TForm1.ComboBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
var
ItemString: string;
MyRect: TRect;
MyImage: TImage;
MyCombo: TComboBox;
begin
if (Index > -1) then
begin
MyCombo := TComboBox(Control);
MyImage := TImage.Create(MyCombo);
try
MyRect := MyCombo.ClientRect;
ItemString := MyCombo.Items.Strings[Index];
MyImage.Canvas.Font := MyCombo.Font;
Height := DrawText(MyImage.Canvas.Handle, PChar(ItemString), - 1, MyRect, DT_CALCRECT or DT_WORDBREAK);
finally
MyImage.Free;
end;
end;
end;Listagem 1. Desenhando o multi-line
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
ItemString: string;
begin
TComboBox(Control).Canvas.FillRect(Rect);
ItemString := TComboBox(Control).Items.Strings[Index];
DrawText(TComboBox(Control).Canvas.Handle, PChar(ItemString), - 1, Rect, DT_WORDBREAK);
end;Listagem 2. Pintando o texto no formato das linhas
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo