Message Box?

Previous topic - Next topic

S. P. Gardebiter

Hi,
gibts in GLBasic eine Möglichkeit eine Message Box auszugeben?
Oder ist sowas vllt auf der TODO Liste? D:
~ Cave Story rules! ~

Schranz0r

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

S. P. Gardebiter

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! ~

Schranz0r

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

Kitty Hello

Code (glbasic) Select

IMPORT "C" __stdcall MessageBoxA(int, const char*, const char*, int);

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


So?

Schranz0r

Ne ihm gehts darum, das es so nicht Multiplat ist :)
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

Kitty Hello

DDgui_msg("text", "Caption")

S. P. Gardebiter

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! ~

Schranz0r

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

S. P. Gardebiter

Quote from: Schranz0r on 2010-Apr-21
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)

Quote from: Schranz0r on 2010-Apr-21Mach 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! ~

Schranz0r

#10
TCL/TK-Wrapper vom Gernot in den Samples, musst alt nen haufen Zeugs mitliefern...
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