Мне удалось решить несколько проблем и установить «GMLib_DXE4.bpl».Компиляция GMLib 1.1.0 в XE5
Теперь у меня есть две проблемы с компиляцией «GMLib_DXE4_VCL.bpl».
[dcc32 Error] GMMapVCL.pas (124): E2003 необъявленный идентификатор: '' TTimer
[dcc32 Error] WebControlVCL.pas (180): E2029 Идентификатор ожидается, но 'РЕАЛИЗАЦИЯ' найдено: решаемые.
Что касается TTimer:
uses
{$IFDEF WEBBROWSER}
SHDocVw,
{$IFDEF DELPHIXE2}
Vcl.ExtCtrls,
{$ELSE}
ExtCtrls,
{$ENDIF}
{$ENDIF}
{$IFDEF CHROMIUM}
cefvcl, ceflib, cefgui,
{$ENDIF}
{$IFDEF DELPHIXE2}
System.SysUtils, System.Classes, Vcl.Dialogs, Vcl.Graphics,
{$ELSE}
SysUtils, Classes, Dialogs, Graphics,
{$ENDIF}
GMMap, GMFunctionsVCL;
Что касается реализации: решаемые.
unit WebControlVCL;
{.$DEFINE WEBBROWSER}
{.$DEFINE CHROMIUM}
{$I ..\gmlib.inc}
interface
uses
{$IFDEF WEBBROWSER}
MSHTML, SHDocVw,
{$ENDIF}
{$IFDEF CHROMIUM}
ceflib, cefvcl,
{$ENDIF}
{$IFDEF DELPHIXE2}
System.SysUtils,
{$ELSE}
SysUtils,
{$ENDIF}
WebControl;
type
-------------------------------------------------------------------------------}
{$IFDEF WEBBROWSER}
TWebControl = class(TCustomWeb)
protected
function WebFormGet(const FormNumber: Integer): IHTMLFormElement;
function WebFormFieldValue(const FormIdx: Integer; const FieldName: string): string; overload; override;
public
constructor Create(WebBrowser: TWebBrowser); reintroduce; virtual;
.....
end;
{$ENDIF}
{$IFDEF CHROMIUM}
TWebChromium = class(TCustomWebChromium)
protected
function WebFormFieldValue(const FormIdx: Integer; const FieldName: string): string; overload; override;
public
constructor Create(WebBrowser: TChromium); reintroduce; virtual;
.....
end;
{$ENDIF}
implementation
uses
{$IFDEF WEBBROWSER}
{$IFDEF DELPHIXE2}
Winapi.ActiveX, System.Types, Vcl.Graphics, Vcl.Forms, System.StrUtils,
{$ELSE}
ActiveX, Types, Graphics, Forms, StrUtils,
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHIXE2}
Vcl.Imaging.jpeg, System.DateUtils;
{$ELSE}
jpeg, DateUtils;
{$ENDIF}
{ TWebControl }
{$IFDEF WEBBROWSER}
constructor TWebControl.Create(WebBrowser: TWebBrowser);
begin
inherited Create(WebBrowser);
end;
Когда WEBBROWSER и CHROMIUM не определены, вы получаете пустой раздел типа, за которым следует реализация ключевого слова, а следовательно второе сообщение об ошибке. Лучше всего включить ключевое слово type в обоих IFDEF. –
Спасибо. Работал. – Vladds7
, хотя Toon Krijthe являются правильными, GMLib требует хотя бы одного браузера для запуска. Если вы не определяете, GMLib не может работать (на данный момент работает только с TWebBrowser). У вас есть версия XE5 в репозитории SNV. – cadetill