Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Quentin

#1
so, habs mir spaßeshalber nach langer Pause auch noch mal installiert.
Beim Stöbern in alten Beiträgen fiel mir auf, dass viele Anhänge verschwunden sind (gelöscht durch Admin). Sind die unwiderbringlich verloren oder sind die noch in irgendeiner verborgenen Ecke zu finden?
#2
Dachte, Gernot hätte es dran gegeben und GLBasic als Open Source zur Verfügung gestellt?

Jetzt sehe ich hier eine Version 14 rumgeistern *freu*. Gleich mal probieren.
#3
... dass das deutsche Forum jetzt unter "ferner liefen" hier steht. Wo sind eigentlich die ganzen restlichen Topics wie Tutorials usw. verblieben? Endgültig weg?
#4
mir ist aufgefallen, daß ich Funktionen aus DLLs innerhalb von Funktionen in TYPEs nur dann nutzen kann, wenn ich die entsprechenden DECLARE-Anweisungen auch innerhalb von TYPE .. ENDTYPE setze. Ansonsten bekomme ich Fehlermeldungen wegen fehlenden Deklarationen.

Beispiel:
Code (glbasic) Select

TYPE TLanguage

INLINE
DECLARE(GetUserDefaultLangID, "kernel32.dll", (void), int);
ENDINLINE

FUNCTION GetDefaultUserLang:
INLINE
return GetUserDefaultLangID();
ENDINLINE
ENDFUNCTION

ENDTYPE


LOCAL lang AS TLanguage

IF lang.GetDefaultUserLang() = 1031
STDOUT "Sprache ist Deutsch."
ELSE
STDOUT "Sprache ist ausländisch."
ENDIF

KEYWAIT


In der generierten cpp - Datei stehen die DECLARE-Anweisung dann wieder außerhalb, aber in der gleichen Datei wie die implementierten Klassen-Methoden.

Nur mal so nebenbei ...
#5
mal dumm gefragt. Habe jetzt mal eine Beispiel-App für Android erstellt. Hat ja auch fein geklappt. Wie bekomme ich das Teil aufs Handy? Bin dabei leider völlig unbewandert.
#7
for those who wants it :)) sadly for windows only

tested it under Win XP. As far as I know (from MSDN) under Win 7 the sound is played not by the pc speaker but with the sound card.

Parameters:
p_freq: frequency of the sound
p_duration: duration of the sound in millisec I guess

Code (glbasic) Select

LOCAL mx%, my%, b1%, b2%

WHILE TRUE
PRINT "Press left mouse button to BEEP!", 0, 0
MOUSESTATE mx, my, b1, b2
IF b1
glbeep(RND(255), 200)
ENDIF
SHOWSCREEN
WEND

FUNCTION dummy:
ENDFUNCTION

// ------------------------------------------------------------- //
// ---  GLBEEP  ---
// ------------------------------------------------------------- //
INLINE
DECLARE(Beep, "kernel32.dll", (unsigned int, unsigned int), bool);
ENDINLINE
FUNCTION glbeep: p_freq%, p_duration%
INLINE
Beep(p_freq, p_duration);
ENDINLINE
ENDFUNCTION // GLBEEP
#8
GLBasic - de / iPhone 3D
2010-Sep-02
http://www.golem.de/1009/77654.html

ist ja schon beeindruckend, was man mit so kleinen Geräten erreichen kann. Obwohl sich in dieser Demo sonst noch nichts bewegt, aber die Grafik sieht schon klasse aus.
#9
GLBasic - de / V8 Beta
2010-Jul-14
mal ne vielleicht dumme Frage. Wo jibbet denn die Beta Version 8.03 oder 8.036. Das Log-File verwirrt mich zur Zeit etwas.
Der Link im engl. Thread gibt mir Version 8.006.
#11
Based on Gernot's kerning function in DDGui I tried to implement a more flexible variant of using font kerning. The result is a couple of functions to manage fonts within your applications.

IMHO there are some advantages to the DDGui version:
- you can handle more than only one font at a time
- you can define the spacing for each font (number of pixel between the single characters of a string, even with negative values). Spacing can be changed at any time
- you can use different background colors for your fonts

How to use it:

just add the file Font_Kerning.gbas to your project. Use function kf_LoadFont to load a font and kf_Print to output your text. With kf_SetTransparency you define the background color of the font. Switch the spacing between the characters with kf_SetSpacing. Toggle between your font with kf_SetFont. Finally kf_DeleteFont to delete fonts not used any more.

see attached the complete little project with an example

[attachment deleted by admin]
#12
As many of you know, the TYPEs of GLBasic internally are converted to C++ - classes. With the new PROTOTYPE command now we're able also to implement something like methods within TYPE structures. The way to do it seems a little bit circuitous, but for sure this is one step closer to Object Orientated programming.

I don't think, that OO will make better programmers of us, but especially for larger projects many things are easier to handle.

Now I want to know, what you think about it. Your vote will help Gernot to decide, if he should spend some thoughts about it or not :)
#13
Ähem,
also das mit den PROTOTYPEs klappt ja jetzt wunderbar. Man kann auch gleich die Funktionen innerhalb der TYPE-Deklaration zuweisen und sicherlich gibt es dazu auch mehr oder minder sinnvolle Anwendungsmöglichkeiten. NUR: Das Ganze erinnert dann schon ein wenig an Objektorientierung, wobei die "Klimmzüge" mit PROTOTYPE aber irgenwie so "Von hinten durch die Brust ins Auge" anmuten.

Kurzum:
Wäre es nicht wirklich mal eine ÃÅ"berlegung wert, TYPEs weiter aufzubohren, um hier wirklich einen Schritt in Richtung OO zu machen.  :-* Schließlich steht es ja jedem frei, weiterhin prozedural zu programmieren. Auch kann ich nicht sagen, wieviel Arbeit es macht, das in GLBasic zu implementieren. Auch bin ich beileibe kein OO-Purist, der diese Art der Programmierung über alles stellt. Allerdings beschäftige ich mich beruflich seit einiger Zeit mit OO (bei ABAP/4) und bin häufig überrascht, wie elegant sich vieles lösen lässt, vorausgesetzt, man hat sich vorher wirklich Gedanken über die Problemstellung gemacht.

Was meint die werte Gemeinde dazu?

#14
the new PROTOTYPE command works fine, but I found something strange when using them in TYPES

the small example below will give a an error "Call to undefined function : TPlayer"
If I replace the line
player.ptr_init(100, 100, player.graphic)
with
player.ptr_init(100, 100, 0)
it works without error. Seems when using prototypes in types, only constant arguments can be used? Without types I can use variable arguments.  :S

Code (glbasic) Select
PROTOTYPE Init: x, y, graphic

TYPE TPlayer
x; y
graphic
ptr_init AS Init
ENDTYPE
GLOBAL player AS TPlayer


DRAWRECT 0, 0, 20, 20, RGB(255, 255, 0)
player.graphic = GENSPRITE()
GRABSPRITE player.graphic, 0, 0, 20, 20

player.ptr_init = InitPlayer
player.ptr_init(100, 100, player.graphic)
SHOWSCREEN
KEYWAIT


// ------------------------------------------------------------- //
// ---  INITPLAYER  ---
// ------------------------------------------------------------- //
FUNCTION InitPlayer: px, py, pgraphic

   PRINT "x:" + px + "y:" + py + "Graphic:" + pgraphic, 0, 0

ENDFUNCTION // INITPLAYER


Furthermore it's not allowed to initialize function pointers within the TYPE declaration
e.g.
Code (glbasic) Select
PROTOTYPE Init: x, y, graphic

TYPE TPlayer
x; y
graphic
ptr_init AS Init = InitPlayer
ENDTYPE
GLOBAL player AS TPlayer


// ------------------------------------------------------------- //
// ---  INITPLAYER  ---
// ------------------------------------------------------------- //
FUNCTION InitPlayer: px, py, pgraphic

   PRINT "x:" + px + "y:" + py + "Graphic:" + pgraphic, 0, 0

ENDFUNCTION // INITPLAYER


This will give me a syntax error. Would be nice if this was possible too  :whistle:
#15
muss sagen, gefällt mir. Gute Arbeit :)
#16
... gibt es glaube ich seit 2007. Nun habe ich zu hause noch ein älteres Notebook mit Onboard-Graka. Diese hat leider den Geist aufgegeben (massig Pixelfehler, liegt nicht am Monitor, habs auch mit externem Monitor pobiert).

hat jemand von euch schon Erfahrung mit so einem Teil? Oder kennt gute Bezugsquellen?

Merci.
#17
sieht etwas seltsam aus. Oder ist das nur bei mir so?



[attachment deleted by admin]
#18
hab mir grad das Update auf 7.089 gezogen und wollte dann am aktuellen Projektchen weiterarbeiten.
Bekomme dann die Fehlermeldung

Code (glbasic) Select

GPC - GLBasic Precompiler V.7.045 SN:92f71c52 - 3D, NET
"..\Samples\Common\T3DEntity.gbas"(486) error : wrong argument type : TYPE T3DEntity has no member constant


Hier der "Beweis" :)


[attachment deleted by admin]
#19
When setting a DDGui dialog MOVEABLE and a text input field within the dialog get the focus, the dialog is no longer moveable.

Example:
Code (glbasic) Select

DDgui_pushdialog(100, 100, 200, 100)
DDgui_set("", "TEXT", "Test dialog")
DDgui_set("", "MOVEABLE", TRUE)

LOCAL line$ = "test text"
DDgui_widget("", "Test input:", 0, 0)
DDgui_text("tx_test", line$, 80, 0)

WHILE TRUE
DDgui_show(FALSE)
SHOWSCREEN
WEND
#20
IDE/Syntax / Macros
2009-May-10
... could be a nice thing to make code easier to read. (especially for INLINE snippets)

Code (glbasic) Select

MACRO newcommand(var)
    INLINE
        var++;
        ...
    ENDINLINE
ENDMACRO


// use in GLBasic code
LOCAL counter%
newcommand(counter)