Wozu die ganzen If-Abfragen überhaupt?

Anfängerfragen zum Programmieren mit PureBasic.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Wozu die ganzen If-Abfragen überhaupt?

Beitrag 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?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Das ist natürlich unwahrscheinlich... Aber sicher ist sicher!

Edit: zigapeda war schneller...
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag 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...
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Ok dann muss man hald beim unteren = 1 schreiben dann passts aber
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Dann ist das Ganze aber nicht mehr sehr sinnvoll...
Wenn das Fenster erfolgreich erstellt wird, dann wird das Programm beendet :lol:
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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.
Antworten