Asuntos Oficiales > C/C++

  Lista De Fuentes En Un Listbox O Combobox

(1/1)

_Viktor:
Hola, primero hagan un formulario con la sgte. forma:




Luego en el evento OnCreate del form lo siguiente:


--- Código: Text --- //---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){        for(int i = 0; i < Screen->Fonts->Count; i++)    {        ListBox1->Items->Add(Screen->Fonts->Strings[i]);        ComboBox1->Items->Add(Screen->Fonts->Strings[i]);    }     int F = ComboBox1->Items->IndexOf("Times New Roman " );    if( F ) // If the font exists, select it        ComboBox1->ItemIndex = F;}//---------------------------------------------------------------------------   
luego:


--- Código: Text --- //---------------------------------------------------------------------------void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,      TRect &Rect, TOwnerDrawState State){    if( State.Contains(odSelected) )        ListBox1->Canvas->Brush->Color = clHighlight;    else        ListBox1->Canvas->Brush->Color = clWhite;      ListBox1->Canvas->FillRect(Rect);     ListBox1->Canvas->Pen->Color = clWhite;    ListBox1->Canvas->Font->Name = ListBox1->Items->Strings[Index];    ListBox1->Canvas->Font->Size = 12;    ListBox1->Canvas->TextOut(Rect.Left, Rect.Top, ListBox1->Items->Strings[Index]);}//---------------------------------------------------------------------------void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,      TRect &Rect, TOwnerDrawState State){    if( State.Contains(odSelected) )        ComboBox1->Canvas->Brush->Color = clHighlight;    else        ComboBox1->Canvas->Brush->Color = clWhite;     ComboBox1->Canvas->FillRect(Rect);     ComboBox1->Canvas->Font->Name = ComboBox1->Items->Strings[Index];    ComboBox1->Canvas->Font->Size = 12;    ComboBox1->Canvas->TextOut(Rect.Left, Rect.Top-2, ComboBox1->Items->Strings[Index]);}//---------------------------------------------------------------------------   
para que al final el resultado se vea de esta forma:



Espero les sirva.

Saludos!

[EDIT: no modifique nada, fue un error  :hola: ]

Vatoicc:
Muy buen tip, nada mas se te olvido agregar que para el ComboBox hay que modificar una propiedad

   ComboBox1->Style = csOwnerDrawVariable;

No lo e probado en el ListBox, pero es un buen tip para darle presentacion a un programa

ronal120:
muy interesante

Navegación

[0] Índice de Mensajes

Ir a la versión completa