Browse Source

* Merge revision r36212 from trunk:
------------------------------------------------------------------------
r36212 | michael | 2017-05-15 09:13:37 +0200 (Mon, 15 May 2017) | 1 line

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

git-svn-id: branches/fixes_3_0@36272 -

michael 8 years ago
parent
commit
438c2dfbd9
2 changed files with 18 additions and 1 deletions
  1. 4 0
      rtl/objpas/classes/classesh.inc
  2. 14 1
      rtl/objpas/classes/dm.inc

+ 4 - 0
rtl/objpas/classes/classesh.inc

@@ -2009,9 +2009,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);
@@ -2036,6 +2039,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;

+ 14 - 1
rtl/objpas/classes/dm.inc

@@ -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);