Componentes.Terceros.FastRe.../internal/4.2/1/Source/frxDialogForm.pas
2007-11-18 19:40:07 +00:00

80 lines
2.0 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport v4.0 }
{ Dialog form }
{ }
{ Copyright (c) 1998-2007 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxDialogForm;
interface
{$I frx.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
{$IFDEF Delphi6}
, Variants
{$ENDIF};
type
TfrxDialogForm = class(TForm)
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
protected
procedure ReadState(Reader: TReader); override;
private
FOnModify: TNotifyEvent;
FThreadSafe: Boolean;
procedure WMExitSizeMove(var Msg: TMessage); message WM_EXITSIZEMOVE;
procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
public
constructor Create(AOwner: TComponent); override;
property OnModify: TNotifyEvent read FOnModify write FOnModify;
property ThreadSafe: Boolean read FThreadSafe write FThreadSafe;
end;
implementation
{$R *.DFM}
procedure TfrxDialogForm.WMExitSizeMove(var Msg: TMessage);
begin
inherited;
if Assigned(OnModify) then
OnModify(Self);
end;
procedure TfrxDialogForm.WMGetDlgCode(var Message: TWMGetDlgCode);
begin
Message.Result := DLGC_WANTARROWS or DLGC_WANTTAB;
end;
procedure TfrxDialogForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
procedure TfrxDialogForm.ReadState(Reader: TReader);
begin
if not ThreadSafe then
inherited ReadState(Reader);
end;
constructor TfrxDialogForm.Create(AOwner: TComponent);
begin
if AOwner <> nil then
FThreadSafe := AOwner.Tag = 318;
AOwner := nil;
inherited;
end;
end.
//862fd5d6aa1a637203d9b08a3c0bcfb0