여러분 안녕하세요, 오늘 전에 .NET 라이브러리를 사용한 적이 없다고 말하기 시작합니다..NET 모호한 일치가 발견되었습니다.
머리말
내가 고객의 라벨을 인쇄하기 위해 (액티브 X를 통해) NiceLabel 6를 사용하는 응용 프로그램을했습니다. NiceLabel (2017)의 새 버전은 이제 더 이상이 기술을 지원하지 않지만 .NET에서만 작동합니다. 저는 CrystalNet .Net 런타임 라이브러리 (Delphi 용)를 통해 .NET 라이브러리를 읽는 .pas 유닛을 만들었습니다. 델파이
에서 이용
.NET
나는 CrystalNet 제품에서 생성 된 일단의 .pas 기기를 사용하는 간단한 델파이 프로젝트를 만들었습니다. 여기에 소스 :unit Main;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls, SDK.NET.Interface_;
type
TfrmMain = class(TForm)
btnLoadLabel: TButton;
procedure btnLoadLabelClick(Sender: TObject);
private
NLLabel: TILabel;
NLLabelOle: OleVariant;
public
{ Public declarations }
end;
const
LabelPath = 'C:\Users\Eros\Desktop\nicelabel 2017\codesol\labels\';
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnLoadLabelClick(Sender: TObject);
begin
NLLabel := SDK.NET.Interface_.TILabel.Create(NLLabelOle);
end;
end.
델파이가 제대로 컴파일 문제 그러나 나는이 오류를 얻을 IB 실행하면
나는이의 영어 버전을 얻을 수 없다 오류가 있지만 다음과 비슷한 것으로 생각됩니다. "모호한 일치를 찾았습니다." 문제가 무엇인지 이해할 수 없으며 .NET의 주제를 매우 잘 모릅니다.
저는 CrystalNet에서 만든 단위가 올바르지 않다고 생각하지만 이해가되지 않습니다. 여기 명확히하기 위해 일부 기기가 약 3.000 선 길이 생성, 이동
uses
CNClrLib.Host, CNClrLib.Core, CNClrLib.Host.Utils, CNClrLib.Collections,
CNClrLib.System, CNClrLib.IO, CNClrLib.Runtime, CNClrLib.Xml,
CNClrLib.Drawing, CNClrLib.TypeNames, SDK.NET.Interface_Enums,
SDK.NET.Interface_Const;
type
{ Forward Declarations }
TIVariable = Class;
TIFieldList = Class;
TIDocumentRevisionArray = Class;
TIDocument = Class;
TIField = Class;
TILabelObjectList = Class;
TILabelSettings = Class;
TIPrintSettings = Class;
TIVariableList = Class;
TILabel = Class;
TILabelPreviewSettings = Class;
TIPrintRequest = Class;
TIPrintToGraphicsSettings = Class;
TIPrintToGraphicsResult = Class;
TILabelObject = Class;
TIPageLayout = Class;
TIControlCenterProperties = Class;
TIPrintServiceSettings = Class;
TIDocumentStorage = Class;
TISolution = Class;
TSDKException = Class;
TIPrintEngine = Class;
...
{ TILabel }
TILabel = Class(TClrBaseObject)
private
function Get_Author: String;
function Get_DataSets: _GenericList;
function Get_Description: String;
function Get_Directory: String;
function Get_FileName: String;
function Get_FilePath: String;
function Get_LabelObjects: TILabelObjectList;
function Get_LabelSettings: TILabelSettings;
function Get_PrintSettings: TIPrintSettings;
function Get_Revision: Integer;
function Get_Title: String;
function Get_Variables: TIVariableList;
public
constructor Create(AObjVar: OleVariant);
function Clone: TILabel;
procedure CreateLabelVariant(outputFileName: String; printTimeDataSourceNames: _StringArray);
function CreateXMLLabelInformation: _XDocument;
procedure EndSessionPrint(sessionPrintRequest: TISessionPrintRequest);
function GetLabelPreview(settings: TILabelPreviewSettings): Olevariant;
function Print(quantity: Integer): TIPrintRequest;
function PrintAll: TIPrintRequest;
function PrintAllAsync: TIPrintRequest;
function PrintAsync(quantity: Integer): TIPrintRequest;
function PrintToGraphics(settings: TIPrintToGraphicsSettings): TIPrintToGraphicsResult;
procedure SaveAs(fileName: String; overwrite: Boolean);
procedure SessionPrint(quantity: Integer; sessionPrintRequest: TISessionPrintRequest);
procedure SetVariableValues(variablesList: String; ignoreMissingVariables: Boolean);
procedure SetVariableValuesXml(variablesList: String; ignoreMissingVariables: Boolean);
function StartSessionPrint: TISessionPrintRequest;
procedure StoreToPrinter(labelName: String; storeVariant: String);
property Author: String read Get_Author;
property DataSets: _GenericList read Get_DataSets;
property Description: String read Get_Description;
property Directory: String read Get_Directory;
property FileName: String read Get_FileName;
property FilePath: String read Get_FilePath;
property LabelObjects: TILabelObjectList read Get_LabelObjects;
property LabelSettings: TILabelSettings read Get_LabelSettings;
property PrintSettings: TIPrintSettings read Get_PrintSettings;
property Revision: Integer read Get_Revision;
property Title: String read Get_Title;
property Variables: TIVariableList read Get_Variables;
end;
...
{ TILabel }
constructor TILabel.Create(AObjVar: OleVariant);
begin
inherited Create(AObjVar);
end;
function TILabel.Clone: TILabel;
begin
Result := TILabel(TClrBaseObject.CreateInstance(InvokeMethod('Clone')));
end;
procedure TILabel.CreateLabelVariant(outputFileName: String; printTimeDataSourceNames: _StringArray);
begin
InvokeMethod('CreateLabelVariant', [S_CnClr_System_String, sC_Sys_StringArray], [outputFileName, printTimeDataSourceNames]);
end;
function TILabel.CreateXMLLabelInformation: _XDocument;
begin
Result := CoXDocument.Wrap(InvokeMethod('CreateXMLLabelInformation'));
end;
procedure TILabel.EndSessionPrint(sessionPrintRequest: TISessionPrintRequest);
begin
InvokeMethod('EndSessionPrint', [sC_NicSDK_ISessionPrintRequest], [GetDefaultIntf(sessionPrintRequest)]);
end;
function TILabel.GetLabelPreview(settings: TILabelPreviewSettings): Olevariant;
begin
Result := InvokeMethod('GetLabelPreview', [sC_NicSDK_ILabelPreviewSettings], [GetDefaultIntf(settings)]);
end;
function TILabel.Print(quantity: Integer): TIPrintRequest;
var
objVar: OleVariant;
begin
Result := nil;
objVar := InvokeMethod('Print', [S_CnClr_System_Int32], [quantity]);
if VarIsAssigned(objVar) then
Result := TIPrintRequest(TClrBaseObject.Create(objVar));
end;
function TILabel.PrintAll: TIPrintRequest;
begin
Result := TIPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('PrintAll')));
end;
function TILabel.PrintAllAsync: TIPrintRequest;
begin
Result := TIPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('PrintAllAsync')));
end;
function TILabel.PrintAsync(quantity: Integer): TIPrintRequest;
var
objVar: OleVariant;
begin
Result := nil;
objVar := InvokeMethod('PrintAsync', [S_CnClr_System_Int32], [quantity]);
if VarIsAssigned(objVar) then
Result := TIPrintRequest(TClrBaseObject.Create(objVar));
end;
function TILabel.PrintToGraphics(settings: TIPrintToGraphicsSettings): TIPrintToGraphicsResult;
var
objVar: OleVariant;
begin
Result := nil;
objVar := InvokeMethod('PrintToGraphics', [sC_NicSDK_IPrintToGraphicsSettings], [GetDefaultIntf(settings)]);
if VarIsAssigned(objVar) then
Result := TIPrintToGraphicsResult(TClrBaseObject.Create(objVar));
end;
procedure TILabel.SaveAs(fileName: String; overwrite: Boolean);
begin
InvokeMethod('SaveAs', [S_CnClr_System_String, S_CnClr_System_Boolean], [fileName, overwrite]);
end;
procedure TILabel.SessionPrint(quantity: Integer; sessionPrintRequest: TISessionPrintRequest);
begin
InvokeMethod('SessionPrint', [S_CnClr_System_Int32, sC_NicSDK_ISessionPrintRequest], [quantity, GetDefaultIntf(sessionPrintRequest)]);
end;
procedure TILabel.SetVariableValues(variablesList: String; ignoreMissingVariables: Boolean);
begin
InvokeMethod('SetVariableValues', [S_CnClr_System_String, S_CnClr_System_Boolean], [variablesList, ignoreMissingVariables]);
end;
procedure TILabel.SetVariableValuesXml(variablesList: String; ignoreMissingVariables: Boolean);
begin
InvokeMethod('SetVariableValuesXml', [S_CnClr_System_String, S_CnClr_System_Boolean], [variablesList, ignoreMissingVariables]);
end;
function TILabel.StartSessionPrint: TISessionPrintRequest;
begin
Result := TISessionPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('StartSessionPrint')));
end;
procedure TILabel.StoreToPrinter(labelName: String; storeVariant: String);
begin
InvokeMethod('StoreToPrinter', [S_CnClr_System_String, S_CnClr_System_String], [labelName, storeVariant]);
end;
function TILabel.Get_Author: String;
begin
Result := GetPropertyValue('Author');
end;
function TILabel.Get_DataSets: _GenericList;
begin
Result := CoGenericList.Wrap(GetPropertyValue('DataSets'));
end;
function TILabel.Get_Description: String;
begin
Result := GetPropertyValue('Description');
end;
function TILabel.Get_Directory: String;
begin
Result := GetPropertyValue('Directory');
end;
function TILabel.Get_FileName: String;
begin
Result := GetPropertyValue('FileName');
end;
function TILabel.Get_FilePath: String;
begin
Result := GetPropertyValue('FilePath');
end;
function TILabel.Get_LabelObjects: TILabelObjectList;
var
objVar: OleVariant;
begin
Result := nil;
objVar := GetPropertyValue('LabelObjects');
if VarIsAssigned(objVar) then
Result := TILabelObjectList(TClrBaseObject.Create(objVar));
end;
function TILabel.Get_LabelSettings: TILabelSettings;
var
objVar: OleVariant;
begin
Result := nil;
objVar := GetPropertyValue('LabelSettings');
if VarIsAssigned(objVar) then
Result := TILabelSettings(TClrBaseObject.Create(objVar));
end;
function TILabel.Get_PrintSettings: TIPrintSettings;
var
objVar: OleVariant;
begin
Result := nil;
objVar := GetPropertyValue('PrintSettings');
if VarIsAssigned(objVar) then
Result := TIPrintSettings(TClrBaseObject.Create(objVar));
end;
function TILabel.Get_Revision: Integer;
begin
Result := GetPropertyValue('Revision');
end;
function TILabel.Get_Title: String;
begin
Result := GetPropertyValue('Title');
end;
function TILabel.Get_Variables: TIVariableList;
var
objVar: OleVariant;
begin
Result := nil;
objVar := GetPropertyValue('Variables');
if VarIsAssigned(objVar) then
Result := TIVariableList(TClrBaseObject.Create(objVar));
end;