* Patch from Ondrej Pokorny to make Datamodule DPI aware (bug ID 31813)

git-svn-id: trunk@36212 -
This commit is contained in:
michael 2017-05-15 07:13:37 +00:00
parent 2d8f56597e
commit e11821f558
2 changed files with 18 additions and 1 deletions

View File

@ -2026,9 +2026,12 @@ type
private
FDPos: TPoint;
FDSize: TPoint;
FDPPI: Integer;
FOnCreate: TNotifyEvent;
FOnDestroy: TNotifyEvent;
FOldOrder : Boolean;
Procedure ReadP(Reader: TReader);
Procedure WriteP(Writer: TWriter);
Procedure ReadT(Reader: TReader);
Procedure WriteT(Writer: TWriter);
Procedure ReadL(Reader: TReader);
@ -2053,6 +2056,7 @@ type
Procedure BeforeDestruction; override;
property DesignOffset: TPoint read FDPos write FDPos;
property DesignSize: TPoint read FDSize write FDSize;
property DesignPPI: Integer read FDPPI write FDPPI;
published
property OnCreate: TNotifyEvent read FOnCreate write FOnCreate;
property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy;

View File

@ -35,6 +35,7 @@ end;
constructor TDataModule.CreateNew(AOwner: TComponent; CreateMode: Integer);
begin
inherited Create(AOwner);
FDPPI := 96;
if Assigned(AddDataModule) and (CreateMode>=0) then
AddDataModule(Self);
end;
@ -97,11 +98,13 @@ begin
(FDSize.X<>Ancestor.FDSize.X) or
(FDSize.Y<>Ancestor.FDSize.Y) or
(FDPos.Y<>Ancestor.FDPos.Y) or
(FDPos.X<>Ancestor.FDPos.X);
(FDPos.X<>Ancestor.FDPos.X) or
(FDPPI<>Ancestor.FDPPI);
Filer.DefineProperty('Height', @ReadH, @WriteH, HaveData);
Filer.DefineProperty('HorizontalOffset', @ReadL, @WriteL, HaveData);
Filer.DefineProperty('VerticalOffset', @ReadT,@WriteT, HaveData);
Filer.DefineProperty('Width', @ReadW, @WriteW, HaveData);
Filer.DefineProperty('PPI', @ReadP, @WriteP, HaveData);
end;
procedure TDataModule.GetChildren(Proc: TGetChildProc; Root: TComponent);
@ -125,6 +128,11 @@ begin
ApplicationHandleException(Self);
end;
Procedure TDataModule.ReadP(Reader: TReader);
begin
FDPPI := Reader.ReadInteger;
end;
Procedure TDataModule.ReadState(Reader: TReader);
begin
FOldOrder := false;
@ -156,6 +164,11 @@ begin
FDSIze.X := Reader.ReadInteger;
end;
Procedure TDataModule.WriteP(Writer: TWriter);
begin
Writer.WriteInteger(FDPPI);
end;
Procedure TDataModule.WriteW(Writer: TWriter);
begin
Writer.WriteInteger(FDSIze.X);