Witam
Podpowiedzcie jak zrobić możliwość wybierania jednocześnie kilku elementów z listy ComboBox i wyświetleniu ich w oknie tegoż ComboBox-a porozdzielanych przecinkami.
Jeśli znacie odpowiedź na moje pytanie proszę o odpowiedz
Z góry dzięki
Sorry za błąd w temacie ;-P
ComboBox ze swojej istoty służy do wybrania jednej opcji. W przeciwnym wypadku powinieneś posługiwać się raczej ListBox'em i podobnymi.
trochę to jest bezsensowne :D .. ale jakby się uprzeć można by napisać coś w tym stylu:
var
Wybrane: array of Boolean;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(Wybrane,ComboBox1.Items.Count+1);
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
var
X: Byte;
Txt: String;
begin
Wybrane[ComboBox1.ItemIndex] := not Wybrane[ComboBox1.ItemIndex];
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
X: Byte;
Txt: String;
begin
Txt := '';
for X := 0 to High(Wybrane) do
if Wybrane[X] = True then
Txt := Txt + ComboBox1.Items.Strings[X] + ', ';
Delete(Txt,Length(Txt)-1,2);
ComboBox1.Text := Txt;
Timer1.Enabled := False;
end;
Timer ma ustawione Interval na 1 .. chodzi o to żeby było jak najmniej ale żeby zdążyły się zmiany wprowadzić .. inaczej nie chciało się pokazywać... pewnie się da zrobić jakoś inaczej.. dać to w innym zdarzeniu być może .. działa w każdym razie w ten sposób ;)
Szczawik - dzięki za podpowiedz. Wczesniej nie próbowałem z ListBox'em ale to jest odpowiedz na moje pytanie.
Arthan - twoj kod też mi sie przydał [browar]
Dzięki wielkie
Rzecz w tym, że użytkownik zawsze jest przyzwyczajony do tego, aby stosowne komponenty odgrywały stosowne role: nikt po przycisku intuicyjnie nie oczekuje pola edycyjnego do teksu, tak samo jak po ComboBox nie będzie być może spodziewał się możliwości wyboru kilku opcji jednocześnie.
Rozważ to, bo tak na prawdę jest to podstawą ergonomii aplikacji.
Ja też się zdziwiłem, ale pomyślałem, że może ma całą formę zawalone komponentami i mu sie ListBox nie mieści :D Jak by zrobił do tego odpowiednią pomoc i hinty to by mogło się przydać ;) ale fakt... program nie byłby już aż tak intuicyjny.
Program, który wymaga pomocy przy obsłudze interfejsu jest źle zaprojektowany. Pomoc jest od rozwiewania wątpliwości i dawania podpowiedzi, a nie uczenia obsługi komponentów.