Topic: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Добавление своего пункта меню для компонента TableGrid


Проект с примером:
http://myvisualdatabase.com/forum/misc. … download=1


Скрипт:

procedure Form1_OnShow (Sender: string; Action: string);
var
   MyItem1: TMenuItem;
begin
   MyItem1 := TMenuItem.Create (Form1);
   MyItem1.Caption := 'My Item1';
   MyItem1.OnClick := @MenuClick1;

   Form1.GridEmployees.dbPopupMenu.Items.Insert(0, MyItem1);
end;

procedure MenuClick1;
begin
    ShowMessage('Hello from PopupMenu');
end;

begin
end.
Dmitry.

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

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

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Somovn wrote:

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

procedure Form1_OnShow (Sender: string; Action: string);
var
   MyItem1: TMenuItem;
begin
   MyItem1 := TMenuItem.Create (Form1);
   MyItem1.Caption := 'Delete Record';
   MyItem1.OnClick := @MenuClick1;

   Form1.GridEmployees.dbPopupMenu.Items.Insert(0, MyItem1);
end;

procedure MenuClick1;
begin
    Form1.bDelete.Click;
end;

begin
end.

где Form1.bDelete - это кнопка с действием "Удалить запись"

Dmitry.

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

У меня сейчас при таком раскладе, закрыв и открыв форму добавляется еще один такой же пункт. Трижды открыл/закрыл - трижды "Удалить запись". Как вылечить?
И можно ли скрыть дефолтное меню?

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Raspr wrote:

У меня сейчас при таком раскладе, закрыв и открыв форму добавляется еще один такой же пункт. Трижды открыл/закрыл - трижды "Удалить запись". Как вылечить?
И можно ли скрыть дефолтное меню?

Используйте событие OnShow главной формы, для создания меню на других формах.

Dmitry.

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Отлично, работает. Только хотелось для админа лишь возможность такую допустить. А при таком раскладе не выйдет, т.к. админ иль нет при клике информацию получаем. Есть какой-то выход?

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

И можно ли скрыть дефолтное меню?

т.е. в гриде родное...???

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Роман wrote:

т.е. в гриде родное...???

Да.

По разрешению удаления с помощью меню скрыть пункт не для админа не удалось. Пока ограничился тем, что действия не происходит не для админа. Но вопрос актуален. Можно ли как-то скрыть?

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Raspr
К сожалению не совсем понял, что именно необходимо скрыть? созданный пункт "Удалить запись" во всплывающем меню компонента TableGrid?

Dmitry.

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

1. Да. Можно ли реализовать скрытие пункта меню в TableGrid не для администратора. Т.к. меню я создаю при OnShow главной формы, а переменную админ/нет получаю позже, по клику мышки - скрыть этот пункт мне не удается.
2. Можно ли вообще скрыть/заменить пункты этого меню формирующиеся по умолчанию?

11 (edited by Роман 2016-04-06 12:51:23)

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Вот эн-то надо скрыть...родные...

Post's attachments

Attachment icon Скриншот.png 16.67 kb, 449 downloads since 2016-04-06 

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Скрыть можно так

Form1.TableGrid1.dbPopupMenu.Items.Items[0].Visible := False; // скроет первый пункт в меню
Form1.TableGrid1.dbPopupMenu.Items.Items[1].Visible := False; // скроет второй пункт в меню и т.д.
Dmitry.

13 (edited by Роман 2016-04-06 23:57:59)

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Ух-ты РАБОТАЕТ.....!!!!!!!!!!!
Спасибочки.....многократно....
А у TableGrid1 в меню возможно сделать еще и подменю!??????
А у TableGrid1 название меню сделать жирный шрифт!????????

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Роман wrote:

А у TableGrid1 в меню возможно сделать еще и подменю!??????
А у TableGrid1 название меню сделать жирный шрифт!????????


Жирный шрифт в меню сделать нельзя, подменю можно, скачайте пожалуйста данный проект с примером

Post's attachments

Attachment icon Grid PopupMenu add subitem.zip 6.88 kb, 852 downloads since 2016-04-07 

Dmitry.

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

КЛАСС!!!
С Уважением и Благодарностью Роман!!!

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

Подскажите как в меню нарисовать горизонтальные разделители?

Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid

indigen wrote:

Подскажите как в меню нарисовать горизонтальные разделители?

в свойстве Caption напишите тире

var
   MyItem1: TMenuItem;
begin
   MyItem1 := TMenuItem.Create (Form1);
   MyItem1.Caption := '-';
Dmitry.