diff --git a/components/lazmapviewer/examples/fulldemo/main.lfm b/components/lazmapviewer/examples/fulldemo/main.lfm
index ef8c4bbaf..034b52c5a 100644
--- a/components/lazmapviewer/examples/fulldemo/main.lfm
+++ b/components/lazmapviewer/examples/fulldemo/main.lfm
@@ -1,11 +1,11 @@
object MainForm: TMainForm
- Left = 590
- Height = 586
- Top = 184
- Width = 750
+ Left = 410
+ Height = 609
+ Top = 94
+ Width = 907
Caption = 'LazMapViewer'
- ClientHeight = 586
- ClientWidth = 750
+ ClientHeight = 609
+ ClientWidth = 907
Font.Height = -12
ShowHint = True
LCLVersion = '4.99.0.0'
@@ -14,9 +14,9 @@ object MainForm: TMainForm
OnShow = FormShow
object MapView: TMapView
Left = 0
- Height = 586
+ Height = 609
Top = 0
- Width = 475
+ Width = 631
Align = alClient
Cyclic = True
DefaultTrackColor = clBlue
@@ -38,18 +38,18 @@ object MainForm: TMainForm
OnMouseUp = MapViewMouseUp
end
object PageControl: TPageControl
- Left = 475
- Height = 586
+ Left = 631
+ Height = 609
Top = 0
- Width = 275
+ Width = 276
ActivePage = PgConfig
Align = alRight
TabIndex = 2
TabOrder = 1
object PgData: TTabSheet
Caption = 'Data'
- ClientHeight = 558
- ClientWidth = 267
+ ClientHeight = 581
+ ClientWidth = 268
object ZoomTrackBar: TTrackBar
AnchorSideLeft.Control = PgData
AnchorSideTop.Control = LblZoom
@@ -59,7 +59,7 @@ object MainForm: TMainForm
Left = 2
Height = 38
Top = 19
- Width = 263
+ Width = 264
Max = 19
Min = 1
Position = 1
@@ -91,7 +91,7 @@ object MainForm: TMainForm
Left = 4
Height = 60
Top = 63
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Left = 4
@@ -99,7 +99,7 @@ object MainForm: TMainForm
BorderSpacing.Right = 4
Caption = 'Mouse position'
ClientHeight = 40
- ClientWidth = 255
+ ClientWidth = 256
TabOrder = 1
object LblPositionLongitude: TLabel
AnchorSideLeft.Control = CbMouseCoords
@@ -132,7 +132,7 @@ object MainForm: TMainForm
AnchorSideTop.Control = CbMouseCoords
AnchorSideRight.Control = CbMouseCoords
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 2
Width = 34
@@ -149,7 +149,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CbMouseCoords
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 19
Width = 34
@@ -171,13 +171,13 @@ object MainForm: TMainForm
Left = 4
Height = 60
Top = 129
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'Center'
ClientHeight = 40
- ClientWidth = 255
+ ClientWidth = 256
TabOrder = 2
object LblCenterLongitude: TLabel
AnchorSideLeft.Control = GbCenterCoords
@@ -210,7 +210,7 @@ object MainForm: TMainForm
AnchorSideTop.Control = GbCenterCoords
AnchorSideRight.Control = GbCenterCoords
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 2
Width = 34
@@ -227,7 +227,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GbCenterCoords
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 19
Width = 34
@@ -249,13 +249,13 @@ object MainForm: TMainForm
Left = 4
Height = 60
Top = 195
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'Viewport size'
ClientHeight = 40
- ClientWidth = 255
+ ClientWidth = 256
TabOrder = 3
object LblViewportWidth: TLabel
AnchorSideLeft.Control = GbScreenSize
@@ -287,7 +287,7 @@ object MainForm: TMainForm
AnchorSideTop.Control = GbScreenSize
AnchorSideRight.Control = GbScreenSize
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 2
Width = 34
@@ -303,7 +303,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GbScreenSize
AnchorSideRight.Side = asrBottom
- Left = 211
+ Left = 212
Height = 15
Top = 19
Width = 34
@@ -321,7 +321,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GbCenterCoords
AnchorSideRight.Side = asrBottom
- Left = 192
+ Left = 193
Height = 23
Top = 193
Width = 65
@@ -347,15 +347,15 @@ object MainForm: TMainForm
AnchorSideRight.Control = GbScreenSize
AnchorSideRight.Side = asrBottom
Left = 4
- Height = 97
+ Height = 102
Top = 261
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'Search'
- ClientHeight = 77
- ClientWidth = 255
+ ClientHeight = 82
+ ClientWidth = 256
TabOrder = 5
object CbLocations: TComboBox
AnchorSideLeft.Control = GbSearch
@@ -364,7 +364,7 @@ object MainForm: TMainForm
Left = 6
Height = 23
Top = 2
- Width = 182
+ Width = 183
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
@@ -380,7 +380,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = GbSearch
AnchorSideRight.Side = asrBottom
- Left = 190
+ Left = 191
Height = 25
Top = 1
Width = 61
@@ -408,9 +408,9 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = BtnSearch
AnchorSideRight.Side = asrBottom
- Left = 196
+ Left = 197
Height = 25
- Top = 46
+ Top = 50
Width = 55
Anchors = [akTop, akRight]
AutoSize = True
@@ -425,9 +425,9 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = BtnGoTo
Left = 6
- Height = 21
+ Height = 28
Top = 48
- Width = 188
+ Width = 189
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 2
BorderSpacing.Right = 2
@@ -450,20 +450,20 @@ object MainForm: TMainForm
AnchorSideRight.Side = asrBottom
Left = 4
Height = 116
- Top = 364
- Width = 259
+ Top = 369
+ Width = 260
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
Caption = 'GPS points'
ClientHeight = 96
- ClientWidth = 255
+ ClientWidth = 256
TabOrder = 6
object BtnGPSPoints: TButton
AnchorSideLeft.Control = GbGPS
AnchorSideTop.Control = GbGPS
AnchorSideRight.Control = GbGPS
AnchorSideRight.Side = asrBottom
- Left = 198
+ Left = 199
Height = 25
Top = 0
Width = 53
@@ -482,7 +482,7 @@ object MainForm: TMainForm
Left = 6
Height = 45
Top = 2
- Width = 188
+ Width = 189
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
@@ -501,7 +501,7 @@ object MainForm: TMainForm
Left = 6
Height = 33
Top = 57
- Width = 245
+ Width = 246
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 10
BorderSpacing.Right = 4
@@ -516,7 +516,7 @@ object MainForm: TMainForm
AnchorSideTop.Side = asrBottom
Left = 4
Height = 25
- Top = 486
+ Top = 491
Width = 110
AutoSize = True
BorderSpacing.Top = 6
@@ -530,7 +530,7 @@ object MainForm: TMainForm
AnchorSideTop.Control = BtnSaveToFile
Left = 120
Height = 25
- Top = 486
+ Top = 491
Width = 105
AutoSize = True
BorderSpacing.Left = 6
@@ -545,8 +545,8 @@ object MainForm: TMainForm
AnchorSideRight.Control = BtnSaveToFile
AnchorSideRight.Side = asrBottom
Left = 4
- Height = 26
- Top = 517
+ Height = 25
+ Top = 522
Width = 110
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@@ -557,8 +557,8 @@ object MainForm: TMainForm
end
object PgLayers: TTabSheet
Caption = 'Layers'
- ClientHeight = 558
- ClientWidth = 267
+ ClientHeight = 581
+ ClientWidth = 268
object lblOpacity: TLabel
AnchorSideLeft.Control = Bevel2
AnchorSideTop.Control = rgDrawMode
@@ -580,7 +580,7 @@ object MainForm: TMainForm
Left = 4
Height = 38
Top = 386
- Width = 259
+ Width = 260
Frequency = 10
Max = 100
PageSize = 5
@@ -600,7 +600,7 @@ object MainForm: TMainForm
Left = 4
Height = 3
Top = 268
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 8
Shape = bsTopLine
@@ -613,7 +613,7 @@ object MainForm: TMainForm
Left = 4
Height = 256
Top = 4
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoFillColumns = True
BorderSpacing.Around = 4
@@ -634,7 +634,7 @@ object MainForm: TMainForm
MinSize = 8
MaxSize = 166
Title.Caption = 'Provider'
- Width = 154
+ Width = 166
end>
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goSmoothScroll, goRowHighlight]
RowCount = 11
@@ -645,7 +645,7 @@ object MainForm: TMainForm
ColWidths = (
30
54
- 154
+ 166
)
Cells = (
11
@@ -692,7 +692,7 @@ object MainForm: TMainForm
Left = 4
Height = 87
Top = 276
- Width = 259
+ Width = 260
Anchors = [akTop, akLeft, akRight]
AutoFill = True
BorderSpacing.Top = 8
@@ -705,7 +705,7 @@ object MainForm: TMainForm
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 67
- ClientWidth = 255
+ ClientWidth = 256
Items.Strings = (
'Opaque'
'Use Opacity'
diff --git a/components/lazmapviewer/examples/fulldemo/main.pas b/components/lazmapviewer/examples/fulldemo/main.pas
index 63929a989..0c50e46c8 100644
--- a/components/lazmapviewer/examples/fulldemo/main.pas
+++ b/components/lazmapviewer/examples/fulldemo/main.pas
@@ -651,10 +651,10 @@ begin
ini := TMemIniFile.Create(CalcIniName);
try
R := Screen.DesktopRect;
- L := ini.ReadInteger('MainForm', 'Left', Left);
- T := ini.ReadInteger('MainForm', 'Top', Top);
- W := ini.ReadInteger('MainForm', 'Width', Width);
- H := ini.ReadInteger('MainForm', 'Height', Height);
+ L := ini.ReadInteger('MainForm', 'Left', Scale96ToFont(Left));
+ T := ini.ReadInteger('MainForm', 'Top', Scale96ToFont(Top));
+ W := ini.ReadInteger('MainForm', 'Width', Scale96ToFont(Width));
+ H := ini.ReadInteger('MainForm', 'Height', Scale96ToFont(Height));
if L + W > R.Right then L := R.Right - W;
if L < R.Left then L := R.Left;
if T + H > R.Bottom then T := R.Bottom - H;
@@ -862,10 +862,10 @@ var
begin
ini := TMemIniFile.Create(CalcIniName);
try
- ini.WriteInteger('MainForm', 'Left', Left);
- ini.WriteInteger('MainForm', 'Top', Top);
- ini.WriteInteger('MainForm', 'Width', Width);
- ini.WriteInteger('MainForm', 'Height', Height);
+ ini.WriteInteger('MainForm', 'Left', ScaleFormTo96(Left));
+ ini.WriteInteger('MainForm', 'Top', ScaleformTo96(Top));
+ ini.WriteInteger('MainForm', 'Width', ScaleFormTo96(Width));
+ ini.WriteInteger('MainForm', 'Height', ScaleFormTo96(Height));
ini.WriteString('MapView', 'Provider', MapView.MapProvider);
ini.WriteInteger('MapView', 'Zoom', MapView.Zoom);
diff --git a/components/lazmapviewer/lazmapviewer_bgra.lpk b/components/lazmapviewer/lazmapviewer_bgra.lpk
index 5f59c53a2..9c4748776 100644
--- a/components/lazmapviewer/lazmapviewer_bgra.lpk
+++ b/components/lazmapviewer/lazmapviewer_bgra.lpk
@@ -15,7 +15,7 @@
-
+
diff --git a/components/lazmapviewer/lazmapviewer_rgbgraphics.lpk b/components/lazmapviewer/lazmapviewer_rgbgraphics.lpk
index 4c647b099..83c8ebf23 100644
--- a/components/lazmapviewer/lazmapviewer_rgbgraphics.lpk
+++ b/components/lazmapviewer/lazmapviewer_rgbgraphics.lpk
@@ -15,7 +15,7 @@
-
+
diff --git a/components/lazmapviewer/lazmapviewer_synapse.lpk b/components/lazmapviewer/lazmapviewer_synapse.lpk
index 2ade23d69..d86419623 100644
--- a/components/lazmapviewer/lazmapviewer_synapse.lpk
+++ b/components/lazmapviewer/lazmapviewer_synapse.lpk
@@ -15,7 +15,7 @@
-
+
diff --git a/components/lazmapviewer/lazmapviewerpkg.lpk b/components/lazmapviewer/lazmapviewerpkg.lpk
index 93a0b46ac..e2199029c 100644
--- a/components/lazmapviewer/lazmapviewerpkg.lpk
+++ b/components/lazmapviewer/lazmapviewerpkg.lpk
@@ -22,7 +22,7 @@
FPC 3.2.0 or newer required."/>
-
+
diff --git a/components/lazmapviewer/source/mvengine.pas b/components/lazmapviewer/source/mvengine.pas
index 38815d974..b99b50ee8 100644
--- a/components/lazmapviewer/source/mvengine.pas
+++ b/components/lazmapviewer/source/mvengine.pas
@@ -1541,7 +1541,7 @@ begin
if OnlyIfAvailable then
begin
- if MapWin.MapProvider.HasRetinaTiles then
+ if (MapWin.MapProvider <> nil) and MapWin.MapProvider.HasRetinaTiles then
mvTypes.TileSize := RETINA_TILE_SIZE
else
mvTypes.TileSize := NORMAL_TILE_SIZE;