Gamestudio Links
Zorro Links
Newest Posts
How to Change Multiplier
by vicknick. 06/02/23 03:27
How to buy tomorrow at open?
by vicknick. 06/02/23 03:19
Adding Position to Current Trade
by vicknick. 06/02/23 03:09
Unable to change multiplier of contract
by vicknick. 05/30/23 06:56
Wrong Definition of Sharpe Ratio in Zorro?
by vicknick. 05/29/23 06:32
Backtest strategy on bitcoin/crypto
by JamesHH. 05/26/23 04:36
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
3 registered members (vicknick, 7th_zorro, Quad), 990 guests, and 12 spiders.
Key: Admin, Global Mod, Mod
Newest Members
BInnacle, androsa, XquicksnowX, danishinvest, Trail
18942 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
gui panel frage #418487
02/25/13 14:24
02/25/13 14:24
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
Hallo

ich sitze gerade an meiner GUI
und stelle folgendes fest:

erstelle ich ein "Fenster" mit der A-taste
kann ich es bewegen und auch schließen.. laugh

erstelle ich aber 2 fenster kann ich das eine weder
schließen noch bewegen , nur das was gerade "erstellt"
worden ist -> dannach geht nichts mehr

ich hab den code neu hochgezogen


Code:
siehe unten ...



ich weis nicht wo mein fehler liegt,
aber ich vermute dass es an
"hWnd_buffer[i_1]" liegt
das ist aber nur das leerpanel, für meine buttons

weis jemand was ich falsch mache , ohne mir gleich den
ganzen code zu zerflücken laugh

MfG: Ratz

Last edited by ratz; 02/26/13 14:21.
Re: gui panel frage [Re: ratz] #418490
02/25/13 14:56
02/25/13 14:56
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
mach für deine fenster keine arrays
du kannst per mouse_panel rausfinden, auf welchem panel du grade bist
daher kannst du auch beliebig viele fenster machen, ohne dass du diese arrays benötigst.
wenn du weitere informationen über dein panel speichern willst, kannst du skill_x und skill_y verwenden (PANEL-Handles oder sonstiges)

wenn ich das richtig verstehe, verwendest du 2 panels für dein Fenster.
Gibt es dafür einen speziellen Grund oder einfach blos um Content und Fenster zu trennen?

hier der code für das panel-schließen ohne globals array:
Code:
function kill_hWnd_win_1()
{
 reset(mouse_panel, SHOW);
}



Visit my site: www.masterq32.de
Re: gui panel frage [Re: MasterQ32] #418503
02/25/13 18:24
02/25/13 18:24
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
ja ich wollten nen kleinen hauch von Windows rein bringen
mit Fenster-rand ect.

nur das Problem ist jetzt wenn ich das einzelnt mache, dass
nur die buttons nach und nach verschwinden , jedoch nicht das Fenster frown

aber die mouse_panel function kannte ich noch nicht wink

Re: gui panel frage [Re: ratz] #418505
02/25/13 18:37
02/25/13 18:37
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
wenn du fensterrand und so haben möchtest, probier doch mal, dein hauptfenster als ein panel zu managen
und deine fenster features machst du in extra panel welche aber UNTOUCHABLE sind
damit hast du sozusagen immer das richtige panel und die featrues stören nicht

schreib dir am besten auch eine updateroutine für ein panelfenster, welches die ganzen features je nach zustand ein- oder ausblendet und sich beendet, wenn du das panel geschlossen hast (beispielsweise per skill_x != 0 oder == 0)


Visit my site: www.masterq32.de
Re: gui panel frage [Re: MasterQ32] #418526
02/26/13 14:20
02/26/13 14:20
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
so ich habs jetzt folgendermaßen realisiert:

Code:
//////////////////////////////////////////
// Free GUI-EXAMPLE for all 3D gs use   //
//  written by Patrick Ratz             //
//////////////////////////////////////////

var i_1 = 0;
var i_2 = 0;
var i_3 = 0;

BMAP* arrow = "mouse_1.bmp";

BMAP* hWnd_win_2 = "hwnd_win_256.bmp";
BMAP* hWnd_win_3 = "hwnd_win_512.bmp";

BMAP* hWnd_but_1_up = "hWnd_but_1_up.bmp";
BMAP* hWnd_but_1_down = "hWnd_but_1_down.bmp";´

BMAP* hWnd_but_2_up = "hWnd_but_2_up.bmp";
BMAP* hWnd_but_2_down = "hWnd_but_2_down.bmp";

