Главная страница
    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.45 MB
Время: 0.007 c
6-48217
Corte ™
2002-05-31 09:15
2002.08.15
Помогите!!!!


1-48077
Dmk
2002-08-05 01:25
2002.08.15
Какой тип?


1-48073
ger_kostas
2002-08-02 18:44
2002.08.15
Шифрование данных (асиметричное)


3-47982
MsGuns
2002-07-24 16:59
2002.08.15
СРОЧНО !!!


14-48278
pkm
2002-07-21 16:23
2002.08.15
FAT





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский