BASIC

Author Topic: Funktions Rückgaben  (Read 3394 times)

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Funktions Rückgaben
« on: 2012-Apr-24 »
Das Funktionen einfach nur Ja/Nein zurück geben wenn sie das gemacht haben was sie sollten
finde ich nützlich. Zumindest bei den Dingern die was laden/speichern.

Wenn LoadFont einen Rückgabewert hätte :

IF LOADFONT("xxxxxxxxx.png", 1)=false then Debug "Font nicht gefunden ..."

Die Klammern sollten dann aber optional sein wenn man keinen Wert braucht.
LOADFONT "xxxxxxxxx.png", 1

Offline kanonet

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1142
    • View Profile
    • My GLBasic code archiv
Re: Funktions Rückgaben
« Reply #1 on: 2012-Apr-24 »
Siehe meine Antwort hier: http://www.glbasic.com/forum/index.php?topic=8016.msg67218#msg67218
Wobei Optimale Klammern zwar eine Idee sind... aber dann könnte man doch auch gleich DOESFILEEXIST() nutzen. ;)
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1062
    • View Profile
    • http://www.deuteriumoxid.com
Re: Funktions Rückgaben
« Reply #2 on: 2012-Apr-24 »
Nur mal als Simples Beispiel wie ich es nutze:

Code: GLBasic [Select]
// Path/Datei überprüfung

FUNCTION E_RUNTIMEERROR% : l_path$
        LOCAL l_ok
        l_ok = DOESFILEEXIST(l_path$)
        IF l_ok = FALSE
                BLACKSCREEN
                PRINT "Sorry, file "+l_path$+" not fount",10,100
                PRINT "Press any key to end",10,150
                SHOWSCREEN
                KEYWAIT
                END

        ENDIF
        RETURN l_ok
ENDFUNCTION
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Re: Funktions Rückgaben
« Reply #3 on: 2012-Apr-24 »
@kanonet
jo

@D2O
das die Datei nicht da ist,wäre ein Grund von vielen.
So in der Art ist schon nicht schlecht nur das sowas in eine Meldungsliste muß
damit man sich nicht tot klickt wenn mal ein Netzlaufwerk weg ist oder so.
Ein Programm muß sich nich unbedingt beenden , das muß man außen selber entscheiden was man macht. Hatte aber schon was dazu geschrieben
warum ich nicht für jede Funktion wieder eine eigene Funk. schreiben möchte.

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Funktions Rückgaben
« Reply #4 on: 2012-Apr-24 »
GETSPRITESIZE -> wenn 0, dann Ladefehler.

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Re: Funktions Rückgaben
« Reply #5 on: 2012-Apr-24 »
@Kitty Hello
geht auch ist aber nicht so schön anzuwenden weil man da extra zwei Variablen haben muß und den richtigen index an der Stelle. Man muß mehr schreiben und
das macht den Quelltext unübersichtlicher.
Wenn man als Beispiel 100x mal das testen würde geht man dazu über das
in eine Funktion zu packen um copy/paste zu vermeiden.

LOADFONT hat gar keinen Rückgabewert, der ist quasi noch frei.
Unnötige Klammern möchte ich aber auch vermeiden wenn jemand
der Wert nicht interessiert.

Wenn LoadFont einen freien FontIndex zurück geben würde wäre auch schön.
Hätte man dann 0= geht nicht >0 freier Index.
Index als Parameter könnte dann Optional sein.
GLBasic hat eher das Konzept wie Darkbasic das man sich selber Nummern
ausdenken muß.

Du sollst auch nur das machen was Du selber für gut & sinnvoll hältst.
Ich werfe einfach nur die Ideen im Raum .

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: Funktions Rückgaben
« Reply #6 on: 2012-Apr-24 »
Frei Fontslot -> GENFONT()

ähhhh... GLBasic wird NIEMALS wie BB, glaub es mir, rein aus Prinzip nicht ;)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Re: Funktions Rückgaben
« Reply #7 on: 2012-Apr-25 »
@Schranz0r
GenFont() steht bei mir nicht in der Hilfe  :S

Bei DarkBasic hab ich mir selber eine ID hochzähl Funktion gemacht
nur es nervt das man die erst merken und dann übergeben muß.

Kürzer ist immer besser, mehr Zeit zum Kaffee trinken.

Dein Code
Code: GLBasic [Select]
LOCAL i%=GENFONT()
LOADFONT "font.png",i%
 

Mein Code
Code: GLBasic [Select]
LOCAL i%=LOADFONT("font.png")
 

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: Funktions Rückgaben
« Reply #8 on: 2012-Apr-27 »
sry, aber wird niemals der fall sein ;)

Das Problem kannst du ganz simpel in 4 Zeilen lösen...
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Re: Funktions Rückgaben
« Reply #9 on: 2012-Apr-27 »
@Schranz0r
das ist mir eigentlich egal, das muß Gernot selber entscheiden.
was im Moment am wichtigsten ist.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: Funktions Rückgaben
« Reply #10 on: 2012-Apr-27 »
Mach dir mal keine so großen Hoffnungen :)
Bist btw. nicht der erste wo das vorgeschlagen hat.
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard