TOleServer и его модуль не доступны для Firmenkey в Delphi?
Как следует из названия, я не могу найти этот блок.
Есть ли эквивалент?
Я пытаюсь перенести модуль из VCL в Firemonkey, который содержит OleServer
в его uses
пункт, но я не могу найти никакой информации на веб-сайте Embarcaderos относительно этой проблемы.
Я также попытался Google это, но безуспешно.
Где я могу найти TOleServer
и / или его блок OleServer
что совместимо с Firemonkey?
Или как я могу реализовать этот модуль в моем проекте Firemonkey?
2 ответа
Привет, у меня такая же проблема раньше, и я внес изменения в OleServer
- Скопируйте Vcl.OleSever в свой проект и переименуйте его в FMX.OleServer
- в разделе реализации поменять вот так:
implementation
uses
FMX.Controls;
resourcestring
sNoRunningObject = 'Unable to retrieve a pointer to a running object registered with OLE for %s/%s';
- при инициализации измените раздел на FMX.Controls.TControl
initialization
GroupDescendentsWith(TOleServer, FMX.Controls.TControl);
end.
- Наконец, переименуйте VCL.OleServer в FMX.OleServer в импортированном модуле библиотеки.
Действительно, основной проблемой при компиляции модулей TLB (typelibrary) для серверов COM/OLE, по-видимому, является некоторое переименование модулей, которое произошло. В идеале Delphi IDE должна автоматически обнаруживать это и исправлять.
На основании приведенного выше комментария Дуга Радда я исправил "использует OleServer", чтобы "использовать Vcl.OleServer" в моем блоке TLB.
Так как в папке установки Delphi есть папка "source" даже для версии Pro сейчас (по крайней мере в версии 10.2.2 Tokyo, которую я сейчас использую), я также мог легко определить (используя бесплатный инструмент GrepWin), где "EmptyParam" это привело к тому, что мой TLB не скомпилировался. Он находится под модулем System.Variants, который также необходимо использовать в их TLB (до того, как он был в System, поэтому вам не нужно было использовать какой-то модуль для него).
Полагаю, я мог бы снова импортировать сервер COM/OLE, чтобы создать новый модуль импорта TLB, но так как он был ручным (чтобы удалить использование модулей "Graphics", "StdVcl" и "OleCtrls", которые увеличивали размер исполняемого файла в более старых версиях) версий Delphi) и того, что вручную отредактированный импортированный TLB работал нормально для приложения командной строки, у меня не было никаких причин для повторного импорта библиотеки типов.
Вы можете увидеть изменения, которые я сделал, чтобы мой инструмент XSLer работал с последней версией Delphi, по адресу https://github.com/Zoomicon/tranXform/commit/e99f42049b8a4c1534d9edb78ed5e6493e6e5786. Этот инструмент командной строки XSLer использует сервер автоматизации MSXML (Microsoft XML).