Witam, kończę właśnie pisać komponent w styli TCheckComboBox. Jako, że te, które znalazłem w Internecie w ogóle mi nie pasowały. Komponent dziedziczy oczywiście po TCustomComboBox
Generalnie mam jeden większy i jeden mniejszy problem.
Ten większy - to w którym momencie zmienić właściwość TEXT comboBoxa?
Mianowicie chcę osiągnąć taki efekt:
klikam checkBoxa obok itema i w tekście comboBoxa pojawia się tekst zaznaczonego itema.
Jeśli tych zaznaczonych jest kilka, no to pojawiają się wszystkie, np:
"Item1, Item2, Item10"
W żaden sposób mi to nie wychodzi.
Próbowałem coś takiego(procedura jest oczywiście przesłonięta):
procedure TJuhasCheckedComboBox.Click;
var
Point: TPoint;
begin
Point:=ScreenToClient(Mouse.CursorPos);
if (ItemIndex <> -1) and GetItemEnabled(ItemIndex) then
begin
if Point.X<=FCheckWidth then
begin
ToggleClickCheck(ItemIndex); //jeśli kliknięto w odpowiednim miejscu itema, to zrób zaznaczenie
DroppedDown:=true; //jeśli robisz zaznaczenie, to nie chowaj okienka z itemami
end;
end;
inherited;
SelText:='blabla';
end;
Próbowałem zmienić właściwość TEXT na dwa sposoby:
Text:='blabla';
//i
SelText:='blabla';
O ile pierwszy wydaje się nic nie robić, to drugi działa tak, że pojawia się na ułamek sekundy tekst właśnie zaznaczonego Itema, potem na ułamek sekundy 'blabla', potem ostatecznie zostaje puste.
Próbowałem też zrobić to w przesłoniętej procedurze Change, ale efekt był podobny.
Ktoś wie jak to zrobić??
Drugi problem mniejszy to taki, że gdy użytkownik zaznacza sobie ptaszki, to okienko z itemami się chowa, a ja chcę, żeby zostało. Rozwiązałem do po części instrukcją: DroppedDown:=true; ale problem jest taki, że okienko najpierw się chowa, a dopiero potem pokazuje, czyli jest taki chamski efekt mignięcia. Ktoś wie, jak to poprawić?