ComboBox i centrowanie tekstu

0

Jak wyśrodkować tekst widoczny po rozwinięciu ComboBox'a ???

0

Możesz spróbować dodać itemy combo w ten sposób:

procedure DodajItem(Combo: TComboBox; Tekst: String);
Var
 Shift:Integer;
Begin
  Shift:=(Combo.Width-20-Combo.Canvas.TextWidth(Tekst)) div 2; // 20 - szerokość przycisku rozwijania listy
  Tekst:=StringOfChar(' ', Shift div Combo.Canvas.TextWidth(' '))+Tekst;
  Combo.Items.Add(Tekst);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DodajItem(ComboBox1, 'Item pierwszy');
  DodajItem(ComboBox1, 'Item drugi');
  DodajItem(ComboBox1, 'Item 3'); 
end; 
3

Dzień dziecka

//ustawic wlasciwosc style na csOwnerDrawFixed i w zdarzeniu OnDrawItem
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with TComboBox(Control) do
  begin
    if odSelected in State then
    begin
      Canvas.Brush.Color:= clHighlight;
      Canvas.FillRect(Rect);
    end
    else
    begin
      Canvas.Brush.Color:= clWindow;
      Canvas.FillRect(Rect);
    end;
    DrawText(Canvas.Handle, PAnsiChar(Items[Index]), -1, Rect,
      DT_CENTER or DT_VCENTER);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1