[GELÖST] Eine MenuButton Erstell Funktion erstellen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Xeres

Moderator

BeitragDo, Aug 25, 2011 1:55
Antworten mit Zitat
Benutzer-Profile anzeigen
CO2 hat Folgendes geschrieben:
BMax kann das auch ohne das es dahinter steht!
Jain. Wenn du mit SuperStrict arbeitest, musst du alle Variablen & Funktionen ordentlich deklarieren und ohne :Int kann die Funktion auch keinen Wert zurückgeben.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragDo, Aug 25, 2011 3:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, bin noch zu sehr an BB gewöhnt Wink

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Midimaster

BeitragDo, Aug 25, 2011 8:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@CO2:

Du sprichst es noch viel deutlicher aus, was mich an deinen Antworten zu deinen Fehlern so gestört hat:

Zitat:
..., ich habe sie gerechtfertigt!


An den Fehler gibt es nichts zu "rechtfertigen"! Das ist es ja. Und dabei überprüfst Du noch nicht mal, den Gehalt der Antworten der Anderen.

Erst jetzt, wo der Ton schärfer wird, merkt man an den Antworten, dass Du erstmals darüber nachdenkst.

Beispiel: Das INT hinter der Funktion! Es waren, glaube ich, 5 Beiträge und mein Flame nötig, bevor Du mal getestet hast, dass es so wie Du meinst, eben nicht richtig ist!

Oder 2.Beispiel: MouseX() muss weder GLOBAL gespeichert werden, noch muss es in deine Funktion übergeben werden. MouseX() steht Dir auch innerhalb der Funktion zur Verfügung! Und daran merke ich, dass Du dir die Beiträge der anderen kaum durcharbeitest.


Mit dem "Ausbessern" hast Du mich falsch verstanden. Ich denke dabei nicht daran, dass Du die alten Beiträge ausbesserst. Nein, auf keinen Fall, die sollen schon so bleiben, wie sie sind. Du solltest nur auf die Anderen hören und deinen Programmierstil ändern. Und da scheint es (deinen Antworten folgend) keinerlei Einsicht in Besserung zu geben.

Ich möchte echt keinen Streit mit Dir! Letzendlich wollen wir doch nur, dass Du ordentlich programmierst!

Denke doch einfach bei deinen Antworten etwas mehr darüber nach, was du zukünftig anders machen willst, als darüber, wie man den Fehler rechtfertigen könnte!

So, nun "Schwamm drüber"...
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

CO2

ehemals "SirMO"

BeitragDo, Aug 25, 2011 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt mach mal halblang, ok? Ich habe es aus dem einen grund nicht geändert: Deine Beiträge (und die der anderen) wurden gepostet, nachdem ich den Code hier eingetragen habe.
Zitat:
Und da scheint es (deinen Antworten folgend) keinerlei Einsicht in Besserung zu geben.
WEIL ICH DEN CODE NOCH NIRGENDSWO VERWENDE/STEHEN HABE!!! Mein Gott -.-
Ich will ja auch ordentlich programmieren, nur, wenn ich keine zeit habe und das Problem schnell behoben haben will, dann "programmiere" ich den code auch erst hier im forum, und nicht in der IDE und kopiere ihn dann hier rein. Das ist der Grund, warum die Fehler noch da sind. Wenn ich das in die IDE eintrage, werde ich natürlich an eure Antworten denken.
Zu meinen Antworten: Ich wollte schlicht und einfach Feedback geben.

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

DaysShadow

BeitragDo, Aug 25, 2011 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann mach es anständig und teste deinen Code bevor du ihn hier rein stellst.
Von "Schnell dahingeschriebener Code" kann niemand wissen, dass du ihn nicht ausgeführt hast.
Allgemein scheinst du nicht besonders erpicht darauf zu sein selbst was auf die Beine zu stellen, du fragst wegen jedem Hickhack nach und patzt dann noch mit CaptnCapslock zurück.

Ich weiß, dass das die Beginners-Corner ist, aber mal ehrlich, wie lange probierst du selbst an einem Problem bevor du es hier als Frage einstellst? 5 Minuten und dann ist die Luft raus oder wie?

