Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Как получить пункт меню ворда Отправить?   Найти похожие ветки 

 
Magedon ©   (2007-04-26 15:48) [0]

Как оно там называется внутри, что бы можно было найти через CommandBars.Get_Item(<название>);?


 
Magedon ©   (2007-04-26 15:52) [1]

И, пожалуйста, убейте спамеров http://delphimaster.net/view/1-1177518445/


 
ANB ©   (2007-04-26 16:12) [2]


> Magedon ©   (26.04.07 15:48)

Скорее всего у него такой стиль, что название не поможет. Надо дергать по ID.
И, имхо, проблематично это, управлять вордом через сообщения. Не проще ли подключить его как сервер автоматизации ?


 
Magedon ©   (2007-04-26 16:31) [3]

Это я к нему (Ворду) аддон пишу по статье А. Тенцера http://podgoretsky.com/ftp/Docs/Delphi/Tenser/1/ComAddIn.doc.

Только там он лепит кнопочку на панель форматирования, а мне нужно отправлять данные в мою прогу через Файл/Отправить.

Все работает, осталось только контрол с панели убрать и засунуть в меню.


 
Magedon ©   (2007-04-26 17:42) [4]

Спасибо, сам подобрал


 
umbra ©   (2007-04-26 17:53) [5]

Перечисляем все коммандбары в ворде

procedure EnumCommanBars(WordApp: Variant; list: TstrinList);
var
 cmdbar: variant;
 i: integer;
begin
  list.Clear;
  for i := 1 to wordapp.CommandBars.Count do
    begin
       cmdbar := wordapp.CommandBars[i];
       list.Add(cmdbar.Name + " " + cmdbar.NameLocal + " " + Inttostr(i);
    end;
 cmdbar := Unassigned;
end;

нас интересует главное меню, индекс которого 33, а в нем - подпункт "Файл", индекс которого в главном меню - 1

Перечисляем все пункты меню "Файл"

procedure EnumFileMenuControls(WordApp: Variant; list: TstrinList);
var
 ctrls: variant;
 i: integer;
begin
  list.Clear;
  ctrls := WordApp.CommandBars[33].Controls[1].CommandBar.Controls;
  for i := 1 to ctrls.Count do
        list.Add(ctrls.Item[i].Caption + " " + Inttostr(i);
  ctrls := Unassigned;
end;


 
Magedon ©   (2007-04-26 19:19) [6]

Спасибо.

Я нашел так:

const

 // Это мой идентификатор кнопки
 BUTTON_TAG = "{1A1552DC-9286-11D3-BCA0-00902759A497}";
...

var
 Bar: CommandBar;
 Button: CommandBarButton;

...

 Bar := WordApplication.CommandBars.Get_Item("Send To");
 Button := Bar.FindControl(msoControlButton, EmptyParam, BUTTON_TAG, EmptyParam,  msoFalse) as CommandBarButton;
 // ее нашел
 if Assigned(Button) then
   Button.Delete(msoFalse);


Все вроде работает, только кнопка из меню не удаляется.
Что нужно сделать, чтобы она от туда удалилась?


 
umbra ©   (2007-04-27 10:19) [7]


>  BUTTON_TAG = "{1A1552DC-9286-11D3-BCA0-00902759A497}";

а это та кнопка, которую Вы добавили с помощью аддона?


 
Magedon ©   (2007-04-27 11:39) [8]

Это мой уникальный идентификатор кнопки, который я потом ищу.

Это так А. Тенцер придумал. Я по его статье делаю аддочик.
Вот цитата:

>const
>   // Уникальный идентификатор кнопки. Можно задать любую уникальную
>   // строку. Для ее генерации удобно воспользоваться средствами
>   // Delphi по генерации GUID (Ctrl+Shift+G)
>   // Этот идентификатор понадобится нам для того, чтобы после
>   // создания кнопки иметь возможность ее найти.
>   BUTTON_TAG = "{1A1552DC-9286-11D3-BCA0-00902759A497}";

В исходнике коммент к ней

>// Уникальный идентификатор кнопки. Можно задать любую уникальную строку


Вот ссылочка на статью http://podgoretsky.com/ftp/Docs/Delphi/Tenser/1/index.html



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
8-1160000268
Владимир
2006-10-05 02:17
2007.06.24
Слайдшоу на DVD


15-1180348489
From
2007-05-28 14:34
2007.06.24
программы по моделированнию вроде Electronics Workbench


11-1163128856
SKA1997
2006-11-10 06:20
2007.06.24
ALT + TAB


15-1180183362
boriskb
2007-05-26 16:42
2007.06.24
Поносов обвинил прокуратуру в пиратстве


15-1180467051
Ricko
2007-05-29 23:30
2007.06.24
Помогите вспомнить