Paramenter

Posted By: Martek

Paramenter - 04/03/08 19:28

Hi,
ich meld mich auch ma wieder also:

ich möchte eine funktion schreiben, die einen Panel immer der Maus folgt wenn
ich auf ihn geklickt habe. Das Problem bei der Geschichte ist, dass ich
sehr viele Panels habe und das bei jedem funktionieren soll, also habe ich mir gedacht ich übergebe die pos_x und pos_y des Panels über paramenter.
Das klappt aber leider nicht. Wie muss ich das definieren, damit es funktioniert, oder geht es garnicht?

Die funktion wird mit on_click aufgerufen.

 Code:
function set_pan_pos(panel.pos_x, panel.pos_y)
{
	while(mouse_left) { wait(1); }
	while(mouse_left == 0)
	{
		panel.pos_y = pointer.y;
		panel.pos_x = pointer.x;
		wait(1);
	}
}


Mit freundlichen Grüßen,

Martek
Posted By: Xarthor

Re: Paramenter - 04/03/08 19:43

Wozu willst du die pos_x und pos_y als parameter übergeben?
Wird die function set_pan_pos per "on_click" von dem panel objekt aufgerufen?
Sieht dein panel code also irgendwie so aus:
 Code:
panel my_panel
{
  ...
  on_click = set_pan_pos;
}

Wenn ja dann gibts da was ganz nettes, ein parameter der automatisch übermittelt wird.
Desweiteren wärst du eine seite weiter fündig geworden da exakt die selbe frage erst vor wenigen tagen gestellt wurde. (ok war auf english)
Also bitte demnächst: search funktion des forums nutzen

Hier nun der code snippet den ich dort gepostet habe, er enthält alle antworten auf deine frage:
 Code:
// ==================================================================
// File: 		Code Snippet
// Type:		C-Script
// Requirements: 	A6.31 and above
// Description:	        Panel that can be dragged using the mouse
// ==================================================================


// ==================================================================
// FUNCTION PROTOTYPE

function drag_panel(panel);


// ==================================================================
// PANELS

panel* drag_pan;

panel test_pan
{
	bmap = bla_map;
	
	on_click = drag_panel; //important!
}


// ==================================================================
// FUNCTION

function drag_panel(panel)
{
	var diff[3];
	
	drag_pan = panel;
	
	diff.x = mouse_pos.x - drag_pan.pos_x;
	diff.y = mouse_pos.y - drag_pan.pos_y;
	
	while(mouse_left)
	{
		drag_pan.pos_x = mouse_pos.x - diff.x;
		drag_pan.pos_y = mouse_pos.y - diff.y;
		
		wait(1);
	}
}


// ==================================================================
// END OF FILE
// ==================================================================

Link zum thread: http://www.coniserver.net/ubb7/ubbthreads.php?ubb=showflat&Number=190467#Post190469
Posted By: Martek

Re: Paramenter - 04/04/08 11:30

Vielen Dank,
ich habs hinbekommen. \:\)

Entschuldigung das ich die Suchfunktion vergessen habe, ich musste es gestern
Abend in aller schnelle noch reinstellen.

Mfg, Martek
© 2023 lite-C Forums