AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrspaltige ComboBox?

Ein Thema von Borschti · begonnen am 2. Jun 2008 · letzter Beitrag vom 3. Jun 2008
Antwort Antwort
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

Re: Mehrspaltige ComboBox?

  Alt 2. Jun 2008, 15:56
Hi,

auf "leere" Inhalte war mein Code nicht vorbereitet. Aber was spricht dagegen, einfach ein if Item.Count > 0 then begin ... end hinzusetzen?

Jedenfalls hast du ein leeres Item in deiner ComboBox drin, also ''.

Ansonsten kannst du den Inhalt auch schon per Objektinspektor setzen.

Mfg
FAlter

[edit] Am besten sieht es aus, wenn du im Falle not (Count > 0) wenigstens ein Rechteck zeichnest:

Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  Item: TStringList;
  W, I, L: Integer;
  Cb: TCustomComboBox;
begin
  Cb := (Control as TCustomComboBox);

  Item := TStringList.Create;
  try
    Item.CommaText := Cb.Items[Index];
    if Item.Count > 0 then
    begin
      W := (Rect.Right - Rect.Left) div Item.Count; //hier alle gleiche Breite

      for I := 0 to Item.Count - 1 do
      begin
        L := Rect.Left + I * W;
        Cb.Canvas.TextRect(
          Classes.Rect(L, Rect.Top, Rect.Right, Rect.Bottom),
          L,
          Rect.Top,
          Item[I]
        );
      end;
    end
    else
      Cb.Canvas.FillRect(Rect);
  finally
    Item.Free;
  end;
end;
[/edit]

[edit] Code verbessert - kann jetzt für mehrere ComboBoxen verwendet werden und muss nicht mehr angepasst werden (an tatsächlich verwendeten Namen der ComboBox). [/edit]
[edit] Jetzt aber letztes vergessenes ComboBox1 eliminiert. [/edit]
Felix Alter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz