Текущий архив: 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