|
3 registered members (vicknick, 7th_zorro, Quad),
990
guests, and 12
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: button panel mehrmals benutzen
[Re: Ch40zzC0d3r]
#417912
02/19/13 13:40
02/19/13 13:40
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
nun jetzt kann ich zwar die fenster bewegen und auch alle einzelnd schließen nur das problem ist das ich die buttons nur über reset(main_pan,SHOW); verschinden lassen kann , und somit auch nur 1mal anzeigen lassen kann, da die pan_setbutton function an ein Panel gebunden ist aber ich hab mir folgendes ausgedacht: die pan_create function:
pan_create(char* content, var layer)
und die pan_setbutton function:
pan_setbutton(main_pan,0,0,236,4,hwnd_button_up,hwnd_button_down,hwnd_button_up,NULL,kill_hwnd,NULL,NULL);
zu verschmelzen in meine eigende function: diese soll den Button frei darstellen können ohne sich an irgendein panel zu binden -> und zudem eine layer wert haben und so sieht die function aus
function draw_button(char* content, var layer, var num, var type, var x, var y, BMAP* bmapOn, BMAP* bmapOff, BMAP* bmapOver, BMAP* bmapOverOff, void* functionClick, void* functionLeave, void* functionOver);
function test()
{
draw_button("bmap = hwnd_win_1_rand.bmp; flags = VISIBLE | OVERLAY", 30,0,0,236,4,hwnd_button_up,hwnd_button_down,hwnd_button_up,NULL,kill_hwnd,NULL,NULL);
}
wenn ich aber dann main starte kommt die meldung: empty function called in test!
Last edited by ratz; 02/19/13 13:46.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417915
02/19/13 14:16
02/19/13 14:16
|
Joined: Jan 2002
Posts: 4,225 Germany / Essen
Uhrwerk
Expert
|
Expert
Joined: Jan 2002
Posts: 4,225
Germany / Essen
|
Weil draw_button nur ein Prototyp ist und keine Implementierung hat? nur das problem ist das ich die buttons nur über reset(main_pan,SHOW); verschinden lassen kann , und somit auch nur 1mal anzeigen lassen kann Warum sollte das nur einmal gehen? ich versteh nur Bahnhof. Pro Objekt das Du darstellen willst ein Panel erzeugen. Bei diesem Panel dann jeweils das SHOW flag setzen oder zurücksetzen.
Always learn from history, to be sure you make the same mistakes again...
|
|
|
Re: button panel mehrmals benutzen
[Re: Uhrwerk]
#417918
02/19/13 15:06
02/19/13 15:06
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
ich hoffe mir kann mal jemand helfen , hier der ganze code http://www.file-upload.net/download-7230908/GUI.rar.html[bitte auf den ganz kleinen download button drücken ] keine angst, wenn mantchmal die fehlermeldung kommt "script crash in kill_hwnd" das liegt daran , dass [i_1] und so nochnicht wieder resettet sind
Last edited by ratz; 02/19/13 19:24.
|
|
|
Re: button panel mehrmals benutzen
[Re: Kartoffel]
#417932
02/19/13 18:40
02/19/13 18:40
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
BOA BOA BOA ICH HABS !!!!
...
var i_1
PANEL* main_pan[5];
...
function move_me()
{
...
main_pan[i_1].pos_x += mickey.x;
main_pan[i_1].pos_y += mickey.y;
...
}
...
function create_hwnd_but()
{
main_pan[i_1] = pan_create("bmap = NULL; pos_x = 100; pos_y = 100; flags = VISIBLE", 40);
hwnd_but_small[i_2] = pan_setbutton(main_pan[i_1],0,0,236,4,hwnd_button_up,hwnd_button_down,hwnd_button_up,NULL,kill_hwnd,NULL,NULL);
hwnd_but_small[i_2] = pan_setbutton(main_pan[i_1],0,0,217,4,hwnd_button_up,hwnd_button_down,hwnd_button_up,NULL,move_me,NULL,NULL);
}
...
Jetzt kann ich endlich mehere buttons "createn" werend der Laufzeit und wieder schließen ein paar bugs sind zwar noch drin , wie z.b. das sich andere fenster wieder schließen und dannach nicht mehr bewegen lassen aber fürs erste reicht es erstmal danke an Kartoffel und den anderen die mir soviele tolle tipps gegeben haben ich hoffe ihr könnt ein paar codeschnipsel gebracuhen und euch eure eigende gui zusammenschweißen. ^^
Last edited by ratz; 02/19/13 19:18.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417940
02/19/13 19:34
02/19/13 19:34
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Hey, noch eine kleine Sache von mir: Zum Bewegen von Panels per Maus kannst du auch panel.event verwenden. Der Vorteil dabei ist, dass der Pointer auf das Panel mit an die Event-Funktion übergeben wird. (ist übrigens auch bei Buttons so) Somit musst du in der Funktion nicht mit deinen Arrays arbeiten und ersparst dir evtl. ein wenig Zeit. hier ein Beispiel:
void PanelMove(PANEL * panel) // funktion um das panel zu bewegen
{
// maus - panel offset berechnen
var mouse_offset_x = panel.pos_x - mouse_pos.x;
var mouse_offset_y = panel.pos_y - mouse_pos.y;
while(mouse_left) // während die maustaste gehalten wird:
{
// panel auf maus-position + offset setzen
panel.pos_x = mouse_pos.x + mouse_offset_x;
panel.pos_y = mouse_pos.y + mouse_offset_y;
// die panel-position auf den bildschirm begrenzen
panel.pos_x = clamp(panel.pos_x, 0, screen_size.x - panel.size_x);
panel.pos_y = clamp(panel.pos_y, 0, screen_size.y - panel.size_y);
wait(1);
}
}
// ...und für alle Panels, die man mit der Maus bewegen soll:
panel.event = PanelMove; // (event-funktion ohne klammern oder parameter!)
So können alle Panels, die die Funktion "PanelMove" als Event haben, problemlos bewegt werden ohne die globalen Pointer zu managen 
Last edited by Kartoffel; 02/26/13 15:35. Reason: code war nicht ganz korrekt
POTATO-MAN saves the day! - Random
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417943
02/19/13 19:42
02/19/13 19:42
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
sieht doch schonmal sehr gut aus ;D Meines ist mittlerweile so weit:  (verwendet hab' ich es hier in eineim kleinen ToDo-List-Programm) Solltest du noch mehr Fragen haben, kann ich dir gerne helfen. (wir haben fast gleichzeitig gepostet, hast du meinen post davor gelesen?)
Last edited by Kartoffel; 02/19/13 20:04.
POTATO-MAN saves the day! - Random
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|