Jump to content

Добавить кнопку в unimMemo


Recommended Posts

Нужна идея реализации, как повесить кнопку над компонентой TunimMemo, там, где красный квадратик. Можно, конечно, вышке или ниже, но хочется  сэкономить драгоценное место, т.к. на форме довольно много разных элементов, форма сложная, а экраны на смартфонах маленькие.

Текст может быть большой, поэтому редактирование и/или просмотр полного текста нужно открывать в отдельной форме.

Спасибо.

Screenshot_1.jpg

Link to post
Share on other sites

хотел сделать финт ушами с помощью z-index и position - но всё равно кнопка прячется под memo

Screenshot_3.jpg

Screenshot_4.jpg

Link to post
Share on other sites
1 hour ago, x11 said:

Нужна идея реализации, как повесить кнопку над компонентой TunimMemo, там, где красный квадратик.

UnimMemo1.ClientEvents.ExtEvents ->

function painted(sender, eOpts)
{
    var me=sender;
    me.bottomEditEl = Ext.dom.Helper.insertBefore(me.inputElement, {
        tag: 'span', 
        class: 'x-fa fa-edit', 
        style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;'
    }); 
    
    me.bottomEditEl.addEventListener('click', function(){
        ajaxRequest(me, 'bedtclick', []);
    });
}

 

  • Like 1
Link to post
Share on other sites

Спасибо, то что надо.

 

Маленький шрих.

Если получится, будет вообще класс.

Обратите внимание ,что кнопка у memo более яркая, отличается от остальных, а они более тусклые.

Можно ли и кнопку у memo сделать такой же тусклой, чтобы она не выделялась?

 

Screenshot_5.jpg

Link to post
Share on other sites

А как вместо "gray" указать цвет кнопок из темы?

Т.е. можно ли там указать имя переменной, которая связана с цветом выбранной темы?

Screenshot_4.jpg

Link to post
Share on other sites
5 hours ago, x11 said:

А как вместо "gray" указать цвет кнопок из темы?

Есть одно решение, попробуйте.

Но на форме, должна быть одна компонента с "иконкой"...

function painted(sender, eOpts)
{
    var me=sender;
    me.bottomEditEl = Ext.dom.Helper.insertBefore(me.inputElement, {
        tag: 'span', 
        class: 'x-fa fa-edit', 
        style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;'
    }); 
    
    me.bottomEditEl.addEventListener('click', function(){
        ajaxRequest(me, 'bedtclick', []);
    });
    
    Ext.onReady(function() {
        if (sender.bottomEditEl && Ext.select('.x-trigger .x-icon-el').elements[0]) {
            sender.bottomEditEl.style.color = Ext.get(Ext.select('.x-trigger .x-icon-el').elements[0].id).getStyle('color');
        }
    });
}

 

Link to post
Share on other sites
11 hours ago, Sherzod said:

Но на форме, должна быть одна компонента с "иконкой"...

Этого не понял, какая именно компонента?

Должна ли быть эта компоненты видимой или её можно сделать невидимой?

Link to post
Share on other sites

Ну я подумал, что предварительно нужно на форму кинуть какую-нибудь компоненту с иконкой, например, отдельную кнопку и из этой кнопки  будет взята иконка для кнопки memo.

Link to post
Share on other sites
2 minutes ago, x11 said:

Ну я подумал, что предварительно нужно на форму кинуть какую-нибудь компоненту с иконкой, например, отдельную кнопку и из этой кнопки  будет взята иконка для кнопки memo.

Нет.

Link to post
Share on other sites
function painted(sender, eOpts)
{
    var me=sender;
    me.bottomEditEl = Ext.dom.Helper.insertBefore(me.inputElement, {
        tag: 'span', 
        class: 'x-fa fa-edit', 
        style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;'
    }); 
    
    me.bottomEditEl.addEventListener('click', function(){
        ajaxRequest(me, 'bedtclick', []);
    });
    
    Ext.onReady(function() {
        if (sender.bottomEditEl && Ext.select('.x-trigger .x-icon-el').elements[0]) {
            sender.bottomEditEl.style.color = Ext.get(Ext.select('.x-trigger .x-icon-el').elements[0].id).getStyle('color');
        }
    });
}
function beforeInit(sender, config)
{
    config.triggers = [
        {
            iconCls: 'x-fa fa-edit', 
            style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;', 
            handler: function() {
                console.log('edit'); //ajaxRequest
            }
        }
    ];
}

 

  • Like 1
Link to post
Share on other sites

Спасибо. Работает

function beforeInit(sender, config)
{
    config.triggers = [
        {
            iconCls: 'x-fa fa-edit', 
            style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;', 
            handler: function() {
                ajaxRequest(this, 'btnEditMemoAdClick', []);
            }
        }
    ];
}

 

  • Like 1
Link to post
Share on other sites

Было бы неплохо, если бы и в Memo разработчики добавили триггеры (кнопки), как в других компонентах.

Screenshot_86.jpg

Link to post
Share on other sites
1 hour ago, x11 said:

@Sherzod а как добавить несколько кнопок, как на картинке выше?

function beforeInit(sender, config)
{
    config.triggers = [
        {
            iconCls: 'x-fa fa-clone', 
            style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 45px;', 
            handler: function() {
                ajaxRequest(this, 'btnCloneMemoAdClick', []);
            }
        },
        {
            iconCls: 'x-fa fa-edit', 
            style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 20px;', 
            handler: function() {
                ajaxRequest(this, 'btnEditMemoAdClick', []);
            }
        }, 
        {
            iconCls: 'x-fa fa-share-alt', 
            style: 'position: absolute; font-size: 1.4em; padding: 5px; bottom: 0; right: 0;', 
            handler: function() {
                ajaxRequest(this, 'btnShareMemoAdClick', []);
            }
        }
    ];
}

 

  • Like 1
Link to post
Share on other sites
  • 3 months later...

А так, как показано выше пробовали и не получилось?

Кстати, есть еще вариант. Кинуть uniMemo внутрь uniPanel, а уже у компоненты uniPanel использовать новый функционал кнопок в заголовке

Screenshot_5.jpg

Link to post
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...