[ Igor. @ 05.03.2007. 23:40 ] @
Pozdrav svima,

Hitno mi je potrebna bilo kakva pomoc oko povezivanja POS aplikacije sa fiskalnim stampacem SHARP ER-A457P.
Da li je neko nesto tako vec radio? Imam neku ActiveX kontrolu ECRPrinter medjutim njihov primer iz Excela mi ne radi.
Kada pokusam da se kao u njihovom primeru zakacim na kasu delphi izbacuje poruku:
"Access violation at address 0045CC9F in module ... ... .. .. ".

Njihov primer u Excelu( nalazi se u prilogu ):
======================================================
Option Explicit

Private Sub btnEcho_Click()

With UserForm1.ECRPrn1

.Model = Worksheets("Uvod").Range("Model")
.TerminalNo = Worksheets("Uvod").Range("TerminalNo")

.CommPort = Worksheets("Uvod").Range("Port")
.CommPortSettings = Worksheets("Uvod").Range("Settings")

.SingleSales = Worksheets("Uvod").Range("SingleSales")

.SendRetry = Worksheets("Uvod").Range("SendRetry")
.ReceiveRetry = Worksheets("Uvod").Range("ReceiveRetry")
.RetryDelay = Worksheets("Uvod").Range("RetryDelay")

.TimeUpSend = Worksheets("Uvod").Range("TimeUpSend")
.TimeUpSendPrint = Worksheets("Uvod").Range("TimeUpSendPrint")

End With

With UserForm1.ECRPrn1
Range("EchoTest") = .ecrEcho("Test komunikacije")
End With

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row <> Range("EchoTest").Row And Target.Column <> Range("EchoTest").Column Then _
Range("EchoTest").Value = False
End Sub
===============================================================================
Moj primer u Delpiju:
==================
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ECRPrinter_TLB, StdCtrls, ActiveX, OleCtrls, OleServer, StdVCL,
OleConst, OleCtnrs, OleDB, OleDlg;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Printer : _ECRPrn;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
strECHO : WideString;
Test : boolean;
begin
Test := False;

try
With Printer do
begin
Model := 6; //Ovde stane Delphi
TerminalNo := '1';
CommPort := 1;
CommPortSettings := '9600,o,7,1';

SingleSales := True;
SendRetry := 2;
ReceiveRetry := 2;
RetryDelay := 2;
TimeUpSendPrint := 2;
TimeUpSend := 1;
end;

strECHO := 'Test komunikacije';
Test := Printer.ecrEcho(strECHO)

except
on E:Exception do
ShowMessage( Printer.LastInquiry );
end;
end;
[ savkic @ 06.03.2007. 10:13 ] @
> Hitno mi je potrebna bilo kakva pomoc oko povezivanja POS aplikacije sa fiskalnim stampacem SHARP ER-A457P.
> Da li je neko nesto tako vec radio? Imam neku ActiveX kontrolu ECRPrinter medjutim njihov primer iz Excela
> mi ne radi. Kada pokusam da se kao u njihovom primeru zakacim na kasu delphi izbacuje poruku:
> "Access violation at address 0045CC9F in module ... ... .. .. ".

Access violation obično znači da objekat nije inicijalizovan, da je nil. Proveri kako si uvezao ActiveX kontrolu i kako si je deklarisao. Pusti kod kroz debbuger i vidi šta se tamo dešava.
[ morlic @ 06.03.2007. 21:04 ] @
Gde kreiras instancu ovog printera:

Printer : _ECRPrn;

Ne vidim to nigde, a bez kreiranja nema koriscenja :)
[ Igor. @ 09.03.2007. 19:00 ] @
Iskreno ne znam kako da kreiram taj ActiveX objekat, nigde nema "Create" ili nesto slicno.