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

Вниз

Как и откуда вытащить все имена процедур, функций и констант VBA   Найти похожие ветки 

 
Slym   (2003-10-10 08:06) [0]

Как и откуда вытащить все имена процедур, функций и констант VBA.
Редактор VBA берет откуда-то!


 
KSergey   (2003-10-10 08:22) [1]

О каких именно константах идет речь?
Расскажите миру, для какого COM-сервера MS Office (как я подозреваю) вы пытаетесь работать.


 
Digitman   (2003-10-10 08:24) [2]

какого VBA ? конкретно ?
речь идет о реализации какого-то из VBA для одного из продуктов в составе МС ОФиса ?

эта инф-ция хранится как правило в отдельных файлах с расширением *.olb (Object Library) или *.tlb (Type Library)

библиотеки типов как правило регистрируются продуктом, их представляющим, в реестре, в ключе HKEY_CLASSES_ROOT\TypeLib, после чего они становятся доступными для импорта в Делфи (см. Project | Import Type Library ..)


 
Digitman   (2003-10-10 08:28) [3]

кр.того, в составе MS Visual Studio есть GUI-утилита OLEView.exe - отличный помощник в просмотре и исследовании зарегистрированных в системе фабрик классов и библиотек типов


 
Slym   (2003-10-10 08:36) [4]

TScriptControl
для него пишу редактор выражений... и соответственно нужен список процедур языка VBA... для работы со строками, датами и пр.


 
Digitman   (2003-10-10 08:52) [5]


> нужен список процедур языка VBA


хм...
ну, предположим, получил ты этот список ...
предположим, в списке имеется имя ф-ции "CStr", которую любой VBA-интерпретатор успешно распознает и исполняет

как ты намерен заставить VBA-интерпретатор исполнить эту ф-цию ?


 
Slym   (2003-10-10 09:05) [6]

TScriptControl - MicrosoftScriptControl
он понимает VBA, JScript и пр.
res:=TScriptControl.Eval("CStr(12+6)");
res - "18"!


 
Digitman   (2003-10-10 09:51) [7]

выполни импорт библиотеки типов в составе, например, файла VBA332.DLL... там то, что тебе нужно


 
Slym   (2003-10-10 10:15) [8]

2 Digitman
А подробнее... Куском кода
Ну импортировал... А куда тыкаться?


 
Slym   (2003-10-10 10:30) [9]

Тыкаюсь по интерфейсам- ничего не зарегистрированно.
а сама dll без DllRegisterServer


 
Slym   (2003-10-10 12:38) [10]

2 Digitman
Так и напиши "Незнаю"...


 
me   (2003-10-10 12:58) [11]

MSDN -> Platform SDK Documentation -> Tools and Scripting -> Scripting -> Windows Script Technologies -> VBScript (JScript)


 
Digitman   (2003-10-10 13:40) [12]


> Slym


я-то ,может, и "не знаю", но решить задачу мне не составит труда при необходимости, даже если "не знаю")

а вот ты, сударь, сидишь и ждешь готовенькое, всместо того чтобы рыться в док-ции и хэлпах. Лентяй !

гляди сюда , набросал тебе примерную логику, коль сам не всостоянии головой подумать)
дальше сам пляши от этой схемы
и книжку себе купи "Разработка COM-приложений в среде Delphi" Эрика Хармона.. взял я эту книжку и без особого труда за полчаса получил решение, хотя на практике ни разу не требовалось все это


//перечисление имен ф-ций
procedure TForm1.Button1Click(Sender: TObject);
var
itl: ITypeLib;
iti: ITypeInfo;
hr: hresult;
i, j: integer;
pta: PTypeAttr;
pfd: PFuncDesc;
AName, ADocStr: WideString;
AHelpContext: Integer;
begin
hr := LoadTypeLib(Widestring("C:\Program Files\Common Files\Microsoft Shared\VBA\vba332.dll"), itl);
olecheck(hr);
for i:= 0 to itl.GetTypeInfoCount - 1 do
begin
itl.GetTypeInfo(i, iti);
olecheck(iti.GetTypeAttr(pta));
try
case pta^.typekind of
TKIND_MODULE:
for j:= 0 to pta^.cfuncs - 1 do
begin
olecheck(iti.GetFuncDesc(j, pfd));
iti.GetDocumentation(pfd^.memid, @AName, @ADocStr, @AHelpContext, nil);
memo1.lines.add(aname);
end;
end;
finally
iti.ReleaseTypeAttr(pta);
end;
end;
end;



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

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

Наверх





Память: 0.48 MB
Время: 0.009 c
3-74026
stoper
2003-10-03 13:17
2003.10.23
Фильтр Query


1-74200
kaktus
2003-10-13 17:22
2003.10.23
перекодировка из Dos в Win


14-74374
Another
2003-10-02 20:54
2003.10.23
Найти книгу


8-74327
nuflin
2003-06-20 13:12
2003.10.23
графика и память


1-74186
Joisy
2003-10-09 09:23
2003.10.23
Редактор pas файлов





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