| 
| 
 | Вопрос # 1 701/ вопрос открыт / | 
 |  Здравствуйте! необходимо распечатать на фискальном регистраторе тескт, чтобы на чеке небыло ни версии ккм ни ИНН. Производитель прислал пример программирования на делфи. Так вот ехе запускается, а когда открываем код то не компилиться.ругается вот на эту функцию. подскажите что делать. (Архив с примером прикреплен). подскажите что надо изменить в коде.
 Приложение:Переключить в обычный режим function TfmMain.GetDriver: OleVariant;begin  if VarIsEmpty(FDriver) then    FDriver := CreateOleObject('Addin.DrvFR');  Result := FDriver;end; 
|  |   Вопрос задал: slonond (статус: Посетитель)Вопрос отправлен: 17 июня 2008, 12:35
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: rnt777 Здравствуйте, slonond!вопрос очень сжатый) что бы ответить на него хотелось бы знать где описана функция(в главном модуле или нет), как описана (возможно в описании типа TfmMain она отсутствует), как и где вызывается функция, какую ошибку выдает компилятор, и т.д.
 в данной ситуации я не могу сказать больше чем компилятор ;)
 
|  | Ответ отправил: rnt777 (статус: 1-ый класс)Время отправки: 17 июня 2008, 13:03
 
 |  Ответ #2. Отвечает эксперт: ANBsoft Здравствуйте, slonond!А что за ошибка. В какой версии делфи компилируете?
 Лучше запакуйте и выложите весь модуль, легче будет разбираться.
 
|  | Ответ отправил: ANBsoft (статус: Студент)Время отправки: 17 июня 2008, 14:26
 
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 19 июня 2008, 15:42; участников в обсуждении: 4. 
|   | slonond (статус: Посетитель), 17 июня 2008, 12:36 [#1]:вот весь код 
 unit fmuMain;
 
 interface
 
 uses
 // VCL
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls, StdCtrls, ExtCtrls, ComObj;
 
 type
 TfmMain = class(TForm)
 btnExecute: TButton;
 btnClose: TButton;
 Bevel1: TBevel;
 btnDriver: TButton;
 lblResult: TLabel;
 edtResult: TEdit;
 edtPrise: TEdit;
 edtDepartment: TEdit;
 edtSumma: TEdit;
 Label1: TLabel;
 Label2: TLabel;
 Label3: TLabel;
 Edit1: TEdit;
 Label4: TLabel;
 procedure btnCloseClick(Sender: TObject);
 procedure btnExecuteClick(Sender: TObject);
 procedure btnDriverClick(Sender: TObject);
 private
 FDriver: OleVariant;
 procedure UpdateResult;
 function GetDriver: OleVariant;
 property Driver: OleVariant read GetDriver;
 end;
 
 var
 fmMain: TfmMain;
 
 implementation
 
 {$R *.DFM}
 
 function TfmMain.GetDriver: OleVariant;
 begin
 if VarIsEmpty(FDriver) then
 FDriver := CreateOleObject('Addin.DrvFR');
 Result := FDriver;
 end;
 
 procedure TfmMain.btnCloseClick(Sender: TObject);
 begin
 Close;
 end;
 
 procedure TfmMain.UpdateResult;
 var
 ResultCode: Integer;
 ResultCodeDescription: string;
 begin
 ResultCode := Driver.ResultCode;
 ResultCodeDescription := Driver.ResultCodeDescription;
 edtResult.Text := Format('(%d) %s', [ResultCode, ResultCodeDescription]);
 end;
 
 procedure TfmMain.btnExecuteClick(Sender: TObject);
 var
 i,j:integer;
 begin
 btnDriver.Enabled := False;
 btnExecute.Enabled := False;
 try
 For j:=1 to StrToInt(Edit1.Text) do
 begin
 For i:=1 to 10 do
 begin
 Driver.Price := StrToCurr(edtPrise.Text);
 Driver.Quantity := i;
 Driver.Department := StrToInt(edtDepartment.Text);
 Driver.Tax1 := 0;
 Driver.Tax2 := 0;
 Driver.Tax3 := 0;
 Driver.Tax4 := 0;
 Driver.StringforPrinting := '';
 Driver.Sale; { Ïðîäàæà }
 if Driver.ResultCode<>0 then
 begin
 UpdateResult; exit;
 end;
 end;
 
 Driver.Summ1 := StrToCurr(edtSumma.Text);
 Driver.Summ2 := 0;
 Driver.Summ3 := 0;
 Driver.Summ4 := 0;
 Driver.Tax1 := 0;
 Driver.Tax2 := 0;
 Driver.Tax3 := 0;
 Driver.Tax4 := 0;
 Driver.DiscountOnCheck := 20;
 Driver.StringforPrinting := '';
 Driver.CloseCheck; { Çàêðûòèå ÷åêà }
 if Driver.ResultCode<>0 then
 begin
 UpdateResult; exit;
 end;
 
 Sleep(2000);
 end;
 UpdateResult;
 finally
 btnDriver.Enabled := True;
 btnExecute.Enabled := True;
 end;
 end;
 
 procedure TfmMain.btnDriverClick(Sender: TObject);
 begin
 btnDriver.Enabled := False;
 btnExecute.Enabled := False;
 try
 Driver.ShowProperties;
 UpdateResult;
 finally
 btnDriver.Enabled := True;
 btnExecute.Enabled := True;
 end;
 end;
 
 end.
 |  
|   | iPharaon (статус: 1-ый класс), 17 июня 2008, 15:28 [#2]:Ошибка вылетает из-за того, что не существует OLE класс "Addin.DrvFR". Я в этом не очень разбираюсь, но наверно вы сначала должны установить необходимое ПО для поддержки данного класса. Обратитесь к поставщику ПО для консультации.
 |  
|   | ANBsoft (статус: Студент), 17 июня 2008, 15:56 [#3]:Скорее всего у Вас есть DLL от поставщика. ЕЕ нужно зарегистрировать в системе примерно так:
 "regsvr32 имяДЛЛ"
 |  
|   | min@y™ (статус: Доктор наук), 18 июня 2008, 08:34 [#4]:Скорее всего данная ситуация должна быть описана производителем девайса в документации или в каком-нибудь файле ReadMe.txt. Поищи на прилагаемом у девайсу диске. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | slonond (статус: Посетитель), 19 июня 2008, 15:42 [#5]:Всем спасибо за ответы. Уже разобрался. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |