Seite 1 von 2

Wozu die ganzen If-Abfragen überhaupt?

Verfasst: 27.03.2005 18:24
von Gamer
Wozu muss man immer abfragen ob z.B. ein Fenster oder Gadgetliste erstellt werden konnte?

Es ist doch eher unwahrscheinlich das es NICHT erstellt wurde oder?

Verfasst: 27.03.2005 18:37
von zigapeda
Musst du nicht, du kannst ein fenster auch so öffnen:

Code: Alles auswählen

openWindow(0,20,20,200,200,#pb_window_systemmenu,"test1")
dass geht auch bei allen anderen sachen. Einzieger nachteil ist wenn dein programm auf einem Anderen computer nicht läuft weißt du (bzw. der user) nicht woran das liegt.

Verfasst: 27.03.2005 18:37
von vonTurnundTaxis
Das ist natürlich unwahrscheinlich... Aber sicher ist sicher!

Edit: zigapeda war schneller...

Verfasst: 27.03.2005 18:55
von NicTheQuick
Vor allem in der kommerziellen Produktion von Anwendungen oder Spielen ist es unvermeidlich solche Abfragen überall einzubauen.
Wenn dann mal etwas nicht funktioniert und du es anständig programmiert hast und evtl. noch einen Log-Funktion eingebaut hast, kannst du direkt zurückverfolgen, wo der Fehler liegt. Auch ein Beta-Tester muss mit irgendwelchen Fehlercodes dir ja auch zeigen können, wo was pasiert ist, damit du den Fehler ausmerzen (<- schreibt man das so?) kannst.

Ich schreibe normalerweise selbst bei den unwahrscheinlichsten Fällen lieber noch eine If-Abfrage ein oder bediene mich der OnError-Lib, die mir bisher schon gute Dienste erwiesen hat.

Aber letztendlich ist es deine Sache, ob du dir Schreibarbeit sparen willst, aber mehr Fehler suchen willst oder ob du mehr schreibst und später weniger suchen musst.

Verfasst: 27.03.2005 19:03
von Gamer
Bei Spielen sehe ich es ja ein wegen DX7 usw.

Aber bei OpenWindow() wird meist immer nur ein "If" ohne irgendwelche Requester gemacht, sprich selbst wenn ein Fehler auftritt, weiß der User dann nicht warum...

Verfasst: 27.03.2005 19:05
von zigapeda
Ich glaube

Code: Alles auswählen

If openWindow(blablabla) : End : EndIf
ist das gleiche wie

Code: Alles auswählen

If openWindow(blablabla = 0 : End : EndIf

Verfasst: 27.03.2005 19:14
von ts-soft
zigapeda hat geschrieben:Ich glaube

Code: Alles auswählen

If openWindow(blablabla) : End : EndIf
ist das gleiche wie

Code: Alles auswählen

If openWindow(blablabla = 0 : End : EndIf
Falsch: im oberen Beispiel wird mit #TRUE bzw. > 0
und im untern Bespiel wird mit #FALSE bzw. = 0 verglichen

Verfasst: 27.03.2005 19:28
von zigapeda
Ok dann muss man hald beim unteren = 1 schreiben dann passts aber

Verfasst: 27.03.2005 19:37
von vonTurnundTaxis
Dann ist das Ganze aber nicht mehr sehr sinnvoll...
Wenn das Fenster erfolgreich erstellt wird, dann wird das Programm beendet :lol:

Verfasst: 27.03.2005 20:18
von NicTheQuick
@zigapeda:
"Gleich 1" schreiben? LOL :lol:
Erst nachdenken, dann schreiben.

Vielleicht solltest du dich mal etwas mehr mit den Rückgabewerten von den einzelnen Befehlen in PureBasuc auseinandersetzen. [c]OpenWindow()[/c] gibt bei [c]#PB_Any[/c] die PB-interne IDund bei einer festen [c]#WindowID[/c] das Handle für das erstellte Fenster zurück. Und wenn das Fenster nicht erstellt werden konnte, gibt der Befehl [c]#Null[/c] zurück.