PANEL* hWnd_win_1_pan[100];



function start_gui();


function create_hWnd_win_1();

function move_hWnd_win_1();

function kill_hWnd_win_1();


////////////////////////////////////////////////


function move_hWnd_win_1()
{
  while(mouse_left == 1)
  {	
  mouse_panel.pos_x += mickey.x; 	
  mouse_panel.pos_y += mickey.y; 	
  wait(1);
  }
}


function kill_hWnd_win_1()
{
 reset(mouse_panel,SHOW);
}


/////////////////////////////////////////


function create_hWnd_win_1()
{ 
 hWnd_win_1_pan[i_1] = pan_create
 (
 "bmap = hWnd_win_2;
  pos_x = 100; 
  pos_y = 100;   
  button(234,6,hWnd_but_2_down,hWnd_but_2_up,hWnd_but_2_down,kill_hWnd_win_1,NULL,NULL);  
  button(218,6,hWnd_but_2_down,hWnd_but_2_up,hWnd_but_2_down,move_hWnd_win_1,NULL,NULL);  
  flags = SHOW | TRANSLUCENT ",10
 );
}


function start_gui()
{
 while(1)
 {
  if (key_a ==1)
  {	
   wait(-1); 
   i_1 += 1; 
   create_hWnd_win_1(); 	
  }
  wait(1);
 } 	
}

function main()
{
 start_gui();
 mouse_mode = 4; 
 mouse_map = arrow;
}



jetzt wird alles über ein panel gesteuert
- man kann alle fenster bewegen
- man kann alle fenster schließen
- und neue sertellen

nur ab und zu bekommt ich die fehlermeldung:

Error E1513
Script crash in move_hWnd_win1:

drücke ich auf okey laüft alles ohne probleme weiter
nur mich nervt diese dumme Fehlermeldung -> da ist doch kein fehler
... oder ?

Re: gui panel frage [Re: ratz] #418529
02/26/13 14:40
02/26/13 14:40
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
doch wink
mickey entspricht nicht der realen mausbewegung. wenn du deine maus zu schnell bewegst, hast du für ein paar frames einen invalid pointer (mouse_panel ist dann NULL weil die maus halt nicht mehr über dem panel ist)

verwende stattdessen die änderung von mouse_pos

also
Code:
if(mouse_panel)
{
mouse_panel.pos_x += mouse_pos.x - last_mouse_pos.x;
}



Visit my site: www.masterq32.de
Re: gui panel frage [Re: MasterQ32] #418531
02/26/13 14:51
02/26/13 14:51
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 679
Germany
Schau doch mal, wo du deinen Mauszeiger definierst.

Re: gui panel frage [Re: MasterQ32] #418532
02/26/13 14:56
02/26/13 14:56
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
grin okey grin

gerade habe ich rausgefunden wofür
die Flag: UNTOUCHALBE steht:

erstellt man ein extra panel
Code:
PANEL* background = 
{
 bmap = "background.bmp";
 pos_x = 0;
 pos_y = 0;
 flags = SHOW | UNTOUCHABLE;
}



und setzt das flag nicht , so bewegt dieser sich auch mit

::::letzte frage::::

jetzt zur der move function:

binde ich mouse_pos.x und co ein flipt das fenster durch den screen

Code:
function move_hWnd_win_1()
{
 while(mouse_left)	
 {
  if(mouse_panel)
  {
   mouse_panel.pos_x += mouse_pos.x;	
   mouse_panel.pos_y += mouse_pos.y; 	
  } 
  wait(1);
 }
}


Re: gui panel frage [Re: ratz] #418537
02/26/13 15:19
02/26/13 15:19
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 679
Germany
Wieso willst du du auf die Position des mouse_panel.pos noch die aktuelle Pos hinzufügen?
Nehm das + weg, dann sollte es funktionieren.

Re: gui panel frage [Re: Ayumi] #418540
02/26/13 15:29
02/26/13 15:29
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Originally Posted By: Ayumi
Wieso willst du du auf die Position des mouse_panel.pos noch die aktuelle Pos hinzufügen?
Nehm das + weg, dann sollte es funktionieren.

Richtig gesehen wink
...aber trotzdem würde das Fenster beim Bewegen so springen, dass die linke obere Ecke auf der Mausposition ist.

@ratz
Meinen Post im letzten Thread hast du scheinbar nicht gesehen oder einfach ignoriert.


POTATO-MAN saves the day! - Random
Page 1 of 2 1 2

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1