Poszukuję komponentu CheckComboBox

0

Witam!
Na początku mała uwaga, aby nie odpowiadać: "Poszukaj na torry", bo ściągnąłem stamtąd wszystkie komponenty, które choć w części pasowały do opisu tego, którego szukam - i nic ;(
A czego dokładnie szukam?
Otóż komponentu, który łączyłby w sobie funkcjonalność ComboBox i CheckList. Wygląda i zachowuje się tak jak ten pierwszy, a jedyną zmianą jest to, że każdy element zawiera nie tylko tekst, ale również parametr Checked oraz stosowny "kwadracik" obok danej pozycji.

Napisałem sobie takie coś i działa świetnie, ale nie jako oddzielny komponent, tylko modyfikacja poszczególnego ComboBoxa. Jeśli chciałbym przenieść ten kod i utworzyć z niego odrębny komponent, to musiałbym użyć dosyć zawiłego mechanizmu zawierającego tzw. WrapperClass (tak, jak jest to zrobione w standardowym komponencie CheckList).

Jeśli ktoś z Was posiada takowy komponent, to byłbym wdzięczny za przesłanie mi go na skrzynkę (ewentualnie podanie tutaj stosownego odnośnika).

0

Ale czemu nie chcesz zrobić z tego komponentu?
Ja spróbuje coś takiego zrobić. :-)

0

Chcę z tego zrobić komponent, ale nie za bardzo mi się to udaje. Jak chcesz, to mogę Ci przesłać kod jak ja to zrobiłem (C++).

0

Jakiego używasz C++, jeżeli Borland, to chyba można przenosić komponenty z Delphi do niego?

0

Używam C++Builder'a 5.0. Działają w nim prawie wszystkie komponenty napisane do Delphi do wersji 5.0. Tych do 6.0 nie miałem okazji testować.

0

Ja mam Delphi 5 Standard. Zrobie ten komponencik może jescze dzis i dam go na 4programers.

0

Dzięki! Gdyby to nie sprawiło Ci kłopotu, to podrzuć mi to od razu na maila. Thnx! [browar]

0

Marooned, chciałbym się Ciebie zapytać, czy CheckListBox może być umieszczony na formie?

Aaaaa... leń ze mnie.
Ściągnij sobie z [utl]http://delphi.icm.edu.pl/ftp/d30free/chcombox.zip</url>.

0

Marooned, chciałbym się Ciebie zapytać, czy CheckListBox może być umieszczony na formie?

Nie rozumiem - to ma zwięzek z tematem? Jeśli chodzi Ci o to, czy można na własną formę wrzucić CheckListBox, to jest to chyba oczywiste, że tak. Inaczej po co byłby taki komponent? Ale chyba nie oto Ci chodziło :| .

Ściągnij sobie z http://delphi.icm.edu.pl/ftp/d30free/chcombox.zip.

Tak się składa, że mam ten komponent (dużo szukałem, zanim wrzuciłem tu to pytanie). I nie do końca o taki mi chodzi. Ja potrzebuję taki, aby wyglądał i zachowywał się dokładnie jak zwykły ComboBox. Jedyna różnica to taka, że każdy element musi posiadać właściwość Checked oraz stosowny "kwadracik" obok napisu na rozwijanej liście.

0

Ja potrzebuję taki, aby wyglądał i zachowywał się dokładnie jak zwykły ComboBox. Jedyną różnica to taka, że każdy element musi posiadać właściwość Checked oraz stosowny "kwadracik" obok napisu na rozwijanej liście.

Aż cały komponent robić? Może wystarczy OwnerDraw?

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
Check: TRect;
begin
Check.Left := Rect.Left + 1;
Check.Top := Rect.Top + 1;
Check.Right := Rect.Bottom - Rect.Top;
Check.Bottom := Rect.Bottom - 1;
with (Control as TCustomCombo).Canvas do
begin
Rectangle(Rect);
TextRect(Rect, 30, Rect.Top, ComboBox1.Items[Index]);
Rectangle(Check);
end;
end;

Oczywiście gdzieś przydałoby się przetrzymywać listę stanów i zależnie od niej rysować "x" lub nie. A po kliknięciu na item zminiać stan zależnie od ItemIndex.

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