|
Тема
|
Интересна грешка
|
|
Автор |
TRN (член) |
Публикувано | 20.07.02 11:33 |
|
Имам инсталиран Office 97 и Office XP. Програмите ми на Delphi 5, които използват Office 97 работеха добре, но изневиделица се появи следната грешка.
Unit Word(Excel) 97 was compiled with a differnet version of Office 97.Assistant.
Деинсталирах и инсталирах Delphi, но проблема не се разреши. Може би процедурата по деинсталиране и инсталиране на Office може да ми реши проблема, но ако някой предложи някакво решение...
| |
Тема
|
Re: Интересна грешка
[re: TRN]
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 21.07.02 22:57 |
|
При инсталиране на Delphi то пита за версията на Office. Причината е банална - в самото Delphi има написани голям брой сървъри за Office. Лошото е обаче че дори и в Delphi 6 сървърите са ориентирани до Office 2000.
Решението на проблема е твърде банално и същевременно твърде неприятно - компонентите от офиса да се ползват без готовите сървъри - например с Ole. Тогава грешки няма да има, но трябва да се познава COM и ала-балата с управлението и структурата на обектите от офиса.
чети и дишай по-леко
| |
|
Това е много лошо. Значи казваш, че ще имам проблеми с другите офиси като моята програма е за 2000. COM ще ме спаси ли ? Спомням си, че имах някакво трудност, но мога да го портна.
by Waz Gaa
| |
|
function GetSelText: string;
var
WordApp: Variant;
begin
try
WordApp := GetActiveOleObject('Word.Application');
Result := WordApp.Selection.Range.Text;
except
Result := '';
end;
end;
Tova ne bi trqbvalo da ima problemi s machina s Word, nezavisimo ot versiqta nali ?
by Waz Gaa
| |
Тема
|
Re: Интересна грешка
[re: Waz Gaa]
|
|
Автор |
TRN (член) |
Публикувано | 22.07.02 21:52 |
|
Не съм се задълбавал много с офисите. Правих програми за връзка с Word и Excel 97 и след като излезе Delphi 6 се опитах да ги настроя на Word 2000, но се оказа, че почти всички функции имат допълнителни параметри и не ми се занимаваше наново да ги изследвам, и продължих с 97. След инсталацията на Office XP случайно пуснах една програма, която е правена за 97 и за мое учудване работеше нормално.
| |
Тема
|
Re: Интересна грешка
[re: Waz Gaa]
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 23.07.02 09:18 |
|
Значи историята е следната:
Word, Excel и прочие дивотии са организирани като COM обекти. За да можеш да им ползваш свойствата, методите и прочие трябва да укажеш на кой обект какво викаш. Единия вариант е да го указваш като просто го знаеш - OLE. Другия вариант е да опишат методите му, както е направено със стандартните контроли и тутурутките на обекта да са "видими" с Delphi. Така са написани компонентите от палитра Servers.
Проблем може да има когато се ползва офис Х, а се използват сървърите /компонентите/ за офис У - може да се различава описанието им. В общия случай е по-безопасно да се ползва Ole-то - понеже човек гледа от M$ документацията и ще ползва само по-стандартните методи. Но силата на Delphi е в удобството - затова има смисъл да се ползват сървърите - за да не си играе човек да помни "къв беше тоя метод и кви му беа параметрите..."
Друг интересен и стандартен начин да не се ползват готовите сървъри е да се импортне TLB-то на интересуващия ни обект, в него са описани всичките му дивотии. Подобно упражнение има силен смисъл когато интересуващата ни част от Windows, Office и т.н. не е описана в Delphi - например за Internet Explorer.
чети и дишай по-леко
| |
|
|
|
|