Jump to content

OnMouseDown - move TuniPanels


erich.wanker

Recommended Posts

hello :-)

 

i want to move different Tunipanels with mouse.. i think, the OnMouseDown event is perfect ;-) .. but how can i send the mousemovement to the uniPanel? .. any Ideas?

 

ThanX for help

 

 

 

i create a lot of TuniPanels in a loop: .. tag-value amd hint value of TuniPanel are used for identivication ...

    aktuell_button:=TuniPanel.Create(self);
    aktuell_button.Cursor:=crHandPoint;
    aktuell_button.Top:=10;
    aktuell_button.Left:=10;
    aktuell_button.Width:=10;
    aktuell_button.Height:=10;
    aktuell_button.BorderStyle:=ubsnone;
    aktuell_button.ShowCaption:=false;
    aktuell_button.Color:=$00EBEBEB;
    aktuell_button.Parent:=mainpanel;
    aktuell_button.OnClick:=click_objekt;
    aktuell_button.OnMouseDown:=down_objekt;

my OnClick

procedure Tfenster.click_objekt(Sender:TObject);
begin
   showmessage('buttonklick '+(sender as TuniPanel).hint);
end;

my OnMouseDown:

procedure Tfenster.down_objekt(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  (sender as TuniPanel). ?????
end;
Link to comment
Share on other sites

Hi erich.wanker.
 
i want to move different Tunipanels with mouse...

If I understand correctly, try use Ext.dd.DDProxy:

UniSession.AddJS('Ext.get("' + aktuell_button.JSName + '_id").dd = new Ext.dd.DDProxy(''' + aktuell_button.JSName + '_id'', '''');');
aktuell_button:=TuniPanel.Create(self);
aktuell_button.Cursor:=crHandPoint;
aktuell_button.Top:=10;
aktuell_button.Left:=10;
aktuell_button.Width:=10;
aktuell_button.Height:=10;
aktuell_button.BorderStyle:=ubsnone;
aktuell_button.ShowCaption:=false;
aktuell_button.Color:=$00EBEBEB;
aktuell_button.Parent:=mainpanel;
//aktuell_button.OnClick:=click_objekt;
//aktuell_button.OnMouseDown:=down_objekt;
UniSession.AddJS('Ext.get("' + aktuell_button.JSName + '_id").dd = new Ext.dd.DDProxy(''' + aktuell_button.JSName + '_id'', '''');');

Sincerely

Link to comment
Share on other sites

Hello and thanX

 

Works great ... thank you !

 

please -can i ask another question?

 

after i move a panel - i want to read his new position but with delphi-code it didnt work..

 

if i read (sender as TuniPanel).left i get allways the same value (the "onCreate"-value..)

procedure Tfenster.click_objekt(Sender:TObject);
begin
   //(sender as TuniPanel)
   showmessage(inttostr((sender as TuniPanel).left));
end;

do you have a idea how i can output the new value after clicking one of the buttons ?

 

thank you

Erich

Link to comment
Share on other sites

after i move a panel - i want to read his new position but with delphi-code it didnt work..

 

1. 

procedure pAjaxEvent(Sender: TComponent; EventName: string;
      Params: TStrings);

2.

procedure TMainForm.pAjaxEvent(Sender: TComponent; EventName: string;
  Params: TStrings);
begin
  if EventName = '_after_move' then begin
    //ShowMessage(Params.Values['xpos']);
    (Sender as TUniPanel).Left := StrToInt(Params.Values['xpos']);
    (Sender as TUniPanel).Top := StrToInt(Params.Values['ypos']);
    ShowMessage(IntToStr((Sender as TUniPanel).Left) + '    ' + IntToStr((Sender as TUniPanel).Top));
  end;
end;

3.

aktuell_button:=TuniPanel.Create(self);
aktuell_button.Cursor:=crHandPoint;
aktuell_button.Top:=10;
aktuell_button.Left:=10;
aktuell_button.Width:=10;
aktuell_button.Height:=10;
aktuell_button.BorderStyle:=ubsnone;
aktuell_button.ShowCaption:=false;
aktuell_button.Color:=$00EBEBEB;
aktuell_button.Parent:=mainpanel;
//aktuell_button.OnClick:=click_objekt;
//aktuell_button.OnMouseDown:=down_objekt;

aktuell_button.OnAjaxEvent := pAjaxEvent;
UniSession.AddJS('Ext.get("' + aktuell_button.JSName + '_id").dd = new Ext.dd.DDProxy(''' + aktuell_button.JSName + '_id'', '''');');
UniSession.AddJS('Ext.apply(Ext.get("' + aktuell_button.JSName + '_id").dd, {afterDrag:function() {ajaxRequest(' + aktuell_button.JSName + ', ''_after_move'', [''xpos='' + (Ext.get("' + aktuell_button.JSName + '_id").getX() - MainForm.form.getX()), ''ypos='' + (Ext.get("' + aktuell_button.JSName + '_id").getY() - MainForm.form.getY())])}});');
Link to comment
Share on other sites

Hello and thank you again for your time and help  :-) ...

 

but i can not bring it to run :-( ...

 

the Ext.dd.DDProxy works fine .. i can move different panels  .. works fine :-)

 

but the second part .. the "afterDrag" .. i tried a little bit to bring it to run ..but no success ...

 

Thanx for suggestions and nice greetings from gastein

Erich

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...