GLBasic forum

Other languages => GLBasic - de => Topic started by: Quentin on 2009-Mar-17

Title: 6.196 - cooles Update
Post by: Quentin on 2009-Mar-17
hehe, so allm?hlich flie?en immer mehr Anwenderw?nsche ein. Auch wenn ich pers?nlich wohl nicht allzu viel mit Konsolenanwendungen machen werde, finde ich es trotzdem klasse, wie schnell hier reagiert wird.

Merci bi?ng Gernot

wenn jetzt auch noch irgendwann das Entitysystem weiter ausgebaut und in den Standard-Befehlsumfang integriert wird, falle ich hier glatt jemandem zu F??en :)
Title: Re: 6.196 - cooles Update
Post by: Schranz0r on 2009-Mar-17
Jow klasse Ding!
Kann man super gebrauchen, sogar f?r Wrapper usw, zum Debugen :)
Sehr sehr sehr.... sehr geil :D

Ja stimmt, nur m?sste das mit dem Rotationen nochmal ?berdacht werden! Sonst goil :D
Title: Re: 6.196 - cooles Update
Post by: Quentin on 2009-Mar-17
was meinst du mit "Rotationen ?berdenken". Die finde ich so ok. Oder was meinst du speziell?
Title: Re: 6.196 - cooles Update
Post by: D2O on 2009-Mar-17
ARGHHHHHHHHHHHHHHHHHHHHH ich bekomm einen Hirnschlag  :good:

Danke Gernot, das ist ech ein Geiles Feature  :good:

F?r mich der gerne mal das eine oder andere kleine Tool schreibt ist das echt genial.
Da GLB f?r sowas richtig leicht zu haben ist, und jetzt in einer Konsolenanwendung.

Ich grieg mich garnicht mehr ein :)

Juhuuuuu.  :nw: :nw: :happy:
Title: Re: 6.196 - cooles Update
Post by: D2O on 2009-Mar-17
So, gleich mal erstes Feedback.

Habe aus meinem UT2k4 Cachemanager alle Print in STDOUT gewandelt und Grafikbefehle Auskommenteirt.
Siehe da, es ist sofort gelaufen :)

Kleine sch?nheitskorrektur:

1. Die konsolenanwendung wird gestartet, wartet aber auf ein "Return/Eingabe" erst dann gehts los.
    Kann man das umgehen?

2. Blackscreen gibt ja nicht mehr (ist ja kein GL Fenster),
    gibts da mal einen ersatzt -> CLS ?

3. Ich weis, klingt schon fast unversch?mt  :whistle:
   Konsolenfenster verstecken (Stiller ablauf im Hintergrund)

4. Die Exe wird ja ?ber die h?lfte kleiner  :good:

5. GLB ist echt Gut, aber das hier macht es in meinen Augen richtig Professionell

So, werds mal weiter Testen, bzw. am Wochenende.
Muss bald in die Falle- Fr?hschicht.
Title: Re: 6.196 - cooles Update
Post by: Tenorm on 2009-Mar-17
zu 2) Habs noch nicht probiert, aber kann man cls nicht einfach ?ber INLINE system("CLS"); ENDINLINE machen
zu 3) Wenn das funktioniert geht unsichtbar ?ber:
Code (glbasic) Select
char Titel[50];
HWND hWnd = NULL;
GetConsoleTitleA(Titel, 50);
hWnd = FindWindowA(NULL, Titel);
ShowWindow(hWnd, SW_HIDE);


Sry wenn's nicht geht, hab noch nie INLINE in GLB gemacht, aber in cpp geht`s...

@Gernot, update is auf jedefall 1A  :good:
Title: Re: 6.196 - cooles Update
Post by: Kitty Hello on 2009-Mar-17
Das ist ja cool. So hab' ich das noch nie gemacht. Konsolenfensterverstecken. Lol

Code (glbasic) Select

HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd,SW_HIDE);

Title: Re: 6.196 - cooles Update
Post by: D2O on 2009-Mar-18
Danke allen, auch f?r das neueste Update.

So, bin einfach ein INLINE Depp.
Ich habe mal versucht das so umzusetzen, aber wie soll auch anders sein bei mir,
es geht mal wieder nicht.