Und Anstand scheinst du auch keinen zu haben Wink "Bei dem Jungen fällt mir nichts mehr ein"
Blessed is the mind too small for doubt

BladeRunner

Moderator

BeitragDo, Aug 25, 2011 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Wer konsequent die Hand schlägt die ihn füttert muss sich nicht wundern wenn er eines Tages verhungert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

CO2

ehemals "SirMO"

BeitragDo, Aug 25, 2011 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@ DaysShadow: Zitat:
Und Anstand scheinst du auch keinen zu haben "Bei dem Jungen fällt mir nichts mehr ein"
Aber ich muss mir das von ihm sagen lassen oder was und darf nix dagegen sagen? Am besten lass ich mir in zukunft alles gefallen... Rolling Eyes
Zitat:
5 Minuten und dann ist die Luft raus oder wie?
Ähh nee, das hier war ne außnahme, da ich den Code dringend brauchte, bei allen anderen Problemen habe ich mindestens 2 Tage am Code rumgedoktert (siehe mein Problem beim Datenzusammenfasser, der Code war nicht schnell dahingeschrieben...)

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragDo, Aug 25, 2011 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
CO2 hat Folgendes geschrieben:
Aber ich muss mir das von ihm sagen lassen [...]?
Ja.
Wenn du dich missverständlich ausdrückst (besonders nachdem du Hilfe erhalten hast, aber scheinbar ignorierst) kannst du das ganz Zivil erklären, ohne große Aufregung. Text ist halt nicht so nuanciert wie Sprache, da missversteht man sich schnell mal.
Die beste Reaktion ist immer nochmal zu lesen, was eigentlich gemeint sein könnte, zu realisieren, das man selbst der Trottel war, und dann freundlich & sachlich zu antworten. Sich "was gefallen lassen" zu haben kratzt am Ego - aber sonst niemanden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragDo, Aug 25, 2011 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok,
Hiermit entschuldige ich mich bei dir, Midimaster

@ Xeres:
Ok, ich muss eingestehen: Wenn ich mir das so durchlese hast du Recht, aber sage mir eins (das ist es auch was mich die ganze zeit stört...) Wie und wann habe ich die hilfe anderer ignoriert? Das ist es, warum ich son bisschen pampig geworden bin. Ich habe doch die Fehler eingesehen und verbessert und andauernt ließt man hier ich hätte die hilfe der anderen ignoriert. Hier der jetzige Code, der auch so in meinem Programm benutzt wird:
BlitzMax: [AUSKLAPPEN]
Function CreateAndUpdateButton:Int( ButtonNormal:TImage, ButtonMouseOn:TImage, Posx:Int, Posy:Int)
Local SizeX:Int , SizeY:Int
SizeX=ImageWidth(ButtonNormal)
SizeY=ImageHeight(ButtonNormal)

If MouseX() >= Posx And MouseX() <= (SizeX+PosX) And MouseyPos >= Posy And MouseyPos <= (SizeY + PosY)
DrawImage ButtonMouseOn, Posx, Posy
If MouseHit(1)
Return 1
EndIf
Else
DrawImage ButtonNormal, Posx, Posy
EndIf
Return 0
End Function
(Dankeschön für die Hilfe, Midimaster!) Und bevor jmd sagt, ich hätte den Code nicht gelesen und würde einfach den erstbesten Code nehmen, hier eine erklärung aller zeilen:
1. Zeile: Funktionsname & Parameter werden deklariert
2. Zeile: 2 weitere Variable (sizeX und sizeY) werden deklariert, ihnen wird in zeile 3 und 4 die höhe bzw. die breite des bildes zugewiesen
5. Zeile: If abfrage, welche testet, ob die MouseX() und MouseY() Koordinate auf dem Button ist, Arrow Wenn ja (Zeile 6 - 9), dann soll die Funktion das zweite bild malen und weiterführend testen, ob der linke mousebutton betätigt wurde, ist dies der fall, soll die Funktion "1" zurückgeben Arrow Wenn nein (Zeile 10 - 12), soll sie das normale bild wieder anzeigen.

