Author Topic: Message Box?  (Read 2512 times)

Offline S. P. Gardebiter

  • Mr. Polyvector
  • ***
  • Posts: 247
    • View Profile
    • Tile 44 Interactive
Message Box?
« on: 2010-Apr-19 »
Hi,
gibts in GLBasic eine Möglichkeit eine Message Box auszugeben?
Oder ist sowas vllt auf der TODO Liste? D:
~ Cave Story rules! ~

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5088
  • O Rly?
    • View Profile
Re: Message Box?
« Reply #1 on: 2010-Apr-19 »
Also ist ganz einfach über INLINE einsatz!

Du machst ein Projekt, fügst eine zusätzliche *.gbas dazu und in dieser fügst du folgendes ein:

Code: (glbasic) [Select]
INLINE
} // Close GLBasic-namespace

DECLARE_ALIAS(_MessageBoxA, "user32.dll", "MessageBoxA", (HWND, const char*, const char*, unsigned int), int);


namespace __GLBASIC__{ // restore GLBasic-namespace
ENDINLINE


FUNCTION GLB_MessageBox: caption$, text$, _type%
INLINE
return _MessageBoxA( (HWND)GLBASIC_HWND(), text_Str.c_str(), caption_Str.c_str(), _type);
ENDINLINE
ENDFUNCTION 


einfach jetzt wie ne normale Funktion aufrufen, fertig!

I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline S. P. Gardebiter

  • Mr. Polyvector
  • ***
  • Posts: 247
    • View Profile
    • Tile 44 Interactive
Re: Message Box?
« Reply #2 on: 2010-Apr-19 »
Wenn ich INLINE benutze und Windows DLL's benutze, zerschieße ich den Support für alle anderen Betriebssysteme. (Mac, Linux, Xbox-Linux etc.)
Und dass, obwohl ich nur eine Message Box wollte, was für mich dann doch etwas zu arg, nach dem Motto: "Mit Kanonen auf Spatzen schießen." ist D:
~ Cave Story rules! ~

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5088
  • O Rly?
    • View Profile
Re: Message Box?
« Reply #3 on: 2010-Apr-19 »
Musst halt dementsprechend die jeweiligen "libs"/ includes einfügen.

für sowas ist ifdef z.B da :)

Da kann ich dir aber leider nicht helfen, da ich nur in Windows zuhause bin :P
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10776
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Message Box?
« Reply #4 on: 2010-Apr-20 »
Code: (glbasic) [Select]
IMPORT "C" __stdcall MessageBoxA(int, const char*, const char*, int);

MessageBoxA(0, "test", "super", 0);

So?

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5088
  • O Rly?
    • View Profile
Re: Message Box?
« Reply #5 on: 2010-Apr-20 »
Ne ihm gehts darum, das es so nicht Multiplat ist :)
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10776
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Message Box?
« Reply #6 on: 2010-Apr-20 »
DDgui_msg("text", "Caption")

Offline S. P. Gardebiter

  • Mr. Polyvector
  • ***
  • Posts: 247
    • View Profile
    • Tile 44 Interactive
Re: Message Box?
« Reply #7 on: 2010-Apr-21 »
Naja, eig. wollte ich Messageboxen machen die ihr "Handle" beim Betriebssystem haben. Solche Messageboxen wie der DDGui macht, kann ich im Notfall auch selber programmieren, aber danke für den Hinweis Gernot o:

Auf Libaries muss ich wegen Lizenzbedingungen der meisten Libaries verzichten, ich will mir nicht das Recht nehmen lassen mein Spiel zu verkaufen. (Selbst wenn ichs sowieso nicht tue)
Und wenn es nicht gerade die Lizenzbedingungen sind, ist es meist der Verlust von Multiplatform Unterstützung. o:
~ Cave Story rules! ~

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5088
  • O Rly?
    • View Profile
Re: Message Box?
« Reply #8 on: 2010-Apr-21 »
So ein quark...

Mach Messageboxen mit der jeweiligen Api des Betriebsystems...
Du hast dann trotzdem deine Multiplatform und null komma garkeine Lizenzprobleme.

Mitn bisschen Googeln wird das wohl nicht so schwer sein!
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline S. P. Gardebiter

  • Mr. Polyvector
  • ***
  • Posts: 247
    • View Profile
    • Tile 44 Interactive
Re: Message Box?
« Reply #9 on: 2010-Apr-22 »
So ein quark...

Das ist kein Quark o: Libaries machen meistens nur Probleme. (Ich rede nicht von Libaries in GLBasic oder von den mitgelieferten Libaries des Betriebssystems)

Mach Messageboxen mit der jeweiligen Api des Betriebsystems...
Du hast dann trotzdem deine Multiplatform und null komma garkeine Lizenzprobleme.

Mitn bisschen Googeln wird das wohl nicht so schwer sein!

Mir ist klar, dass es mit Googeln nicht allzuschwer sein wird. Die Frage war aber an das Forum gerichtet. Ist mir klar dass ich das auch hätte googeln können ;)

Aber das ganze umzusetzen und zum laufen zu kriegen ist vielleicht auch selbst mit googeln nicht ganz so leicht, wenn man nur gebrochen C/C++ kann. Teilweise haben die einfachsten Aufgaben die komplexesten Lösungen. Mit anderen Worten: Ich hatte ledeglich danach gefragt, ob hier einer weiß wie so etwas multiplatform mäßig funktioniert, es hätte ja sein können, dass jemand schonmal Message Boxen für Linux und Mac benutzt hat ;)
~ Cave Story rules! ~

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5088
  • O Rly?
    • View Profile
Re: Message Box?
« Reply #10 on: 2010-Apr-22 »
TCL/TK-Wrapper vom Gernot in den Samples, musst alt nen haufen Zeugs mitliefern...
« Last Edit: 2010-Apr-22 by Schranz0r »
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard