Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Checklistbox: Unselektierte Items löschen (https://www.delphipraxis.net/116430-checklistbox-unselektierte-items-loeschen.html)

DeddyH 29. Jun 2008 11:10

Re: Checklistbox: Unselektierte Items löschen
 
Oder nur "If-Schleifen"?

Larsi 29. Jun 2008 11:11

Re: Checklistbox: Unselektierte Items löschen
 
Ich mache halt sonst andere Sachen in Delphi. Anstatt Schleifen benutze ich halt Repeat Until.

[DCC Fehler] Unit8.pas(42): E2003 Undefinierter Bezeichner: 'Item'


Dieser Fehler kommt wenn ch deinen Code verwenden will. Was muss ich da machen?


@Deddyh: If Schleifen natürlich schon. :)

haentschman 29. Jun 2008 11:11

Re: Checklistbox: Unselektierte Items löschen
 
:mrgreen: zu IF Schleife...

versuch mal: CheckListBox.Item.Selected(i)

DeddyH 29. Jun 2008 11:12

Re: Checklistbox: Unselektierte Items löschen
 
Zitat:

Zitat von DeddyH
Pseudo-Code:

Du musst schon die richtige Syntax verwenden.

[edit]
Zitat:

Zitat von Larsi
Anstatt Schleifen benutze ich halt Repeat Until.

:wiejetzt: [/edit]

Die Muhkuh 29. Jun 2008 11:13

Re: Checklistbox: Unselektierte Items löschen
 
Du kannst auch Repeat-Until nutzen, anstatt eine For-Schleife.

DeddyH 29. Jun 2008 11:14

Re: Checklistbox: Unselektierte Items löschen
 
Damit wäre ich vorsichtig. Dann besser while nehmen.

Larsi 29. Jun 2008 11:16

Re: Checklistbox: Unselektierte Items löschen
 
Delphi-Quellcode:
for i := CheckListBox1.Items.Count - 1 downto 0 do
  if not CheckListBox1.Item.Selected(i) then
    Items.Delete(i);
So kommen immernoch Fehler:
[DCC Fehler] Unit8.pas(42): E2003 Undefinierter Bezeichner: 'Selected'
[DCC Fehler] Unit8.pas(43): E2003 Undefinierter Bezeichner: 'Items'
[DCC Fehler] Unit8.pas(43): E2008 Inkompatible Typen
[DCC Fehler] Unit8.pas(46): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'TCheckListBox' gefunden

mkinzler 29. Jun 2008 11:16

Re: Checklistbox: Unselektierte Items löschen
 
[klugscheiß]
Repeat..Until ist ja auch eine Schleife und auch While
[/klugscheiß]
Es müsste CheckBox1.Selected heißen.
Imho könnte ein Blick in die Hilfe/Klassenvervollständigung diesen Thread hier abkürzen

Die Muhkuh 29. Jun 2008 11:19

Re: Checklistbox: Unselektierte Items löschen
 
Du kannst mit der Repeat-Until Schleife auch rückwärts iterieren. Ob Du jetzt:

Delphi-Quellcode:
i := Items.Count - 1;

while (i >= 0) do
begin
  // Mach was
  Dec(I);
end;
hast, oder

Delphi-Quellcode:
i := Items.Count - 1;

repeat
  // Mach was
  Dec(I);
until i <= 0;
hast, kommt mehr oder weniger aufs Gleiche raus.

Ok, das einzige Problem ist, dass die Repeat auf jedenfall einmal durchlaufen wird.

Larsi, Du programmierst ja nicht seit gestern. Streng Dein Köpfchen ein bisschen an und werfe einen Blick in die Hilfe ;)

extrem 29. Jun 2008 11:36

Re: Checklistbox: Unselektierte Items löschen
 
Zitat:

Zitat von Larsi
Delphi-Quellcode:
for i := CheckListBox1.Items.Count - 1 downto 0 do
  if not CheckListBox1.Item.Selected(i) then
    Items.Delete(i);
So kommen immernoch Fehler:
[DCC Fehler] Unit8.pas(42): E2003 Undefinierter Bezeichner: 'Selected'
[DCC Fehler] Unit8.pas(43): E2003 Undefinierter Bezeichner: 'Items'
[DCC Fehler] Unit8.pas(43): E2008 Inkompatible Typen
[DCC Fehler] Unit8.pas(46): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'TCheckListBox' gefunden

Hi,

so geht es aber bei mir:
Delphi-Quellcode:
  for i := CheckListBox1.Items.Count - 1 downto 0 do
    if not CheckListBox1.Selected[i] then
      CheckListBox1.Items.Delete(i);


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
Seite 2 von 3     12 3      

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