So, ich hoffe das macht jetzt nicht schon wieder den eindruck, ich würde irgentwelche Vorschläge ignorieren.

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragDo, Aug 25, 2011 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Bin es noch aus BB gewohnt, dort waren Bilder immer Ints Very Happy
[...]
Verstehe ich nicht... Die Funktion soll doch einen Int zurückgeben [...]
1. Du bist Int handles gewöhnt - hier fehlt der Teil mit "aber wenn das mit Strict anders läuft, mache ich das zukünftig anders". Ansonsten könnte man es so interpretieren, das du ganz freundlich einen wichtigen Hinweis ablehnst.
Dann untermauerst du diese Möglichkeit mit einer Aussage, die du nicht treffen würdest, wenn du es mit Strict probiert hättest.
Und dann gräbst du dich weiter ein:
Zitat:
Der Code war schnell hingeschrieben
Wie viel liegt dir an der Hilfe, wenn du dir keine Zeit dafür nimmst? Wie Midimaster schon schrieb "An den Fehler gibt es nichts zu "rechtfertigen"!"
Fehler sind falsch - wenn du nicht gute Gründe hast, es genau so und nicht anders zu machen, gibt es deinerseits nichts hinzu zu fügen. Antworte inhaltlich, wenn du die Zeit zum Umsetzten hattest - dann haben sich ggf. Fragen schon selbst beantwortet.

Und zum eigentlichen Thema:
Du kannst auf die Breite/Höhe direkt zugreifen, falls du sie nicht zwischenspeichern / über Funktionen erhalten willst:
Code: [AUSKLAPPEN]
ButtonNormal.width
ButtonNormal.height

Das Zeug mit der Maus gehört immer noch aus der Funktion - mindestens der Mausklick, denn der wird ebenso wie in BB aus dem Buffer gelöscht und sollte daher Global gespeichert werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

skey-z

BeitragDo, Aug 25, 2011 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht noch mal als Tipp, auch wenn ich selber noch nicht lange mit BMax unterwegs bin habe ich bei deinem ersten Eintrag direkt an Types und OOP gedacht.

Ich würde es folgendermaßen aufbauen
BlitzMax: [AUSKLAPPEN]

SuperStrict

Type TButton

'Buttonliste erstellen
Global _butList:TList = CreateList()
Field _butLink:TLink

Method New()
_butLink = _butList.AddLast(Self)
End Method

Method Remove()
_butLink.Remove
End Method

'Button Eigenschaften
Field _butX:Int, _butY:Int
Field _butSizeX:Int, _butSizeY:Int
Field _butName:String

Field _butOnMouseOver:Int = False

Field _butEvent:Int

'Button erstellen
Function Create:TButton(img:TImage, x:Int, y:Int, name:String, event:Int)
Local but:TButton = New TButton
but._butX = x
but._butY = y
but._butSizeX = ImageWidth(img)
but._butSizeY = ImageHeight(img)
but._butName = name
but._butEvent = event
End Function

'Button Updaten
Function updateButton:Int(mx:Int, my:Int, mh1:Int)

For Local but:TButton = EachIn TButton._butList
but._butOnMouseOver = False

'Maus auf Überlappung prüfen
If (mx > but._butX) And (mx < but._butX + but._butSizeX) Then
If (my > but._butY) And (my < but._butY + but._butSizeY) Then
but._butOnMouseOver = True
Return but._butEvent
EndIf
EndIf
Next
End Function

'Button zeichnen
Function drawButton(img:TImage)
For Local but:TButton = EachIn TButton._butList
DrawImage img, but._butX, but._butY, but._butOnMouseOver 'Animiertes Bild hat 2 Frames(on/off)
Next
End Function
End Type


So das mal als kleiner Anreiz zur sauberen Programmierung, Erstellen, Aktualisieren und Zeichnen, sowie das Löschen würde ich immer deutlich trennen, Aktualisieren und Zeichnen könnte man noch zusammenfassen, aber Erstellen und Aktualieseren würde ich niemals zusammen in einer Funktion verwenden, selbt in BB nicht.
So kannst du beim Erstellen ein Objekt(hier TButton) und beim Aktualisieren ein Integer zurückgeben und zb. im Hauptprogramm speichern, falls due einen direkten zugriff über lokale Variablen haben möchtest, was meist sehr sinvoll ist

