LazReport, fix barcode addin when TfrBarCodeObject is not yet instantiated (in this case barcode editor defaults to memo view editor

git-svn-id: trunk@36510 -
This commit is contained in:
jesus 2012-04-02 01:12:06 +00:00
parent 7ebaadc7bd
commit 23849c7fce
4 changed files with 23 additions and 11 deletions

View File

@ -17,7 +17,7 @@ object frBarCodeForm: TfrBarCodeForm
OnCreate = FormCreate
Position = poScreenCenter
ShowHint = True
LCLVersion = '0.9.31'
LCLVersion = '1.1'
object Label1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner

View File

@ -739,13 +739,8 @@ begin
end;
end;
{ TfrBarCodeObject }
constructor TfrBarCodeObject.Create(aOwner: TComponent);
procedure InitializeBarcAddin;
begin
inherited Create(aOwner);
if not assigned(frBarCodeForm) {and not (csDesigning in ComponentState)} then
begin
frBarCodeForm := TfrBarCodeForm.Create(nil);
@ -755,9 +750,17 @@ begin
end;
end;
{ TfrBarCodeObject }
constructor TfrBarCodeObject.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
InitializeBarcAddin;
end;
initialization
frBarcodeForm := nil;
frRegisterObject(TfrBarCodeView, nil, '', nil);
frRegisterObject(TfrBarCodeView, nil, '', nil, @InitializeBarcAddin);
finalization
if Assigned(frBarCodeForm) then

View File

@ -1125,10 +1125,12 @@ type
procedure DeCompress({%H-}StreamIn, {%H-}StreamOut: TStream); virtual;
end;
TfrAddinInitProc = procedure;
function frCreateObject(Typ: Byte; const ClassName: String): TfrView;
procedure frRegisterObject(ClassRef: TFRViewClass; ButtonBmp: TBitmap;
const ButtonHint: String; EditorForm: TfrObjEditorForm);
const ButtonHint: String; EditorForm: TfrObjEditorForm; InitProc:TfrAddinInitProc=nil);
procedure frSetAddinEditor(ClassRef: TfrViewClass; EditorForm: TfrObjEditorForm);
procedure frSetAddinIcon(ClassRef: TfrViewClass; ButtonBmp: TBitmap);
procedure frSetAddinHint(ClassRef: TfrViewClass; ButtonHint: string);
@ -1177,6 +1179,7 @@ type
EditorForm: TfrObjEditorForm;
ButtonBmp: TBitmap;
ButtonHint: String;
InitializeProc: TfrAddinInitProc;
end;
TfrExportFilterInfo = record
@ -1449,15 +1452,19 @@ begin
end;
procedure frRegisterObject(ClassRef: TfrViewClass; ButtonBmp: TBitmap;
const ButtonHint: String; EditorForm: TfrObjEditorForm);
const ButtonHint: String; EditorForm: TfrObjEditorForm; InitProc:TfrAddinInitProc=nil);
begin
frAddIns[frAddInsCount].ClassRef := ClassRef;
frAddIns[frAddInsCount].EditorForm := EditorForm;
frAddIns[frAddInsCount].ButtonBmp := ButtonBmp;
frAddIns[frAddInsCount].ButtonHint := ButtonHint;
if frDesigner <> nil then
frAddIns[frAddInsCount].InitializeProc := InitProc;
if frDesigner <> nil then begin
if Assigned(InitProc) then
InitProc;
frDesigner.RegisterObject(ButtonBmp, ButtonHint,
Integer(gtAddIn) + frAddInsCount);
end;
Inc(frAddInsCount);
end;

View File

@ -2373,6 +2373,8 @@ begin
for i := 0 to frAddInsCount - 1 do
with frAddIns[i] do
begin
if Assigned(frAddIns[i].InitializeProc) then
frAddIns[i].InitializeProc;
RegisterObject(ButtonBMP, ButtonHint, Integer(gtAddIn) + i);
end;