Code (glbasic) Select


FUNCTION foo:  /// Die muss ja erstellt werden foo oder winniePuhh....
ENDFUNCTION

INLINE
char Titel[50];                        // ein Character Array f?r 50 Zeichen ?!
HWND hWnd = NULL;       // Variable von Type HWND
GetConsoleTitleA(Titel, 50);  // Denn Consolentitel ins Array Schreiben ?
hWnd = FindWindowA(NULL, Titel); // das Handle f?r den Consolentitel finden und ausgeben
ShowWindow(hWnd, SW_HIDE); // Das Programm mit diesem Handle ausblenden
ENDINLINE




STDOUT i+"\n"
SLEEP 100


INC i,1
STDOUT i+"\n"
SLEEP 2000

FOR i = 0 TO 10000
STDOUT i+"\n"
SLEEP 50
NEXT
Title: Re: 6.196 - cooles Update
Post by: Schranz0r on 2009-Mar-19
Code (glbasic) Select
ShowWindow(GLBASIC_HWND(), SW_HIDE);

Die Funktion ShowWindow wirst du Wrappen m?ssen aus der User32.dll.
SW_HIDE = 0

Viel spass :)
Title: Re: 6.196 - cooles Update
Post by: Kitty Hello on 2009-Mar-19
OK, hier mal alles was Du willst: Konsolentitel lesen und Fenster verstecken.

ACHTUNG!
Ohne das Fenster sichtbar, muss man das Programm mit dem Taskmanager abschie?en, wenn man es nicht intern beendet!

[edit]
N?chste Version wird das Konsolenfenster als GLBASIC_HWND() liefern.

Code (glbasic) Select



STDOUT GetTitle$() + "\n"

STDOUT i+"\n"
SLEEP 100

ShowConsole(FALSE)
INC i,1
STDOUT i+"\n"
SLEEP 2000
ShowConsole(TRUE)
FOR i = 0 TO 20
STDOUT i+"\n"
SLEEP 50
NEXT

KEYWAIT




FUNCTION foo:  /// Die muss ja erstellt werden foo oder winniePuhh....
ENDFUNCTION

INLINE
} // namespace zumachen
// Deklaration der Funktion (sonst kennt die der Compiler nicht)
extern "C" unsigned long __stdcall GetConsoleTitleA(char*, unsigned long);
extern "C" HWND __stdcall GetConsoleWindow(void);
extern "C" long __stdcall ShowWindow(void*, int);
#define SW_HIDE 0
#define SW_SHOWNORMAL 1

namespace __GLBASIC__ { // wieder aufmachen
ENDINLINE

FUNCTION GetTitle$:
INLINE
char Titel[512];                        // ein Character Array f?r 50 Zeichen ?!
HWND hWnd = NULL;       // Variable von Type HWND
GetConsoleTitleA(Titel, 511);  // Denn Consolentitel ins Array Schreiben ?
      return DGStr(Titel);
ENDINLINE

ENDFUNCTION


FUNCTION ShowConsole: bShow%

INLINE
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, bShow ? SW_SHOWNORMAL : SW_HIDE);
ENDINLINE
ENDFUNCTION





Title: Re: 6.196 - cooles Update
Post by: D2O on 2009-Mar-19
Coole Sache  :good: Danke Gernot.
Title: Re: 6.196 - cooles Update
Post by: Schranz0r on 2009-Mar-19
Hmm hat die Console kein normales HWND bzw. das GLBASIC_HWND()?
Ist das nicht ein wenig komisch?
Title: Re: 6.196 - cooles Update
Post by: Heiko on 2009-Mar-20
nein hats nich, wenn ich xors mit konsole compilieren w?rde, kommt konsolenfenster, noch lustiger wirds dannach, wenn ich den haken da wieder weg nehme.
dann geht fast nix mehr.
dann kommt trotzdem noch das glb fenster und ich muss es wegklicken, damit xors startet.lol.
Title: Re: 6.196 - cooles Update
Post by: trucidare on 2009-Mar-24
Ja danke *im ruhm sonn* daanke *freu*
*blumen aufheb*

:D