You've already forked lazarus-ccr
TvPlanIt: Avoid windows-like messages in printing routines (fixes crashes in cocoa related to PrintPreview).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8888 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -84,7 +84,7 @@ type
|
||||
end;
|
||||
PVpPageInfo = ^TVpPageInfo;
|
||||
|
||||
TVpPrintPreview = class(TVpCustomControl)
|
||||
TVpPrintPreview = class(TVpCustomControl, IVpWatcher)
|
||||
private
|
||||
FBorderStyle: TBorderStyle;
|
||||
FControlLink: TVpControlLink;
|
||||
@@ -148,13 +148,15 @@ type
|
||||
procedure SetScrollBars;
|
||||
procedure SetZoomFactor(const v: TVpPPZoomFactor);
|
||||
|
||||
// procedure VpPrintFormatChanged (var Msg : {$IFNDEF LCL}TMessage{$ELSE}TLMessage{$ENDIF}; message Vp_PrintFormatChanged;
|
||||
{$IFDEF DELPHI}
|
||||
procedure VpPrintFormatChanged (var Msg: TMessage); message Vp_PrintFormatChanged;
|
||||
procedure WMEraseBackground(var Msg: TWMERASEBKGND); message WM_ERASEBKGND;
|
||||
procedure WMHScroll(var Msg: TWMSCROLL); message WM_HSCROLL;
|
||||
procedure WMVScroll(var Msg: TWMSCROLL); message WM_VSCROLL;
|
||||
procedure WMRButtonDown(var Msg: TWMRButtonDown); message WM_RBUTTONDOWN;
|
||||
{$ELSE}
|
||||
procedure VpDatastoreChanged;
|
||||
procedure VpPrintFormatChanged;
|
||||
procedure WMEraseBackground(var Msg: TLMERASEBKGND); message LM_ERASEBKGND;
|
||||
procedure WMHScroll(var Msg: TLMSCROLL); message LM_HSCROLL;
|
||||
procedure WMVScroll(var Msg: TLMSCROLL); message LM_VSCROLL;
|
||||
@@ -275,7 +277,7 @@ end;
|
||||
destructor TVpPrintPreview.Destroy;
|
||||
begin
|
||||
if (HandleAllocated) and Assigned (FControlLink) then
|
||||
FControlLink.Printer.DeregisterWatcher(Handle);
|
||||
FControlLink.Printer.DeregisterWatcher({$IFDEF LCL}Self{$ELSE}Handle{$ENDIF});
|
||||
|
||||
ClearPageData;
|
||||
|
||||
@@ -359,12 +361,12 @@ end;
|
||||
procedure TVpPrintPreview.CreateWnd;
|
||||
begin
|
||||
if HandleAllocated and Assigned(FControlLink) then
|
||||
FControlLink.Printer.DeRegisterWatcher(Handle);
|
||||
FControlLink.Printer.DeRegisterWatcher({$IFDEF LCL}Self{$ELSE}Handle{$ENDIF});
|
||||
|
||||
inherited CreateWnd;
|
||||
|
||||
if Assigned(FControlLink) then
|
||||
FControlLink.Printer.RegisterWatcher(Handle);
|
||||
FControlLink.Printer.RegisterWatcher({$IFDEF LCL}Self{$ELSE}Handle{$ENDIF});
|
||||
end;
|
||||
|
||||
procedure TVpPrintPreview.DoScroll(var Msg: {$IFNDEF LCL}TWMSCROLL{$ELSE}TLMScroll{$ENDIF};
|
||||
@@ -980,10 +982,10 @@ procedure TVpPrintPreview.SetControlLink(const v: TVpControlLink);
|
||||
begin
|
||||
if FControlLink <> v then begin
|
||||
if Assigned (FControlLink) then
|
||||
FControlLink.Printer.DeregisterWatcher(Handle);
|
||||
FControlLink.Printer.DeregisterWatcher({$IFDEF LCL}Self{$ELSE}Handle{$ENDIF});
|
||||
FControlLink := v;
|
||||
if Assigned(FControlLink) then
|
||||
FControlLink.Printer.RegisterWatcher(Handle);
|
||||
FControlLink.Printer.RegisterWatcher({$IFDEF LCL}Self{$ELSE}Handle{$ENDIF});
|
||||
ClearPageData;
|
||||
GeneratePageImage;
|
||||
Invalidate;
|
||||
@@ -1123,12 +1125,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{$IFNDEF LCL}
|
||||
procedure TVpPrintPreview.VpPrintFormatChanged(var Msg: {$IFNDEF LCL}TMessage{$ELSE}TLMessage{$ENDIF});
|
||||
procedure TVpPrintPreview.VpDatastoreChanged;
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TVpPrintPreview.VpPrintFormatChanged({$IFNDEF LCL}var Msg: TMessage{$ENDIF});
|
||||
begin
|
||||
ForceUpdate;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
procedure TVpPrintPreview.WMEraseBackground(var Msg: {$IFDEF DELPHI}TWMERASEBKGND){$ELSE}TLMERASEBKGND){$ENDIF};
|
||||
begin
|
||||
|
Reference in New Issue
Block a user