RxFPC:temp fix save property WIDTH and HEGHT on screen with PPI<>96

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6282 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2018-03-30 08:50:27 +00:00
parent f474b601dc
commit 4a326db8b2
3 changed files with 29 additions and 1 deletions

View File

@@ -60,3 +60,4 @@
{.$DEFINE OLD_fpSPREADSHEET} {.$DEFINE OLD_fpSPREADSHEET}
{.$DEFINE DEVELOPER_RX} {.$DEFINE DEVELOPER_RX}
{$DEFINE FIX_WIDTH_WIDE_STRING96}

View File

@@ -47,6 +47,7 @@ type
FSeparateFiles: boolean; FSeparateFiles: boolean;
protected protected
function GetIniFileName: string; override; function GetIniFileName: string; override;
procedure FinishPropertyList(List: TStrings); override;
public public
procedure StorageNeeded(ReadOnly: Boolean); override; procedure StorageNeeded(ReadOnly: Boolean); override;
{ Public declarations } { Public declarations }
@@ -55,7 +56,7 @@ type
end; end;
implementation implementation
uses rxapputils, LazUTF8, FileUtil, LazFileUtils, IniFiles; uses rxapputils, LazUTF8, FileUtil, LazFileUtils, IniFiles, StrUtils;
{ TRxIniPropStorage } { TRxIniPropStorage }
@@ -81,6 +82,29 @@ begin
Result:=UTF8ToSys(Result); Result:=UTF8ToSys(Result);
end; end;
procedure TRxIniPropStorage.FinishPropertyList(List: TStrings);
{$IFDEF FIX_WIDTH_WIDE_STRING96}
var
S: String;
i: Integer;
K: SizeInt;
{$ENDIF FIX_WIDTH_WIDE_STRING96}
begin
{$IFDEF FIX_WIDTH_WIDE_STRING96}
if Screen.PixelsPerInch<>96 then
for i:=List.Count-1 downto 0 do
begin
S:=UpperCase(List[I]);
K:=Pos('.', S);
if K > 0 then
Delete(S, 1, K);
if (S = 'WIDTH') or (S='HEIGHT') then
List.Delete(i);
end;
{$ENDIF FIX_WIDTH_WIDE_STRING96}
inherited FinishPropertyList(List);
end;
procedure TRxIniPropStorage.StorageNeeded(ReadOnly: Boolean); procedure TRxIniPropStorage.StorageNeeded(ReadOnly: Boolean);
var var
F: Boolean; F: Boolean;

View File

@@ -3781,6 +3781,9 @@ begin
C := ColumnByCaption(ColumName); C := ColumnByCaption(ColumName);
if Assigned(C) then if Assigned(C) then
begin begin
{$IFDEF FIX_WIDTH_WIDE_STRING96}
if Screen.PixelsPerInch = 96 then
{$ENDIF}
C.Width := FPropertyStorageLink.Storage.ReadInteger(S1 + sWidth, C.Width); C.Width := FPropertyStorageLink.Storage.ReadInteger(S1 + sWidth, C.Width);
C.Visible := FPropertyStorageLink.Storage.ReadInteger(S1 + sVisible, Ord(C.Visible)) = 1; C.Visible := FPropertyStorageLink.Storage.ReadInteger(S1 + sVisible, Ord(C.Visible)) = 1;
C.Index := Min(FPropertyStorageLink.Storage.ReadInteger(S1 + sIndex, C.Index), Columns.Count - 1); C.Index := Min(FPropertyStorageLink.Storage.ReadInteger(S1 + sIndex, C.Index), Columns.Count - 1);