Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

Управление COM - сервером Excel   Найти похожие ветки 

 
Programmer1   (2002-08-01 15:58) [0]

Уважаемые мастера!!! Помогите, пожалуйста, в меню Файл в Excel"е впихнуть свою команду.
Почему-то в бейсике такой макрос работает
Set SaveTemplCommand = CommandBars("File"). _
Controls.Add(Type:=msoControlButton, Id:= _
2949, Before:=7)
With SaveTemplCommand
.Style = msoButtonIconAndCaption
.FaceId = 455
.Caption = "Сохранить как шаблон"
.OnAction = "SaveDg1Proc"

End With

А когда запускаю в дельфи
NameOfControl:="File";
Type1:=1;
Id1:=1;
Before1:=7;
Temporary:=false;
SaveTemplCommand:=Excel1.CommandBars.
Item[NameOfControl].Controls.
Add(Type1,Id1,EmptyParam,Before1,Temporary);
with SaveTemplCommand do
begin
Style := 3;
FaceId := 455;
Caption := "Сохранить как шаблон";
end;

то компилятор на строке "with SaveTemplCommand do" выдает ошибку "Record, object or class required"
Метод Add как раз и возвращает ссылку на объект типа CommandBarControl. Что ему не нравится?


 
Digitman   (2002-08-01 16:04) [1]

Ему, думаю, не нравится то же, что и мне. А мне, к примеру, не нравится, что ты не удосужилась даже привести строчку, где ты декларируешь этот самый идентификатор SaveTemplCommand.


 
Programmer1   (2002-08-01 16:06) [2]

Я все объявляю как OLEVariant


 
Programmer1   (2002-08-01 16:09) [3]

var
FileName:OLEVariant;
SaveTemplCommand, NameOfControl:OLEVariant;
Type1,Id1,Before1,Temporary:OLEVariant;
FileMenuOb,Cntrls:olevariant;
Style,FaceId,Caption,OnAction, index:olevariant;


 
Vitaly   (2002-08-01 16:12) [4]

SaveTemplCommand:=(Excel1.CommandBars as CommandBars).
Item[NameOfControl].Controls.
Add(Type1,Id1,EmptyParam,Before1,Temporary);


 
aus   (2002-08-02 00:30) [5]

ты не используй with, а конкретно указывай объект, свойства которого используешь. Для with нужен объект или запись, а не OleVariant, поэтому компилятор выдает ошибку.

SaveTemplCommand.Style := 3;
SaveTemplCommand.FaceId := 455;
SaveTemplCommand.Caption := "Сохранить как шаблон";


 
Programmer1   (2002-08-05 09:37) [6]

В коллекции
Excel1.CommandBars
всего я обнаружила 85 объектов типа CommandBar и среди них нет меню File, да и не должно быть, потому что это не строка меню, а входящий в нее управляющий элемент типа CommandBarPopup.
Заковыка в том, что метод
CommandBar.FinfdControl(....}
и свойство
CommandbBar.Controls.Item[Index]
возвращают ссылку на объект типа CommandBarControl, а не CommandBarPopup.
У объекта CommandBarControl нет свойства Controls и нельзя выполнить метод Controls.Add, а у CommandBarPopup - есть, и т.о.
с помощью CommandBarPopup.Controls.Add можно добавить команду в меню.
Как мне добраться до меню File, как CommandBarPopup?
Я пыталась делать приведение типов.
Выражение
MenuFileControl:=CommandBar.Controls.item[Index] as CommandBarPopup;
выдает ошибку "Operator not applicable to this type"
Как быть?



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

Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.032 c
4-48372
z_z
2002-06-10 23:03
2002.08.15
Форма на рабочем столе


3-47983
Glonia Zbanov
2002-07-26 15:24
2002.08.15
Передача данных


6-48217
Corte ™
2002-05-31 09:15
2002.08.15
Помогите!!!!


3-47926
sergey32
2002-07-24 18:27
2002.08.15
Обратная нотификация


1-48134
Bor
2002-08-01 11:23
2002.08.15
DLL->Form->DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский