Delphi-PRAXiS
Seite 2 von 2     12   

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 Ergebnisse auflisten (https://www.delphipraxis.net/198767-checklistbox-ergebnisse-auflisten.html)

Das Orakel von 28. Nov 2018 15:53

AW: CheckListBox Ergebnisse auflisten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von haentschman (Beitrag 1419577)
Vorhin hast du es doch auch richtig gemacht... (erster Post Bild) :wink:
Die Stelle (Breakpoint) wo der Fehler auftritt. Da kann man auch sehen welche Werte die Variablen haben. (vorher)
http://docwiki.embarcadero.com/RADSt...(IDE-Tutorial)

PS: Stelle mal in deinem Profil deine Delphi Version ein. Da können wir besser helfen.



Ehm... ich weiß jetzt nicht genau worauf du hinaus willst
Einen Screenshot hab ich mal nochmal gemacht
Soll ich die Schritte machen auf der Seite "Debuggen der Anwendung"?

Klaus01 28. Nov 2018 15:58

AW: CheckListBox Ergebnisse auflisten
 
.. kann es sein das nach der for Schleife der Counter i nicht mehr richtig ist.

Grüße
Klaus

Das Orakel von 28. Nov 2018 16:03

AW: CheckListBox Ergebnisse auflisten
 
Zitat:

Zitat von Klaus01 (Beitrag 1419581)
.. kann es sein das nach der for Schleife der Counter i nicht mehr richtig ist.

Grüße
Klaus



Wo müsste ich den dann ändern?
Ich habe
i, n : Integer;

als Variablen eingegeben

Klaus01 28. Nov 2018 16:07

AW: CheckListBox Ergebnisse auflisten
 
..Du könntest die Caption des Labels innerhalb der Schleife setzen

Grüße
Klaus

Hobbycoder 28. Nov 2018 16:21

AW: CheckListBox Ergebnisse auflisten
 
Zitat:

Zitat von Das Orakel von (Beitrag 1419582)
Zitat:

Zitat von Klaus01 (Beitrag 1419581)
.. kann es sein das nach der for Schleife der Counter i nicht mehr richtig ist.

Grüße
Klaus



Wo müsste ich den dann ändern?
Ich habe
i, n : Integer;

als Variablen eingegeben


Du schreibst:
Delphi-Quellcode:
procedure TEquipment.Button1_prüfenClick(Sender: TObject);

begin
  n := 0;
  for i := 0 to CheckListBox1.Items.Count - 1 do
  begin
    if CheckListBox1.Checked[i] then inc(n);
  end;
  Label2_Überprüfung.Caption := Label2_Überprüfung.Caption + sLineBreak + CheckListBox1.Items[i];

end;

end.
Du verwendest i in der Zuweisung der Caption außerhalb der Schleife.
Das ist Falsch. i wird am Ende jedes Schliefendurchlaufs um 1 erhöht. Auch beim letzten Durchlauf. Demnach sprichst du auch nach der Schleife ein Item der CheckListBox an, welches nicht existiert (Listenindex außerhalb des gültigen Bereichs).

Wenn du mal diesen Code ausprobierst (um dir das zu verdeutlichen):
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
  i: Integer;
begin
  mmo1.Lines.Clear;
  for i:=0 to 5 do
  begin
    mmo1.Lines.Add('Innerhalb der Schleife: '+IntToStr(i));;
  end;
  mmo1.Lines.Add('Außerhalb der Schleife: '+IntToStr(i));;
end;
(Dieser Code setzt voraus, dass du einen Button mit dem Namen btn1 und ein Memo mit dem Namen mmo1 hast).

Da kommt folgendes Ergebins:
Zitat:

Innerhalb der Schleife: 0
Innerhalb der Schleife: 1
Innerhalb der Schleife: 2
Innerhalb der Schleife: 3
Innerhalb der Schleife: 4
Innerhalb der Schleife: 5
Außerhalb der Schleife: 6
Spricht für sich.


Richtig wäre also:
Delphi-Quellcode:
procedure TEquipment.Button1_prüfenClick(Sender: TObject);

begin
  n := 0;
  for i := 0 to CheckListBox1.Items.Count - 1 do
  begin
    if CheckListBox1.Checked[i] then
    begin
      Label2_Überprüfung.Caption := Label2_Überprüfung.Caption + sLineBreak + CheckListBox1.Items[i];
      inc(n);
    end;
  end;

end;

end.
wofür du n benötigst ist mir nicht klar.

Und: Schleifenvariablen sollte immer lokal deklariert sein. Also im var-Abschnitt der Procedure. Finde ich bei dir nicht.

Und: Warum nutzt du nicht die Delphi-Tags und schreibst deinen Code da hinein???? Ein Bild im Anhang macht es allen anderen schwer dir zu helfen.

DP-Maintenance 28. Nov 2018 18:06

Dieses Thema wurde am "28. Nov 2018, 19:06 Uhr" von "Luckie" aus dem Forum "Programmieren allgemein" in das Forum "GUI-Design mit VCL / FireMonkey / Common Controls" verschoben.

DieDolly 28. Nov 2018 19:14

AW: CheckListBox Ergebnisse auflisten
 
Zitat:

Zitat von Klaus01 (Beitrag 1419584)
..Du könntest die Caption des Labels innerhalb der Schleife setzen

Grüße
Klaus

Habe ich schon in #4 vorgeschlagen. Wurde wohl ignoriert oder nicht gesehen.

haentschman 29. Nov 2018 05:58

AW: CheckListBox Ergebnisse auflisten
 
Moin...:P
Was wällt dir an den 2 Screenshots auf?
https://www.delphipraxis.net/attachm...n-probem-1.jpg
https://www.delphipraxis.net/attachm...-problem-2.jpg
Du verwendest, neuerdings, I bei Label_Überprüfung. I ist außerhalb der Schleife nicht mehr gültig! (wurde schon gesagt) :wink:

Hobbycoder 29. Nov 2018 09:39

AW: CheckListBox Ergebnisse auflisten
 
Zitat:

Zitat von haentschman (Beitrag 1419620)
Du verwendest, neuerdings, I bei Label_Überprüfung. I ist außerhalb der Schleife nicht mehr gültig! (wurde schon gesagt) :wink:

Gültig schon. Hat auch eine vorhersehbaren Wert. Nur eben entspricht dieser Max-Scheifendurchläufe+1 und passt somit auch nicht mehr zu den Items.

Hier mangelt es an den Grundlagen. Tutorials, die es im Netz zu Hauf gibt, sollten helfen. Bevor die Grundlagen nicht vorhanden sind, bringt das alles nichts. Sorry.

DieDolly 29. Nov 2018 12:06

AW: CheckListBox Ergebnisse auflisten
 
Zitat:

Zitat von Hobbycoder (Beitrag 1419645)
Hier mangelt es an den Grundlagen. Tutorials, die es im Netz zu Hauf gibt, sollten helfen. Bevor die Grundlagen nicht vorhanden sind, bringt das alles nichts. Sorry.

Oft lernt man auch einfach durch Herumprobieren statt über aktives Lernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr.
Seite 2 von 2     12   

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