* Rework registering system and ReadElement so Barcode/QR classes are read correctly from stream

git-svn-id: trunk@38969 -
This commit is contained in:
michael 2018-05-10 14:11:40 +00:00
parent 0b296ac828
commit dcea95d536
3 changed files with 283 additions and 282 deletions

File diff suppressed because it is too large Load Diff

View File

@ -42,6 +42,7 @@ Type
Public
procedure Assign(Source: TPersistent); override;
Constructor Create(AOwner: TComponent); override;
Class Function ElementType : String; override;
// Will calculate the value to display. Either Value or evaluated expression.
Function BarcodeValue : String;
Procedure ReadElement(AReader: TFPReportStreamer); override;
@ -111,6 +112,11 @@ begin
FWeight:=2.0;
end;
class function TFPReportBarcode.ElementType: String;
begin
Result:='BarCode';
end;
procedure TFPReportBarcode.BeforePrint;
begin
@ -221,7 +227,7 @@ Const
begin
gElementFactory.RegisterClass('Barcode',TFPReportBarcode).SetIconFromBytes(Icon);
TFPReportBarcode.RegisterElement.SetIconFromBytes(Icon);
// Fallback renderer
gElementFactory.RegisterImageRenderer(TFPReportBarcode,@RenderBarcode);
end;
@ -229,7 +235,7 @@ end;
Procedure UnRegisterReportBarcode;
begin
gElementFactory.RemoveClass('Barcode');
TFPReportBarcode.UnRegisterElement;
end;
initialization

View File

@ -40,6 +40,7 @@ Type
procedure RecalcLayout; override;
Procedure DoWriteLocalProperties(AWriter: TFPReportStreamer; AOriginal: TFPReportElement=nil); override;
Public
Class Function ElementType : String; override;
procedure Assign(Source: TPersistent); override;
// Will calculate the value to display. Either Value or evaluated expression.
Function QRCodeValue : String;
@ -85,6 +86,11 @@ begin
AWriter.WriteBoolean('Center',Center);
end;
class function TFPReportQRCode.ElementType: String;
begin
Result:='QRCode';
end;
procedure TFPReportQRCode.Assign(Source: TPersistent);
Var
@ -209,7 +215,7 @@ Const
68,174, 66, 96,130);
begin
gElementFactory.RegisterClass('QRCode',TFPReportQRCode).SetIconFromBytes(Icon);
TFPReportQRCode.RegisterElement.SetIconFromBytes(Icon);
// Fallback renderer
gElementFactory.RegisterImageRenderer(TFPReportQRCode,@RenderQRCode);
end;
@ -217,7 +223,7 @@ end;
Procedure UnRegisterReportQRCode;
begin
gElementFactory.RemoveClass('QRCode');
TFPReportElement.UnRegisterElement;
end;
initialization