Einzelnen Beitrag anzeigen

trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#7

Re: Rückgabewert der Funktion undefiniert

  Alt 6. Jun 2009, 14:50
Hi!

@quendolineDD:
<< 1.) Wenn die Schleife nicht durchlaufen wird, wird kein Result gesetzt.
2.) Denk mal darüber nach, was passiert, wenn 0 Elemente in der Listbox sind. Smile
3.) Außerdem gab es doch bei Listbox die Funktion .IndexOf[].

Edit:
4.) Dann würde ich lieber eine while- oder repeat-Schleife nehmen, anstatt mit einem break zu arbeiten.
5.) Und das false kannst du ja schon ganz am Anfang setzen und nur noch bei einem Fund den Rückgabewert auf true ändern.
>>

Tut mir Leid, dass ich deinen Beitrag so zerpflücken und abändern muss, aber ich habe ansonsten keine Chance, darauf geregelt zu antworten ...:
1.) Warum sollte die Schleife nicht durchlaufen werden? Sie wir immer durchlaufen. (Die Funktion wird nicht nur einmal bei Drag'n'Drop ausgeführt, sondern für jede einzelne Datei).

Delphi-Quellcode:
//Fügt Datei aus Listbox4 hinzu, wenn Schonda=false also Datei noch nicht da; prüft jede einzelne Datei mit jedem einzelnen Element
for r:=1 to (listbox1.items.count) do
  if schonda(listbox4.items[r-1])=false then
    listbox1.items.add(listbox4.items[r-1]);
2.) Was ist daran so schlimm, wenn 0 Elemente vorhanden sind? Dann durchläuft er die Schleife nicht. Und das ist ja nicht schlimm. Sind ja eh keine Elemente da ...
3.) Ob ich nun (s=listbox1.items[i-1]) oder (listbox1.items.indexof[...]=listbox1.items[i-1]) ist doch egal ...
4.) Ist doch egal ob ich breake oder ob ich mit einer geregelten Bedingung eine andere Wiederholungsstruktur verlasse ...
5.) Das false brauche ich nicht zu setzen, da boolesche Variablen etc. nicht initialisert werden müssen; sie haben als Startwert immer false ...

Mir geht es auch weniger darum, möglichst wenig Rechenaufwand oder so einzubringen oder Die Funktion mitb anderen Befehlen schöner aussehen zu lassen ... Ich sehe das "Loch" in meiner Funktion nicht. Wenn mein Result=undefiniert sein kann, dann muss es also einen Programmierpfad geben, indem Result nicht klar definiert wird, sich also der Startwert nicht ändert. Und das verstehe ich nicht. Durch mein If-Else sage ich doch genau, entweder so oder so. Ich sage doch in einer bestimmten Bedingung nicht nichts ... Versteht ihr mich?!


Gruß - RObert
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."
  Mit Zitat antworten Zitat