![]() |
boolean function
Hallo,
ich hätte eine Frage zu einer boolean Funktion:
Delphi-Quellcode:
wenn ich diese Funktion nun über
function stattgefunden(spielnummer:integer):boolean;
Delphi-Quellcode:
aufrufe und in edit1.text z.B. 40 eingebe (wo false rauskommen muss), dann funktioniert das auf diese Weise, also er gibt mir wie vorgesehen false aus.
if stattgefunden(strtoint(edit1.text))=true then
Wenn ich die Funktion aber über beispielsweise:
Delphi-Quellcode:
aufrufe (wo ja false rauskommen müsste), gibt er mir true aus für die selbe Funktion!?
if stattgefunden(40)=true then
Oder allgemeiner:
Delphi-Quellcode:
gibt mir ebenfalls für jeden (!) Wert true raus.
for e:=0 to 100 do
begin if stattgefunden(e)=true then Woran liegt das? Würde mich sehr über Hilfe freuen. Vielen Dank. |
Re: boolean function
erstmal prüft man nicht auf =true
(welches aber eher die entgegengesetzte Auswirkung haben kann und ein True eventuell nicht als True erkannt wird) und dann: Wie sieht "stattgefunden" aus, bzw. was macht dieses? |
Re: boolean function
In einer IF-Abfrage solltest du nie (solang nicht expliziet benötigt) auf True oder False prüfen.
Dazu kann ich dir nur ![]() Hier im Forum sollte aber auch einiges zu finden sein. |
Re: boolean function
Vielen Dank schonmal für die Antworten. Werd mir das Tutorial mal ansehen. Die Funktion sieht so aus:
Delphi-Quellcode:
function stattgefunden(spielnummer:integer):boolean;
var test1,test2:string; begin spielnr; test1:='mA-VL Ww'+' '+(spiel); test2:=copy(editS,(spielpos)+5,12); if test2 = test1 then stattgefunden:=false else stattgefunden:=true; end; /edit: also, wenn ich bei der Abfrage "= true" weglasse, funktioniert es aber auch nicht. Oder bin ich zu doof, dass ich die Lösung in dem Minitutorial übersehe? |
Re: boolean function
Hallo,
anstelle "stattgefunden := ..." solltest du Result := ... verwenden. |
Re: boolean function
Sollte aber nichts ändern. Er hat eben noch die alte Pascal Syntax verwendet.
|
Re: boolean function
Also ich hab mal folgenden Lösungsvorschlag ausprobiert, und siehe da, er scheint zu klappen. Allerdings frag ich mich, wieso es vorher nicht geklappt hat, obwohl es doch eigentlich der selbe code nur eben auf eine Zeile verkürzt ist, wenn ich das Tutorial richtig verstehe?
Delphi-Quellcode:
function stattgefunden(spielnummer:integer):boolean;
var test1,test2:string; begin spielnr; test1:='mA-VL Ww'+' '+(spiel); test2:=copy(editS,(spielpos)+5,12); stattgefunden:=test2=test1; end; /edit: Nein, das war auch nicht die Lösung :( Das Problem scheint mir in den Parametern zu liegen, kann das sein? Weil wie gesagt, wenn ich stattgefunden(40) abfrage, also direkt von einer Zahl, dann gibt er mir immer true raus. Wenn ich stattgefunden (strtoint(edit1.text)) abfrage und dann in edit1.text "40" eingebe gibt er mir aber (so wie es sein soll) false raus ... |
Re: boolean function
zuviele globale Variablen
und spielnummer wird doch garnicht verwendet? |
Re: boolean function
Ja, das war es, himitsu. Also lags wirklich an den Parametern.
Vielen Dank an alle! =) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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