Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TListBox - Markierung bestimmter Elemente verbieten (https://www.delphipraxis.net/43459-tlistbox-markierung-bestimmter-elemente-verbieten.html)

H3v3n 4. Apr 2005 15:27


TListBox - Markierung bestimmter Elemente verbieten
 
Hallo,
sorry, falls es einen derartigen Thread schon einmal gab, aber ich habe bisher ohne Erfolg gesucht.

Ich möchte in einer TListBox verhindern, dass bestimmte Items selektiert werden können. Dies soll aber nur einige Items betreffen, nicht alle. Ich habe bisher auch noch keine elegante Lösung selbst gefunden, daher möchte ich euch mal fragen ... :)

Über antworten würde ich mich sehr freuen,
H3v3n

Lannes 4. Apr 2005 19:00

Re: TListBox - Markierung bestimmter Elemente verbieten
 
Hallo,

ob die Lösung elegant genug ist? :roll:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex in [1,2] then
  ListBox1.ItemIndex := ListBox1.Tag
  else
    ListBox1.Tag := ListBox1.ItemIndex;
end;
Item 1 und 2 kann so nicht selektiert werden,
eventuell ListBox1.Tag noch vorher richtig initialisieren(z.B. Form create?)

H3v3n 8. Apr 2005 14:34

Re: TListBox - Markierung bestimmter Elemente verbieten
 
Nein, das bringt leider noch nicht die gewünschte Lösung, weil das Item für eine kurze Zeit selektiert wird, soweit war ich auch schon ... :(

sniper_w 8. Apr 2005 14:54

Re: TListBox - Markierung bestimmter Elemente verbieten
 
aber so geht das:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
 var i:integer;
begin
 randomize;
 for i:=0 to 20 do
  ListBox1.Items.Add(IntToStr(Random(10000)));
  ListBox1.Tag := 10;
  ListBox1.ItemIndex := 10;
end;

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if ListBox1.ItemIndex in [1,2] then
  ListBox1.ItemIndex := ListBox1.Tag
  else
    ListBox1.Tag := ListBox1.ItemIndex;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz