TChecklistbox (gelöst)

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

TChecklistbox (gelöst)

Beitrag von haderlump »

Hallo zusammen.
Ich benutze die Checklistbox.
als erstes fülle ich die Zeilen mit

Code: Alles auswählen

elementliste.Items.Add(element^.name);

klappt auch ganz gut.
nachdem ich den relevanten Datensatz gerade da habe, möchte ich gleich die Häckchen setzen.
mit dem Befehl

Code: Alles auswählen

if element^.schattenbf_aktiv then elementliste.Checked[elementliste.ItemIndex] := true;

bekomme ich aber die Fehlermeldung: TChecklistbox Index -1 out of bound.
Was mache ich da falsch?.
wird der Index nicht automatisch beim hinzufügen einer neuen Zeile erhöht?

Gruß Fritz
Zuletzt geändert von haderlump am Mo 31. Dez 2018, 02:53, insgesamt 1-mal geändert.

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TChecklistbox

Beitrag von sstvmaster »

HI Fritz,

das sollte so gehen:

Code: Alles auswählen

 
elementliste.Items.Add(element^.name);
if element^.schattenbf_aktiv then elementliste.Checked[elementliste.Items.IndexOf(element^.name)] := true;
 

LG guten Rutsch, Maik
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: TChecklistbox

Beitrag von wp_xyz »

Das Suchen mit IndexOf kann man sich sparen, denn Add ist eigentlich eine Funktion, die den Index des neuen Elements zurückliefert:

Code: Alles auswählen

var
  idx: Integer;
...
  idx := elementliste.Items.Add(element^.name);
  if element^.schattenbf_aktiv then elementliste.Checked[idx] := true;

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: TChecklistbox

Beitrag von haderlump »

Danke wp_xyz so hat es geklappt.
Again what lerned!!
Fritz

Antworten