Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rückgabewert der Funktion undefiniert (https://www.delphipraxis.net/135200-rueckgabewert-der-funktion-undefiniert.html)

Apollonius 6. Jun 2009 16:16

Re: Rückgabewert der Funktion undefiniert
 
@Satty: Es ist gar nicht sicher, dass Result überhaupt Speicherplatz zugewiesen wird. Es kann sein, dass am Ende einfach der Wert zurückgegeben wird, der zufällig in AL stand.

trebor90 6. Jun 2009 16:20

Re: Rückgabewert der Funktion undefiniert
 
Hey!

Habe das erstmal umgesetzt, was jfheins sagte ...
Und auch das von Satty67 verstanden ... Das heißt, Delphi rechnet damit, dass die Liste leer sein kann?
Narrja, es ist ja gut und auch logisch, dass bei leerer Liste keine Schleife durchlaufen wird, denn ich brauche ja nichts abgleichen oder nicht hinzufügen, wenn sie eh leer ist ...

Ob Boolean immer auf false initialisiert wird - festlegen möchte ich mich nicht. Aber ich habe es überprüft bei meiner Funktion und er initialiserte mit false ...
Außerdem ist es ja logisch: Eine Variable wird immer mit dem kleinsten Wert belegt (Integer=0) und false ist nun mal kleiner als true (denn 0<1). Daher bestimmt eben ...

Aber obwohl ich nun meinen Quellcode geändert habe, geht es immer noch nicht. Die Fehlermeldung ist zwar weg, aber er fügt dennoch Dateien mehrmals hinzu, wenn ich z.B. Datei 1-15 im ersten Durchlauf Drage und Drope und dann eben Datei 8-11 wieder hineinmache, dann fügt er sie gnadenlos hinzu ohne zu merken, dass sie ja schon im ersten Durchlauf hinzugefügt wurden ...

PS: Ich verstehe nats Beitrag nicht ... Besser gesagt den Quellcode??? In einer Wertzuweisung ein Vergleich - hä? Und meint er mit 'vorhanden' etwa 'schonda'?

quendolineDD 6. Jun 2009 16:25

Re: Rückgabewert der Funktion undefiniert
 
Um meine Aussage zu verdeutlichen: Ich meine, das zum einen das von Satty67 festgestellte. Es gibt Fälle, in denen die Schleife nicht durchlaufen wird und der Rückgabewert der Funktion gänzlich ungesetzt ist und wie von Apollonius beschrieben ein undefinierter Wert aus dem Arbeitsspeicher gelesen wird.

Es wird nur False mit 0 definiert. True ist alles <> 0. Daher gibt es auch Unterschiede im BOOLEAN und dem von der WinAPI verwendeten BOOL (welches glaub ich LONGBOOL ist).

trebor90 6. Jun 2009 16:32

Re: Rückgabewert der Funktion undefiniert
 
Habe ja schon geschrieben, egal wie boolean initialisiert wird, in meiner Funktion - habe ich getestet - wird False ausgegeben, wenn nichts definiert wird ...

Bitte nochmal auf meinen vorigen Beitrag eingehen ...

nat 6. Jun 2009 16:38

Re: Rückgabewert der Funktion undefiniert
 
ja, das was ich oben geschrieben habe kannst du als ersatz für deine schonda funktion nehmen.
wenn du jetzt sowas wie
Delphi-Quellcode:
vorhanden := schonda(dateiname);
hast, dann
kannste das durch
Delphi-Quellcode:
vorhanden := Listbox1.Items.IndexOf(dateiname) >= 0;
ersetzen.
guck dir in der hilfe ma an, was indexof macht.
und das mit den vergleichen in einer zuweisung: ein vergleich ergibt doch einen boolschen wert.
diesen kannste natürlich auch einer boolschen variable zuweisen!

trebor90 6. Jun 2009 16:48

Re: Rückgabewert der Funktion undefiniert
 
IndexOf in der hilfe bei was gucken ...?
TListItems oder wo oder was ....???

thkerkmann 6. Jun 2009 17:34

Re: Rückgabewert der Funktion undefiniert
 
Hi

TListbox.Items ist vom Typ TStrings.

und TStrings hat eine Methode IndexOf.....

Gruss

nat 6. Jun 2009 18:02

Re: Rückgabewert der Funktion undefiniert
 
man wär auch hingekommen wenn man die hilfe zu TListbox aufgerufen hätte, da auf items geklickt hätte und dann halt auf indexof.
irgendwie logisch, oder? :lol:

trebor90 6. Jun 2009 22:10

Re: Rückgabewert der Funktion undefiniert
 
Ich habs jetzt begriffen

Delphi-Quellcode:
//Neue Dateien in Listbox1
for r:=1 to a do
  if listbox1.items.indexof(listbox4.items[r-1])=-1 then
    listbox1.items.add(listbox4.items[r-1]);
aber es funktioniert immer noch nicht; keine Fehlermeldung aber er fügt gnadenlos hinzu ...

Ich habe übrigens mal mit ner anderen Listbox geprüft; es ist immer -1 ... D.h. da geht wohl was nicht so, wie es soll .........

nat 6. Jun 2009 23:17

Re: Rückgabewert der Funktion undefiniert
 
poste ma n bisserl mehr quelltext!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 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 by Thomas Breitkreuz