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;
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;