Funktions Rückgaben

Previous topic - Next topic

Markus

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

kanonet

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

D2O

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

Markus

@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.

Kitty Hello

GETSPRITESIZE -> wenn 0, dann Ladefehler.

Markus

@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 .

Schranz0r

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 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Markus

@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")

Schranz0r

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 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Markus

@Schranz0r
das ist mir eigentlich egal, das muß Gernot selber entscheiden.
was im Moment am wichtigsten ist.

Schranz0r

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 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard