AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

boolean function

Ein Thema von Wolfsherz · begonnen am 17. Dez 2009 · letzter Beitrag vom 17. Dez 2009
Antwort Antwort
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#1

boolean function

  Alt 17. Dez 2009, 22:11
Hallo,


ich hätte eine Frage zu einer boolean Funktion:

function stattgefunden(spielnummer:integer):boolean; wenn ich diese Funktion nun über

  if stattgefunden(strtoint(edit1.text))=true then 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.


Wenn ich die Funktion aber über beispielsweise:

  if stattgefunden(40)=true then aufrufe (wo ja false rauskommen müsste), gibt er mir true aus für die selbe Funktion!?


Oder allgemeiner:

Delphi-Quellcode:
  for e:=0 to 100 do
    begin
      if stattgefunden(e)=true then
gibt mir ebenfalls für jeden (!) Wert true raus.


Woran liegt das? Würde mich sehr über Hilfe freuen.

Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#2

Re: boolean function

  Alt 17. Dez 2009, 22:16
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#3

Re: boolean function

  Alt 17. Dez 2009, 22:17
In einer IF-Abfrage solltest du nie (solang nicht expliziet benötigt) auf True oder False prüfen.

Dazu kann ich dir nur dieses Minitutorial ans Herz legen.
Hier im Forum sollte aber auch einiges zu finden sein.
  Mit Zitat antworten Zitat
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#4

Re: boolean function

  Alt 17. Dez 2009, 22:20
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?
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: boolean function

  Alt 17. Dez 2009, 22:27
Hallo,

anstelle "stattgefunden := ..." solltest du
Result := ...
verwenden.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: boolean function

  Alt 17. Dez 2009, 22:29
Sollte aber nichts ändern. Er hat eben noch die alte Pascal Syntax verwendet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#7

Re: boolean function

  Alt 17. Dez 2009, 22:30
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#8

Re: boolean function

  Alt 17. Dez 2009, 22:43
zuviele globale Variablen

und spielnummer wird doch garnicht verwendet?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#9

Re: boolean function

  Alt 17. Dez 2009, 23:45
Ja, das war es, himitsu. Also lags wirklich an den Parametern.

Vielen Dank an alle! =)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.
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