Jump to content
uniGUI Discussion Forums
Freeman35

How to move BorderStyle=bsNone Modal form

Recommended Posts

Hello,

How can make moveble form? Form is modal and BorderStyle:=bsNone. (form like on screenshot)

regards

post-4508-0-84277200-1528629450_thumb.png

Share this post


Link to post
Share on other sites

Hello,

 

What kind of form? Did you create the form as in the picture?

Share this post


Link to post
Share on other sites

Hi,

Its a  Standart Tuniform, "Header" is TUnilabel and Align is alTop. I added that screenshot, 'cos much better then my english :) form has not caption BorderStyle:=bsNone, so can't move.

Question is, user how can move this form ?

regards

Share this post


Link to post
Share on other sites
 
procedure TForm.panelMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
 const
   sc_DragMove = $f012;
begin
  ReleaseCapture;
  Perform(wm_SysCommand, sc_DragMove, 0);
end;

this works in vcl, click on the panel and drag the form

Share this post


Link to post
Share on other sites

Thank you for answers. Sorry for late answer, you know bairam :)

 

@mohammad, Your demo compiled old unigui, so not work on your server. And my question is, can you move that form via mouse?

@wilton_rad  Is vcl mean, non unigui application? If yes how to apply to this to unigui application?

 

Regards

Share this post


Link to post
Share on other sites

Hi,

 

Also you can try this approach I think:

function window.afterrender(sender, eOpts)
{
    var me = sender;
    
    me.dd = new Ext.dd.DDProxy(me, {
        delegate: me.id
    });
    
    me.dd.afterDrag = (function() {
        me.updateLayout()
    });
    
    Ext.onReady(function() {
        Ext.get(me.id).select(".x-form-field").each(function(el) {
            me.dd.addInvalidHandleId(el.dom.id)
        })
    });
    
    me.el.setStyle('cursor', 'move');
}

http://forums.unigui.com/index.php?/topic/4567-move-tuniform-without-titlebar/

http://forums.unigui.com/index.php?/topic/6321-ot-javascript-profis-dragdrop-of-unipanel/

...

Share this post


Link to post
Share on other sites

I updated my original post and working as expected.  

Share this post


Link to post
Share on other sites

@Delphi Developer one more perfect solution :)  thank you very much.

@mohammad Thank you very much.

Share this post


Link to post
Share on other sites
On 6/19/2018 at 6:51 PM, Sherzod said:

Hi,

 

Also you can try this approach I think:


function window.afterrender(sender, eOpts)
{
    var me = sender;
    
    me.dd = new Ext.dd.DDProxy(me, {
        delegate: me.id
    });
    
    me.dd.afterDrag = (function() {
        me.updateLayout()
    });
    
    Ext.onReady(function() {
        Ext.get(me.id).select(".x-form-field").each(function(el) {
            me.dd.addInvalidHandleId(el.dom.id)
        })
    });
    
    me.el.setStyle('cursor', 'move');
}

http://forums.unigui.com/index.php?/topic/4567-move-tuniform-without-titlebar/

http://forums.unigui.com/index.php?/topic/6321-ot-javascript-profis-dragdrop-of-unipanel/

...

 

this code moves the form with all the controls in it. how to move the form with just one control, for example only the unipanel1 can move the form. I tried to modify the code but it didn't work :).

Share this post


Link to post
Share on other sites

Hello,

Can you try this ?:

function window.afterrender(sender, eOpts)
{
    var me = sender;
    
    me.dd = new Ext.dd.DDProxy(me, {
        delegate: me.id
    });
    
    me.dd.afterDrag = (function() {
        me.updateLayout()
    });
    
    Ext.onReady(function() {
        //Ext.get(me.id).select(".x-form-field").each(function(el) {
        //    me.dd.addInvalidHandleId(el.dom.id)
        //});
        me.dd.setHandleElId(MainForm.UniPanel1.id); //<---------
    });
    
    //me.el.setStyle('cursor', 'move');
}

 

Share this post


Link to post
Share on other sites

hi sherzord,

thanks for the response. 

i'm sorry sherzord, but the code doesn't work on its derivative form.
and usually when the unigui form is moved there appears with color opacity, but not here

Share this post


Link to post
Share on other sites
Its seem I should rename the parent form name on each child form, or is there a more concise method ?

Share this post


Link to post
Share on other sites

the method I mean here is without changing the name of the form on each derivative. 

Share this post


Link to post
Share on other sites

finally i found without having to change the form name :), sory me, extjs newbie

function window.afterrender(sender, eOpts)
{
    var me = sender;
    
    me.dd = new Ext.dd.DDProxy(me, {
        delegate: me.id
    });
    
    me.dd.afterDrag = (function() {
        me.updateLayout()
    });
    
    Ext.onReady(function() {
        me.dd.setHandleElId(sender.owner.UniPanel1.id);
    });
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×