![]() |
Re: Prblem bei erstellen einer txt datei
ja hab angesehen und versuche das gerade bei mir einzubauen nur du siehst ja welche fehler da auftauchen warum auch immer...
|
Re: Prblem bei erstellen einer txt datei
Zitat:
und genau sowas fällt beim Debuggen auf :warn:
Delphi-Quellcode:
OnClose (diese Prozedur) wird aufgerufen
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin .. Close; end; Close ruft ebenfalls Diese (sich selber) auf = Endlosschleife und dann nochwas: =true oder =false nutzt man NIE zum vergleichen/prüfen die globale Objektvariable (hier Form1) nutzt man NIE innerhalb des Objektes selber |
Re: Prblem bei erstellen einer txt datei
Zitat:
|
Re: Prblem bei erstellen einer txt datei
was nutze ich denn anstelle von =true = false?
gut DANKE für den tipp mit der endlosschleife geht ohne die :oops: und das programm läuft jetzt auch so wie es laufen soll...DANKE AN ALLE :thumb: |
Re: Prblem bei erstellen einer txt datei
michael habe bei mir auch was geändert um das an mein programm anzupassen...hab aber etwas falsch gemacht !
hatte ausversehen endlosschleife drin.... :oops: |
Re: Prblem bei erstellen einer txt datei
Weil du wahrscheinlich eine Endlosschleife programmiert hast :)
Man macht keine for-Schleifen über Listen, deren Elemente in der for-Schleife gelöscht werden. Irgendwann greift die Laufvariable ins Leere. Das löst man besser mit while. (So als Anmerkung) :warn: |
Re: Prblem bei erstellen einer txt datei
Zitat:
Delphi-Quellcode:
Grüße, Matze
// true
if CheckListBox1.Checked[i] then // false if not CheckListBox1.Checked[i] then |
Re: Prblem bei erstellen einer txt datei
Zitat:
|
Re: Prblem bei erstellen einer txt datei
Will man alle Einträge einer Liste löschen, ist while ideal:
Delphi-Quellcode:
Will man nur Einträge löschen, die einer bestimmten Bedingung genügen dann ergäbe eine for-Schleife (im Mindestfall) falsche Ergebnisse.
while Liste.Count > 0 do Liste.Delete(0);
Beispiel:
Delphi-Quellcode:
Angenommen, die Liste hat 5 Einträge (0..4) und Eintrag 2 erfüllt die Bedingung. Dann würde er gelöscht und Eintrag 3 würde zu 2 und 4 zu 3. Die Laufvariable i wird aber erhöht und prüft als nächstes Liste[3], die ja vorher die 4 war. Die eigentliche ursprüngliche 3 wird gar nicht mehr geprüft, sondern "übersprungen".
for i:=0 to Liste.Count-1 do begin
if Liste[i]=Bedingung then Liste.Delete(i); end; Das sind so die kleinen Stolpersteine, die einen dann ins Grübeln bringen :) |
Re: Prblem bei erstellen einer txt datei
@Progman: darum läßt man in soeinem Fall die Schleife rückwärts laufen,
so wie es auch schon gemacht wurde.
Delphi-Quellcode:
Dann gibt es dieses Problem auch nicht.
for i := Pred(CheckListBox1.Items.Count) downto 0 do
Beim Vorwärtslaufen gibt es 2 Probleme: - Delphi merkt sich das Ende der schleife und fragt dieses nur einmal ab drum kann man da auch über das Listenende hinausgeraten, wenn die Liste kürzer wird - wird etwas gelöscht, dann wird der nächste Index übersprungen, da er ja nun den selben Index bekommen hat |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr. |
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 by Thomas Breitkreuz