Des Weiteren solltest du dir mal das OOP-Tutorial von Jolinah hier im Forum anschauen, das ist finde ich gerade für absolute Noobs, wie ich es auch mal wahr sehr gut und verständlich geschrieben


Und naoch mal zum Offtopic
Zitat:
@ Xeres:
Ok, ich muss eingestehen: Wenn ich mir das so durchlese hast du Recht, aber sage mir eins (das ist es auch was mich die ganze zeit stört...) Wie und wann habe ich die hilfe anderer ignoriert? Das ist es, warum ich son bisschen pampig geworden bin. Ich habe doch die Fehler eingesehen und verbessert und andauernt ließt man hier ich hätte die hilfe der anderen ignoriert


Da kann ich dir leider einige deiner Themen nennen, wie oft haben wir schon versucht dir zu helfen und du hast es ignoriert, bzw. penetrant auf deiner Meinung bestanden, aber hacken wir es ab.

[EDIT]
gerade noch mal ausgeführt und ein paar kleine Fehler beseitigt, der Compiler gibt nun keine Fehler mehr aus, falls jemand in der Zwischenzeit was dazu schreibt.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

CO2

ehemals "SirMO"

BeitragDo, Aug 25, 2011 23:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo erstmal,
@ Xeres:
Ich werde es in Zukunft anders machen!
Zitat:
Wie viel liegt dir an der Hilfe, wenn du dir keine Zeit dafür nimmst?
Der Code im ersten post war schnell dahingeschrieben, da es sonst wieder heißen würde "er sucht doch nur einen blöden der ihm die Funktion schreibt" und das wollte ich schlicht und einfach nicht, zumal das nicht stimmt, falls jetzt wieder dazu eine diskussion ausbricht. Der zweite von mir gepostete Code war eigentlich genau das selbe, ich habe nur die sachen eingebaut die ihr mir gesagt habt, habe ihn jedoch nie ausgeführt oder getestet. Ich entschuldige mich bei allen, die das gefühl hatten, ich hätte deren vorschläge ignoriert, ich hatte nie die absicht sie zu ignorieren und immer versucht sie umzusetzen. Das mit Midimaster, das war vom programmierstil her, mir ging es aber primär um die Funktion, den Programmierstil hätte ich später, wenn die funktion sauber und richtig läuft, angepasst. Schlussendlich waren die Codes quasi nur das Schema wie ich die vorschläge umsetzen würde.

Zitat:
Du kannst auf die Breite/Höhe direkt zugreifen, falls du sie nicht zwischenspeichern / über Funktionen erhalten willst:
Danke für den hinweis, jedoch wäre das dann doch kein sauberer programmierstil mehr, oder? Wink

Zitat:
Das Zeug mit der Maus gehört immer noch aus der Funktion - mindestens der Mausklick, denn der wird ebenso wie in BB aus dem Buffer gelöscht und sollte daher Global gespeichert werden.
dazu einmal folgendes: (Midimaster) Zitat:
Die Mouse() muss nicht übergeben werden. Sie steht auch in der Funktion zur Verfügung.
(ich)Zitat:
Also, eigentlich werden MouseX() und MouseY() in einer Globalen Variable gespeichert, (...). Deshalb benutze ich die Mouse() befehle auch nicht in der Funktion...

daraufhin Midimaster Zitat:
Ich glaub, du hast es immer noch nicht gerafft! Glaub ich's noch?



@ skey-z: Ist der Type denn auch nutzbar, wenn dieser in einer externen Datei steht? Sollte dies nicht der Fall sein, so werde ich die Funktion benutzen (Nein, ich habe nicht den Vorschlag ignoriert, ich habe eine frage gestellt, sowie die konsequenz einer negativen antwort aufgeschrieben Wink )

Zitat:
Da kann ich dir leider einige deiner Themen nennen, wie oft haben wir schon versucht dir zu helfen und du hast es ignoriert, bzw. penetrant auf deiner Meinung bestanden, aber hacken wir es ab.
Wenn du damit nun die SketchUp sache meinst, dann möchte ich dich daran erinnern, wie man sich als anfänger fühlt: Man hat die Programmiersprache gefunden, die 3D problemlos darstellen kann und hat 1000 Ideen das auch zu nutzen. Möchte man also schnell ergebnisse erzielen und einen schlechten 3D editor nutzen, oder sich erst noch ein halbes jahr mit einem richtigen 3D Modeller auseinandersetzen (wobei man schon ein halbes jahr gebraucht hat, die sprache zu lernen)? - Bei mir war auf jeden fall ersteres der fall, habe jedoch nun meine Meinung geändert, wie im Worklog zu WoF zu lesen ist.

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

