artykuły

Co zrobić by w ColorBoxsie nazwy kolorów były po Polsku?

10:13
Wed, 3 January 2007
Jeśli nie chcesz mieć nazw typu "clBlue" czy "clRed" a wystarczą Ci nazwy "Blue" czy "Red" to w Inspektorze Obiektów (zaznacz wcześniej ColorBox) włącz właściwość Style/cbPrettyNames (przestaw na True) oraz włącz też właściwość Style/doCustomColor (też na True) - automatycznie wyświetla okienko z wyborem kolorów (wyłącz wszystkie inne właściwości z grupy Style - przestaw je na False). Po tej operacji pojawią się nazwy angielskie bez przedrostków "cl". Jeśli nazwy angielskie Ci nie pasują, a chciałbyś mieć nazwy typu "Niebieski", "Czerwony" to trzeba troszkę już pomyśleć. W każdej liście typu ListBox (ComboBox też jest taką listą) można dodać element do którego będzie przyporządkowana jakaś wartość liczbowa typu TObject. Może to być wskaźnik do jakiejś procedury, bądź rekordu (częściej). ColorBox zbudowany jest tak, że każdej pozycji odpowiada jakaś tam nazwa, a związana z nią wartość liczbowa jest po prostu kolorem rzutowanym na typ TObject. Można więc zrobić coś takiego (najlepiej zaraz przy tworzeniu Formy): ColorBox1.AddItem('Czarny',TObject($000000)); ColorBox1.AddItem('Biały',TObject($FFFFFF)); ColorBox1.AddItem('Niebieski',TObject($FF0000)); ColorBox1.AddItem('Zielony',TObject($00FF00)); ColorBox1.AddItem('Czerwony',TObject($0000FF)); Przy czym wartość liczbowa musi być typu TObject - jest to liczba 32-bitowa, taka jak TColor i taka jak wszystkie wskaźniki w procesorach i systemach 32-bitowych. Wartości kolorów zapisane są trójkami (BGR - czyli "Blue","Green","Red") w systemie hexadecymalnym. W ten sposób możesz dodać dowolny kolor. Jeśli powyższe jest zbyt skomplikowane, to możesz zamiast heksadecymalnych wartości liczbowych użyć predefiniowanych stałych jak clBlack, clWhite w następujący sposób: ColorBox1.AddItem('Czarny',TObject(clBlack)); ColorBox1.AddItem('Biały',TObject(clWhite)); ColorBox1.AddItem('Niebieski',TObject(clBlue)); ColorBox1.AddItem('Zielony',TObject(clGreen)); ColorBox1.AddItem('Czerwony',TObject(clRed)); Póki co brak pytań w FAQ.

Skomentuj

Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.






Komentarze czytelników

    Nie ma jeszcze żadnych komentarzy.
    Dexter