ListBox - verschiedene Fonts(größen)



  • <Anmerkung> In diesem Thread geht es eigentlich um ComboBoxen, die Vorgehensweise und Beipiele können aber 1:1 für die ListBox übernommen werden. </Anmerkung>

    mich würde interessieren wie/ob es möglich ist ein ComboBox Item in 2 verschiedenen Schriftgrößen auszugeben!

    d.h.: ComboBox Item = N....Nachrichtentechnik

    "N" soll mit z.b. schriftgröße 16 angezeigt werdem.
    "Nachrichtentechnik" in schriftgröße 8.
    bei den nachfolgenden Items in der ComboBox soll ebenfalls immer ein Teil jedes Items in anderer Schriftgröße sein.

    dankbar für jede Hilfe / Code!!

    [ Dieser Beitrag wurde am 07.12.2002 um 10:00 Uhr von Jansen editiert. ]



  • Guge dir genau die Eigenschaften, wie ItemHeight, Style; Ereignisse: OnDrawItem, OnMeasureItem,... an



  • danke für den hinweis, hilft mir aber leider trotzdem nicht weiter....
    ein GESAMTES item zu ändern (Größe, Farbe, ...) stellt kein problem dar, jedoch einen gewissen ABSCHNITT eines Items in der Größe zu ändern (für meine wenigkeit 🙂 ) schon.

    wie könnte der Code aussehen, um z.b. ab einer gewissen Stelle die Schriftgröße eines Items kleiner zu definieren?
    z.b. NIT nachrichtentechnik



  • NICHT VERGESSEN
    ComboBox1->Style = csOwnerDrawVariable;

    void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,
          TRect &Rect, TOwnerDrawState State)
    {
      ComboBox1->Canvas->Font->Color = clRed;
      ComboBox1->Canvas->Font->Size = 5*(Index+1);
      int h = ComboBox1->Canvas->TextHeight(ComboBox1->Items->Strings[Index]);
      int w = ComboBox1->Canvas->TextWidth(ComboBox1->Items->Strings[Index]);
      Rect.Bottom = Rect.Top + h;
    
      ComboBox1->Canvas->TextOutA(Rect.left, Rect.top, ComboBox1->Items->Strings[Index]);
    
      ComboBox1->Canvas->Font->Color = clGreen;
      ComboBox1->Canvas->Font->Size = 10;
      ComboBox1->Canvas->TextOutA(Rect.left + w, Rect.top, "TEST2");
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::ComboBox1MeasureItem(TWinControl *Control,
          int Index, int &Height)
    {
      if (Index > -1)
      {
        ComboBox1->Canvas->Font->Size = 5*(Index+1);
        Height = ComboBox1->Canvas->TextHeight(ComboBox1->Items->Strings[Index]);
      }
    }
    //---------------------------------------------------------------------------
    

    [ Dieser Beitrag wurde am 06.12.2002 um 10:50 Uhr von Xqgene editiert. ]



  • danke, danke, danke! hat mir echt geholfen!! 😃


Anmelden zum Antworten