PhillipK

BeitragFr, Aug 26, 2011 5:11
Antworten mit Zitat
Benutzer-Profile anzeigen
CO2 hat Folgendes geschrieben:
Der Code im ersten post war schnell dahingeschrieben, da es sonst wieder heißen würde "er sucht doch nur einen blöden der ihm die Funktion schreibt" und das wollte ich schlicht und einfach nicht, zumal das nicht stimmt, falls jetzt wieder dazu eine diskussion ausbricht. Der zweite von mir gepostete Code war eigentlich genau das selbe, ich habe nur die sachen eingebaut die ihr mir gesagt habt, habe ihn jedoch nie ausgeführt oder getestet


Olla, CO2!

Huch, hier ist ja ganz schön was ausgebrochen.

Ich bin auch immer ein wenig unsicher, ob ich mich "lang genug" mit meinem Problem beschäftigt habe, ob ich schon meinen ergeiz aufgeben und einfach mal hifle suchen sollte.
Meist schreibe ich grade bei soetwas (code mal eben gedanklich hingeschrieben, nicht getestet) dabei, das es nur so getaufter "Pseudocode" ist - dazu die freunlich nachfrage, ob das inhaltlich so funktionieren kann.
Bis jetzt habe ich noch nie streß mit anderen BBP mitgliedern gehabt Smile

Wenn man allerdings einen codebatzen ohne floskeln wie 'hier mal eine Testidee (ohne gewähr)' oder 'Hier mal ein Pseudocode, der meinen gedanken umschreibt:' schreibt, kann es leicht passieren, das grade kleinere fehler oft bei Strict und Rückgaben gesucht werden, obwohl man Feedback über die Struktur möchte.
Hat man ein Problem und fügt code ein, dann denkt der normalsterbliche user, das er da mal korrektur lesen sollte. Hat man ein Problem und sucht einen Lösungsansatz, so fragt man auch eindeutig danach Smile

Noch ein kleinerer Hinweis:

"CreateAndUpdateButton" - erstmal hast du die Funktion noch nicht umbenannt (jaja, kleineres übel, aber schau in 4monaten auf deinen Code, sehe die funktion und denk dir 'ahh, auskommentieren und der button ist weg' Razz) - und generell: Eine solche funktion ist nur bedingt sinnvoll. Update ist immer etwas, was regelmäßig, wahrscheinlich einmal pro frame aufgerufen werden sollte.
Create hingegen gehört zur initialisierung.
Aber das scheinst du, da du in deinem letzten Codestückel TImage-objekte übergibst, ja schon gelöst zu haben.

Ach, ich wollte auch mal wieder was schreiben Very Happy
 

CO2

ehemals "SirMO"

BeitragFr, Aug 26, 2011 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, werde in zukunft immer dabei schreiben ob der Code ein sog. "pseudocode" ist, damit es nie wieder zu solch schweren missverständnissen kommt. Wink

Zitat:
kleinere fehler oft bei Strict und Rückgaben gesucht werden, obwohl man Feedback über die Struktur möchte.
- Das war der fehler meinerseits, entschuldigung dafür Wink

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

skey-z

BeitragFr, Aug 26, 2011 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
skey-z: Ist der Type denn auch nutzbar, wenn dieser in einer externen Datei steht? Sollte dies nicht der Fall sein, so werde ich die Funktion benutzen (Nein, ich habe nicht den Vorschlag ignoriert, ich habe eine frage gestellt, sowie die konsequenz einer negativen antwort aufgeschrieben Wink )


Natürlich ist der Code voll nutzbar, auch wenn du ihn in eine Datei auslagerst und per include in die Hauptdatei einbindest.

Warum auch nicht, ein include wird beim vorkompilieren einfach in den Hauptcode kopiert und danach ausgeführt.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group