pomozcie: zdarzenie OnDrawItem w OnDropDown comboBox'a

0

...pomozcie, bo juz sam nie mam koncepcji na nic, jak zrobic aby po rozwinieciu combosa, czyli wywolaniu zdarzenia OnDroDown zmienialy swoje tlo te linie combosa w ktore spelaniaja jakis warunek, niewazne jaki, np linia zawiera liczbe 999....to przeciez nie ma znaczenia....

0

...pomozcie, bo juz sam nie mam koncepcji na nic, jak zrobic aby po rozwinieciu combosa, czyli wywolaniu zdarzenia OnDroDown zmienialy swoje tlo te linie combosa w ktore spelaniaja jakis warunek, niewazne jaki, np linia zawiera liczbe 999....to przeciez nie ma znaczenia....
...a moze nie trzeba uzywac OnDrawItem, wystarczy tylko przy OnDropDown cos zrobic ComboBox.Canvas.Brush, tylko potem trzeba uzyc FillRect(const rect : TRect), a ja juz za Chiny ludowe nie wiem jak wydobyc parametrow tej linii co mnie wlasnie akurat interesuje...

0

Może tak:

with ComboBox1 do
begin
  if Items[Index] = '999' then
    Canvas.Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
end;
0

Może tak:

with ComboBox1 do
begin
  if Items[Index] = '999' then
    Canvas.Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
end;
Canvas.Rectangle(Rect);
0

Zastosowałem się do FAQ i wyszukanych postów na forum.
Udało mi się dodać ikonki flag do rozwijanej listy.
Niestety jest problem z zaznaczeniem (chodzi o tą przerywaną obwódkę wokół aktyualnej pozycji), wygląda tak jakby lista się nie odświeżała.

Tutaj screen, na którym to widać.
http://www.fotosik.pl/pokaz_obrazek/2220ece98f1ceefb.html

Ma ktoś pomysł jak to zlikwidować?

0

Może

ComboBox1.Invalidate

po najechaniu pozycji ?

pozdr.

0

Niestety nie pomogło :(
Zastanawiam się co jest nie tak.

Poza tym mam jeszcze taki problem, że nie wiem jak wymusić pozycję początkową takiej listy. Już tłumaczę.
Na wcześniejszym screenie widać okienko co i jak.
Gdy "force language" jest niezaznaczone, to język jest domyślny systemowy i zmienna Language w pliku INI jest pusta.
Po zaznaczeniu "force language", można wybrac język.
Po wybraniu i zatwierdzeniu opcji, język się zmienia i następuje przypisanie jego nazwy do zmiennej language w pliku INI, by zapamiętało jezyk.
Po ponownym uruchomieniu odczytywany jest język przypisany do Language w INI i aplikacja jest w poprawnym języku. Po wejściu do opcji, pozycja "force language" jest zaznaczona (co jest poprawne) ale niestety w rozwijanej liście jest pusto (nie ma domyślnie wybranej poprzednio pozycji). Oczywiście po rozwinięciu listy sa wszystkie pozycje do wyboru.

Przypisanie ItemIndex w OnCreate Formy nic nie daje (dalej pusto), tak samo przypisanie ItemIndex w samym komponencie nie daje rezultatu.

Po wyborze języka i zamknięciu opcji, i wejści ponownym w opcje (aplikacja ciągle właczona), pamięta pozycję.

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