Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 что включить в XE5 чтобы он заработал с OLE?  [new]
Snickbw
Member

Откуда:
Сообщений: 445
Ситуация: Решил переписать на XE5 старую программку (написанную в D7-BDS2010-XE2-XE5) работы с ФР ШТРИХМ (через OLE).
Пример под спойлером.
+

unit UnitPunktMain;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, ComObj, Vcl.Buttons;

type
  TFMain = class(TForm)
    SpeedButton1: TSpeedButton;
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
end;

var
  FMain: TFMain;

implementation

{$R *.dfm}

procedure TFMain.SpeedButton1Click(Sender: TObject);
var ss:String;
  ECR:OleVariant;//ККМ
begin
      try
        ECR := CreateOleObject('AddIn.DrvFR');
        ECR.Password:=30;
        if (ECR.GetECRStatus=0)and
           (ECR.GetShortECRStatus=0)
        then
          begin
            ss:='';
            ss:=ss+'Режим: '+inttostr(ECR.ECRMode)+' '+(ECR.ECRModeDescription);
            ss:=ss+#10+#13;
            ss:=ss+'Серийный номер:'+inttostr(ECR.SerialNumber);
            Application.MessageBox(PWideChar(ss), PChar('Статус ФР'), MB_ICONINFORMATION + MB_OK);
          end
        else
          begin
            MessageDlg(' Установить соединение с ФР не удалось. ',mtError,[mbClose],0);
          end;
      finally
        ECR := 0;
      end;
end;

end.


Проблема: новый проект в XE5 запускается без ошибок, но данных с OLE не получает. Если этот же код запустить в старом проекте (откомпилированном в этом же XE5) - OLE нормально отвечает. Я так понимаю, надо где-то что-то вкл/откл в настройках project, но вот что?
Вопрос: Как заставить XE5 работать с OLE?
1 апр 21, 21:01    [22303122]     Ответить | Цитировать Сообщить модератору
 Re: что включить в XE5 чтобы он заработал с OLE?  [new]
JayDi
Member

Откуда: Сызрань, Россия
Сообщений: 4173
По умолчанию в новых проектах экзешники складываются в "...\Win32\Debug" -- мог потеряться какой-нибудь конфиг для подключения или dll-библиотека.

Сообщение было отредактировано: 1 апр 21, 23:16
1 апр 21, 23:23    [22303182]     Ответить | Цитировать Сообщить модератору
 Re: что включить в XE5 чтобы он заработал с OLE?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Snickbw
Я так понимаю, надо где-то что-то вкл/откл в настройках project, но вот что?
Неправильно понимаете. Нет такой настройки. Ищите дополнительный код инициализации объекта
1 апр 21, 23:25    [22303183]     Ответить | Цитировать Сообщить модератору
 Re: что включить в XE5 чтобы он заработал с OLE?  [new]
Snickbw
Member

Откуда:
Сообщений: 445
_Vasilisk_
Ищите дополнительный код инициализации объекта

Методом тыка выяснил, что что-то находиться в неродном для проекта 2кБ файле ресурсов. С ним OLE отвечает, без него нет. Буду пробовать выяснить что находиться внутри этого дополнительного .res файла.
2 апр 21, 09:05    [22303224]     Ответить | Цитировать Сообщить модератору
 Re: что включить в XE5 чтобы он заработал с OLE?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 27064
Snickbw
Буду пробовать выяснить что находиться внутри этого дополнительного .res файла.

Это в 99% включается в ресурсы во время компиляции и это можно просто перенести в новый проект без проблем.
Либо Resource explorer поможет.
2 апр 21, 09:45    [22303238]     Ответить | Цитировать Сообщить модератору
 Re: что включить в XE5 чтобы он заработал с OLE?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Snickbw
Буду пробовать выяснить что находиться внутри этого дополнительного .res файла.
Может там лицензионный ключ?
2 апр 21, 11:28    [22303279]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить