diff --git a/applications/lazimageeditor/bmprgbgraph.pas b/applications/lazimageeditor/bmprgbgraph.pas
index 4e76d1720..15db1d302 100644
--- a/applications/lazimageeditor/bmprgbgraph.pas
+++ b/applications/lazimageeditor/bmprgbgraph.pas
@@ -379,31 +379,31 @@ end;
procedure TRGB32Bitmap.FlipHorz;
begin
- inherited FlipHorz;
+ inherited;
Mask.FlipHorz;
end;
procedure TRGB32Bitmap.FlipVert;
begin
- inherited FlipVert;
+ inherited;
Mask.FlipVert;
end;
procedure TRGB32Bitmap.Rotate90;
begin
- inherited Rotate90;
+ inherited;
Mask.Rotate90;
end;
procedure TRGB32Bitmap.Rotate180;
begin
- inherited Rotate180;
+ inherited;
Mask.Rotate180;
end;
procedure TRGB32Bitmap.Rotate270;
begin
- inherited Rotate270;
+ inherited;
Mask.Rotate270;
end;
diff --git a/applications/lazimageeditor/lazimageeditor.lpi b/applications/lazimageeditor/lazimageeditor.lpi
index 98edbcd42..f95dcf84c 100644
--- a/applications/lazimageeditor/lazimageeditor.lpi
+++ b/applications/lazimageeditor/lazimageeditor.lpi
@@ -56,8 +56,8 @@
-
-
+
+
@@ -68,7 +68,7 @@
-
+
@@ -174,8 +174,8 @@
-
-
+
+
@@ -240,8 +240,8 @@
-
-
+
+
@@ -273,8 +273,8 @@
-
-
+
+
@@ -299,19 +299,19 @@
-
-
+
+
-
+
-
-
+
+
@@ -324,127 +324,123 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
diff --git a/applications/lazimageeditor/main.lfm b/applications/lazimageeditor/main.lfm
index 5687e4935..2cd3a625f 100644
--- a/applications/lazimageeditor/main.lfm
+++ b/applications/lazimageeditor/main.lfm
@@ -1,11 +1,11 @@
object MainForm: TMainForm
Left = 209
- Height = 631
+ Height = 666
Top = 146
- Width = 897
+ Width = 905
Caption = 'Lazarus Image Editor'
- ClientHeight = 609
- ClientWidth = 897
+ ClientHeight = 644
+ ClientWidth = 905
Font.CharSet = GB2312_CHARSET
Font.Height = -13
Font.Name = '微软雅黑'
@@ -18,18 +18,18 @@
LCLVersion = '0.9.31'
object PanelTools: TPanel
Left = 0
- Height = 482
+ Height = 517
Top = 105
Width = 40
Align = alLeft
BevelOuter = bvNone
- ClientHeight = 482
+ ClientHeight = 517
ClientWidth = 40
ParentColor = False
TabOrder = 0
object ToolBarTools: TToolBar
Left = 0
- Height = 482
+ Height = 517
Top = 0
Width = 40
Align = alLeft
@@ -156,8 +156,8 @@
object StatusBar: TStatusBar
Left = 0
Height = 22
- Top = 587
- Width = 897
+ Top = 622
+ Width = 905
Panels = <
item
Width = 250
@@ -182,19 +182,19 @@
SimplePanel = False
end
object PanelPallete: TPanel
- Left = 822
- Height = 482
+ Left = 830
+ Height = 517
Top = 105
Width = 75
Align = alRight
AutoSize = True
BevelOuter = bvNone
- ClientHeight = 482
+ ClientHeight = 517
ClientWidth = 75
TabOrder = 1
object Palette: TColorPalette
Left = 0
- Height = 482
+ Height = 517
Top = 0
Width = 75
Align = alClient
@@ -206,17 +206,17 @@
Left = 0
Height = 105
Top = 0
- Width = 897
+ Width = 905
Align = alTop
BevelOuter = bvNone
ClientHeight = 105
- ClientWidth = 897
+ ClientWidth = 905
TabOrder = 2
object Bevel1: TBevel
Left = 0
Height = 2
Top = 69
- Width = 897
+ Width = 905
Align = alTop
Shape = bsBottomLine
end
@@ -224,7 +224,7 @@
Left = 0
Height = 2
Top = 33
- Width = 897
+ Width = 905
Align = alTop
Shape = bsBottomLine
end
@@ -232,7 +232,7 @@
Left = 0
Height = 33
Top = 0
- Width = 897
+ Width = 905
ButtonHeight = 32
ButtonWidth = 36
Color = clBtnFace
@@ -379,13 +379,13 @@
Left = 0
Height = 34
Top = 35
- Width = 897
+ Width = 905
Align = alTop
BorderSpacing.InnerBorder = 4
BorderSpacing.CellAlignVertical = ccaCenter
BevelOuter = bvNone
ClientHeight = 34
- ClientWidth = 897
+ ClientWidth = 905
TabOrder = 1
object LabelFillOutline: TLabel
Left = 103
@@ -421,7 +421,7 @@
ParentColor = False
end
object PanelColors: TPanel
- Left = 685
+ Left = 693
Height = 34
Top = 0
Width = 212
@@ -1009,11 +1009,11 @@
Left = 0
Height = 34
Top = 71
- Width = 897
+ Width = 905
Align = alTop
BevelOuter = bvNone
ClientHeight = 34
- ClientWidth = 897
+ ClientWidth = 905
TabOrder = 2
object LabelSize: TLabel
Left = 0
@@ -1258,9 +1258,9 @@
end
object PanelPictures: TPanel
Left = 40
- Height = 482
+ Height = 517
Top = 105
- Width = 782
+ Width = 790
Align = alClient
BevelOuter = bvLowered
TabOrder = 3
diff --git a/applications/lazimageeditor/main.lrs b/applications/lazimageeditor/main.lrs
index 518bdc631..0b0654325 100644
--- a/applications/lazimageeditor/main.lrs
+++ b/applications/lazimageeditor/main.lrs
@@ -1,139 +1,138 @@
+{ This is an automatically generated lazarus resource file }
+
LazarusResources.Add('TMainForm','FORMDATA',[
- 'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#209#0#6'Height'#3'w'#2#3'Top'#3#146
- +#0#5'Width'#3#129#3#7'Caption'#6#20'Lazarus Image Editor'#12'ClientHeight'#3
- +'a'#2#11'ClientWidth'#3#129#3#12'Font.CharSet'#7#14'GB2312_CHARSET'#11'Font.'
- +'Height'#2#243#9'Font.Name'#6#12#229#190#174#232#189#175#233#155#133#233#187
+ 'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#209#0#6'Height'#3#154#2#3'Top'#3#146
+ +#0#5'Width'#3#137#3#7'Caption'#6#20'Lazarus Image Editor'#12'ClientHeight'#3
+ +#132#2#11'ClientWidth'#3#137#3#12'Font.CharSet'#7#14'GB2312_CHARSET'#11'Font'
+ +'.Height'#2#243#9'Font.Name'#6#12#229#190#174#232#189#175#233#155#133#233#187
+#145#10'Font.Pitch'#7#10'fpVariable'#12'Font.Quality'#7#7'fqDraft'#4'Menu'#7
+#8'MainMenu'#12'OnCloseQuery'#7#14'FormCloseQuery'#8'OnCreate'#7#10'FormCrea'
+'te'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9.31'#0#6'TPanel'#10'Panel'
- +'Tools'#4'Left'#2#0#6'Height'#3#226#1#3'Top'#2'i'#5'Width'#2'('#5'Align'#7#6
- +'alLeft'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#226#1#11'ClientWidth'
- +#2'('#11'ParentColor'#8#8'TabOrder'#2#0#0#8'TToolBar'#12'ToolBarTools'#4'Lef'
- +'t'#2#0#6'Height'#3#226#1#3'Top'#2#0#5'Width'#2'('#5'Align'#7#6'alLeft'#12'B'
- +'uttonHeight'#2'('#11'ButtonWidth'#2'('#7'Caption'#6#12'ToolBarTools'#21'Con'
- +'straints.MinHeight'#3#146#1#6'Images'#7#14'ImageListTools'#6'Indent'#2#0#8
- +'TabOrder'#2#0#0#11'TToolButton'#9'ToolSpray'#4'Left'#2#0#4'Hint'#6#5'Spray'
- +#3'Top'#3'j'#1#7'Grouped'#9#10'ImageIndex'#2#9#7'OnClick'#7#14'ToolSprayClic'
- +'k'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolBu'
- +'tton'#13'ToolFloodFill'#4'Left'#2#0#4'Hint'#6#10'Flood Fill'#3'Top'#3'B'#1#7
- +'Grouped'#9#10'ImageIndex'#2#8#7'OnClick'#7#18'ToolFloodFillClick'#14'Parent'
- +'ShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#10'Too'
- +'lEraser'#4'Left'#2#0#4'Hint'#6#15'Eraser/Replacer'#3'Top'#2'z'#7'Grouped'#9
- +#10'ImageIndex'#2#3#7'OnClick'#7#15'ToolEraserClick'#14'ParentShowHint'#8#8
- +'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#7'ToolPen'#4'Left'#2
- +#0#4'Hint'#6#3'Pen'#3'Top'#2'R'#7'Grouped'#9#10'ImageIndex'#2#2#7'OnClick'#7
- +#12'ToolPenClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0
- +#0#11'TToolButton'#13'ToolColorPick'#4'Left'#2#0#4'Hint'#6#10'Color Pick'#3
- +'Top'#2'*'#7'Grouped'#9#10'ImageIndex'#2#1#7'OnClick'#7#18'ToolColorPickClic'
- +'k'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolBu'
- +'tton'#8'ToolMask'#4'Left'#2#0#4'Hint'#6#4'Mask'#3'Top'#2#2#7'Grouped'#9#10
- +'ImageIndex'#2#0#7'OnClick'#7#13'ToolMaskClick'#14'ParentShowHint'#8#8'ShowH'
- +'int'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#8'ToolLine'#4'Left'#2#0#4
- +'Hint'#6#4'Line'#3'Top'#3#162#0#4'Down'#9#7'Grouped'#9#10'ImageIndex'#2#4#7
- +'OnClick'#7#13'ToolLineClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8
- +'tbsCheck'#0#0#11'TToolButton'#13'ToolRectangle'#4'Left'#2#0#4'Hint'#6#7'Pol'
- +'ygon'#3'Top'#3#202#0#7'Grouped'#9#10'ImageIndex'#2#5#7'OnClick'#7#18'ToolRe'
- +'ctangleClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0
- +#11'TToolButton'#11'ToolPolygon'#4'Left'#2#0#4'Hint'#6#7'Ellipse'#3'Top'#3#26
- +#1#7'Grouped'#9#10'ImageIndex'#2#7#7'OnClick'#7#16'ToolPolygonClick'#14'Pare'
- +'ntShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#11'T'
- +'oolEllipse'#4'Left'#2#0#4'Hint'#6#25'Rectangle/Round rectangle'#3'Top'#3#242
- +#0#7'Grouped'#9#10'ImageIndex'#2#6#7'OnClick'#7#12'ToolEllClick'#14'ParentSh'
- +'owHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#0#0#10'TStatusBar'#9'Sta'
- +'tusBar'#4'Left'#2#0#6'Height'#2#22#3'Top'#3'K'#2#5'Width'#3#129#3#6'Panels'
- +#14#1#5'Width'#3#250#0#0#1#9'Alignment'#7#8'taCenter'#5'Width'#2'P'#0#1#9'Al'
- +'ignment'#7#8'taCenter'#5'Width'#2'P'#0#1#5'Width'#2'P'#0#1#5'Width'#2'P'#0#1
- +#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#12'PanelPallete'#4'Left'#3
- +'6'#3#6'Height'#3#226#1#3'Top'#2'i'#5'Width'#2'K'#5'Align'#7#7'alRight'#8'Au'
- +'toSize'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#226#1#11'ClientWidt'
- +'h'#2'K'#8'TabOrder'#2#1#0#13'TColorPalette'#7'Palette'#4'Left'#2#0#6'Height'
- +#3#226#1#3'Top'#2#0#5'Width'#2'K'#5'Align'#7#8'alClient'#11'ButtonWidth'#2#12
- +#12'ButtonHeight'#2#12#0#0#0#6'TPanel'#12'PanelToolBar'#4'Left'#2#0#6'Height'
- +#2'i'#3'Top'#2#0#5'Width'#3#129#3#5'Align'#7#5'alTop'#10'BevelOuter'#7#6'bvN'
- +'one'#12'ClientHeight'#2'i'#11'ClientWidth'#3#129#3#8'TabOrder'#2#2#0#6'TBev'
- +'el'#6'Bevel1'#4'Left'#2#0#6'Height'#2#2#3'Top'#2'E'#5'Width'#3#129#3#5'Alig'
- +'n'#7#5'alTop'#5'Shape'#7#12'bsBottomLine'#0#0#6'TBevel'#6'Bevel2'#4'Left'#2
- +#0#6'Height'#2#2#3'Top'#2'!'#5'Width'#3#129#3#5'Align'#7#5'alTop'#5'Shape'#7
- +#12'bsBottomLine'#0#0#8'TToolBar'#7'ToolBar'#4'Left'#2#0#6'Height'#2'!'#3'To'
- +'p'#2#0#5'Width'#3#129#3#12'ButtonHeight'#2' '#11'ButtonWidth'#2'$'#5'Color'
- +#7#9'clBtnFace'#11'EdgeBorders'#11#0#6'Images'#7#16'ImageListActions'#11'Par'
- +'entColor'#8#8'TabOrder'#2#0#0#6'TLabel'#9'LabelZoom'#4'Left'#3#129#1#6'Heig'
- +'ht'#2' '#3'Top'#2#0#5'Width'#2'('#7'Caption'#6#5'Zoom:'#21'Constraints.MinH'
- +'eight'#2' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#11'TToolButton'#9
- +'ToolClose'#4'Left'#2'm'#3'Top'#2#0#6'Action'#7#9'FileClose'#14'ParentShowHi'
- +'nt'#8#8'ShowHint'#9#0#0#11'TToolButton'#8'ToolSave'#4'Left'#2'I'#3'Top'#2#0
- +#6'Action'#7#8'FileSave'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButt'
- ,'on'#8'ToolOpen'#4'Left'#2'%'#3'Top'#2#0#6'Action'#7#8'FileOpen'#14'ParentSh'
- +'owHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#7'ToolNew'#4'Left'#2#1#3'Top'#2
- +#0#6'Action'#7#7'FileNew'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolBut'
- +'ton'#11'ToolButton6'#4'Left'#3#145#0#3'Top'#2#0#5'Width'#2#8#7'Caption'#6#11
- +'ToolButton6'#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#7'ToolCut'#4'L'
- +'eft'#3#233#0#3'Top'#2#0#6'Action'#7#7'EditCut'#14'ParentShowHint'#8#8'ShowH'
- +'int'#9#0#0#11'TToolButton'#11'ToolButton8'#4'Left'#3#13#1#3'Top'#2#0#6'Acti'
- +'on'#7#8'EditCopy'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#11
- +'ToolButton9'#4'Left'#3'1'#1#3'Top'#2#0#6'Action'#7#9'EditPaste'#14'ParentSh'
- +'owHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#12'ToolButton10'#4'Left'#3'y'#1
- +#3'Top'#2#0#5'Width'#2#8#7'Caption'#6#12'ToolButton10'#5'Style'#7#12'tbsSepa'
- +'rator'#0#0#11'TToolButton'#12'ToolButton11'#4'Left'#3'U'#1#3'Top'#2#0#6'Act'
- +'ion'#7#10'EditDelete'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'
- +#8'ToolUndo'#4'Left'#3#153#0#3'Top'#2#0#6'Action'#7#8'EditUndo'#14'ParentSho'
- +'wHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#11'ToolButton2'#4'Left'#3#225#0#3
- +'Top'#2#0#5'Width'#2#8#7'Caption'#6#11'ToolButton2'#5'Style'#7#12'tbsSeparat'
- +'or'#0#0#11'TToolButton'#8'ToolRedo'#4'Left'#3#189#0#3'Top'#2#0#6'Action'#7#8
- +'EditRedo'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TPanel'#9'PanelZoom'#4'L'
- +'eft'#3#169#1#6'Height'#2' '#3'Top'#2#0#5'Width'#2'M'#10'BevelOuter'#7#6'bvN'
- +'one'#12'ClientHeight'#2' '#11'ClientWidth'#2'M'#8'TabOrder'#2#0#0#9'TComboB'
- +'ox'#12'ComboBoxZoom'#4'Left'#2#4#6'Height'#2#27#3'Top'#2#2#5'Width'#2'F'#7
- +'Anchors'#11#6'akLeft'#0#10'ItemHeight'#2#19#9'ItemIndex'#2#2#13'Items.Strin'
- +'gs'#1#6#4'25 %'#6#4'50 %'#6#5'100 %'#6#5'200 %'#6#5'400 %'#6#5'800 %'#6#6'1'
- +'000 %'#0#8'OnChange'#7#18'ComboBoxZoomChange'#13'OnEditingDone'#7#23'ComboB'
- +'oxZoomEditingDone'#14'ParentShowHint'#8#8'TabOrder'#2#0#4'Text'#6#5'100 %'#0
- +#0#0#0#6'TPanel'#12'PanelOptions'#4'Left'#2#0#6'Height'#2'"'#3'Top'#2'#'#5'W'
- +'idth'#3#129#3#5'Align'#7#5'alTop'#25'BorderSpacing.InnerBorder'#2#4#31'Bord'
- +'erSpacing.CellAlignVertical'#7#9'ccaCenter'#10'BevelOuter'#7#6'bvNone'#12'C'
- +'lientHeight'#2'"'#11'ClientWidth'#3#129#3#8'TabOrder'#2#1#0#6'TLabel'#16'La'
- +'belFillOutline'#4'Left'#2'g'#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'H'#5'Alig'
- +'n'#7#6'alLeft'#7'Caption'#6#14'Fill, Outline:'#21'Constraints.MinHeight'#2
- +' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#10'LabelShape'#4
- +'Left'#2#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'*'#5'Align'#7#6'alLeft'#7'Ca'
- +'ption'#6#6'Shape:'#21'Constraints.MinHeight'#2' '#6'Layout'#7#8'tlCenter'#11
- +'ParentColor'#8#0#0#6'TLabel'#13'LabelMaskTool'#4'Left'#3#2#1#6'Height'#2'"'
- +#3'Top'#2#0#5'Width'#2'C'#5'Align'#7#6'alLeft'#7'Caption'#6#10'Mask Tool:'#21
- +'Constraints.MinHeight'#2' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6
- +'TPanel'#11'PanelColors'#4'Left'#3#173#2#6'Height'#2'"'#3'Top'#2#0#5'Width'#3
- +#212#0#5'Align'#7#7'alRight'#8'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#4
- +'!BorderSpacing.CellAlignHorizontal'#7#10'ccaLeftTop'#31'BorderSpacing.CellA'
- +'lignVertical'#7#9'ccaCenter'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2
- +'"'#11'ClientWidth'#3#212#0#8'TabOrder'#2#0#0#6'TLabel'#12'LabelOutline'#4'L'
- +'eft'#2#8#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'1'#5'Align'#7#7'alRight'#7'Ca'
- +'ption'#6#8'Outline:'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'
- +#9'LabelFill'#4'Left'#2'Y'#6'Height'#2'"'#3'Top'#2#0#5'Width'#2#20#5'Align'#7
- +#7'alRight'#7'Caption'#6#5'Fill:'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0
- +#0#6'TLabel'#10'LabelPaper'#4'Left'#3#141#0#6'Height'#2'"'#3'Top'#2#0#5'Widt'
- +'h'#2''''#5'Align'#7#7'alRight'#7'Caption'#6#6'Paper:'#6'Layout'#7#8'tlCente'
- +'r'#11'ParentColor'#8#0#0#6'TPanel'#12'PanelOutline'#4'Left'#2'?'#6'Height'#2
- +#22#3'Top'#2#6#5'Width'#2#20#5'Align'#7#7'alRight'#20'BorderSpacing.Around'#2
- +#6#10'BevelInner'#7#9'bvLowered'#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'T'
- +'abOrder'#2#0#10'OnDblClick'#7#20'PanelOutlineDblClick'#0#0#6'TPanel'#9'Pane'
- +'lFill'#4'Left'#2's'#6'Height'#2#22#3'Top'#2#6#5'Width'#2#20#5'Align'#7#7'al'
- +'Right'#20'BorderSpacing.Around'#2#6#10'BevelInner'#7#9'bvLowered'#5'Color'#7
- +#7'clWhite'#11'ParentColor'#8#8'TabOrder'#2#1#10'OnDblClick'#7#17'PanelFillD'
- +'blClick'#0#0#6'TPanel'#10'PanelPaper'#4'Left'#3#186#0#6'Height'#2#22#3'Top'
- +#2#6#5'Width'#2#20#5'Align'#7#7'alRight'#20'BorderSpacing.Around'#2#6#10'Bev'
- +'elInner'#7#9'bvLowered'#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'TabOrder'
- +#2#2#10'OnDblClick'#7#18'PanelPaperDblClick'#0#0#0#6'TPanel'#16'PanelFillOut'
- +'line'#4'Left'#3#175#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'S'#5'Align'#7#6
- +'alLeft'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#2
- +'S'#8'TabOrder'#2#1#0#12'TSpeedButton'#15'ToolFillOutline'#4'Left'#2#4#6'Hei'
- +'ght'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akLeft'#0#4'Down'#9#10'G'
- +'lyph.Data'#10#234#4#0#0#230#4#0#0'BM'#230#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20
- ,#0#0#0#20#0#0#0#1#0#24#0#0#0#0#0#176#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+ +'Tools'#4'Left'#2#0#6'Height'#3#5#2#3'Top'#2'i'#5'Width'#2'('#5'Align'#7#6'a'
+ +'lLeft'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#5#2#11'ClientWidth'#2
+ +'('#11'ParentColor'#8#8'TabOrder'#2#0#0#8'TToolBar'#12'ToolBarTools'#4'Left'
+ +#2#0#6'Height'#3#5#2#3'Top'#2#0#5'Width'#2'('#5'Align'#7#6'alLeft'#12'Button'
+ +'Height'#2'('#11'ButtonWidth'#2'('#7'Caption'#6#12'ToolBarTools'#21'Constrai'
+ +'nts.MinHeight'#3#146#1#6'Images'#7#14'ImageListTools'#6'Indent'#2#0#8'TabOr'
+ +'der'#2#0#0#11'TToolButton'#9'ToolSpray'#4'Left'#2#0#4'Hint'#6#5'Spray'#3'To'
+ +'p'#3'j'#1#7'Grouped'#9#10'ImageIndex'#2#9#7'OnClick'#7#14'ToolSprayClick'#14
+ +'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'
+ +#13'ToolFloodFill'#4'Left'#2#0#4'Hint'#6#10'Flood Fill'#3'Top'#3'B'#1#7'Grou'
+ +'ped'#9#10'ImageIndex'#2#8#7'OnClick'#7#18'ToolFloodFillClick'#14'ParentShow'
+ +'Hint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#10'ToolEra'
+ +'ser'#4'Left'#2#0#4'Hint'#6#15'Eraser/Replacer'#3'Top'#2'z'#7'Grouped'#9#10
+ +'ImageIndex'#2#3#7'OnClick'#7#15'ToolEraserClick'#14'ParentShowHint'#8#8'Sho'
+ +'wHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#7'ToolPen'#4'Left'#2#0#4
+ +'Hint'#6#3'Pen'#3'Top'#2'R'#7'Grouped'#9#10'ImageIndex'#2#2#7'OnClick'#7#12
+ +'ToolPenClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0
+ +#11'TToolButton'#13'ToolColorPick'#4'Left'#2#0#4'Hint'#6#10'Color Pick'#3'To'
+ +'p'#2'*'#7'Grouped'#9#10'ImageIndex'#2#1#7'OnClick'#7#18'ToolColorPickClick'
+ +#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButto'
+ +'n'#8'ToolMask'#4'Left'#2#0#4'Hint'#6#4'Mask'#3'Top'#2#2#7'Grouped'#9#10'Ima'
+ +'geIndex'#2#0#7'OnClick'#7#13'ToolMaskClick'#14'ParentShowHint'#8#8'ShowHint'
+ +#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#8'ToolLine'#4'Left'#2#0#4'Hint'
+ +#6#4'Line'#3'Top'#3#162#0#4'Down'#9#7'Grouped'#9#10'ImageIndex'#2#4#7'OnClic'
+ +'k'#7#13'ToolLineClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsC'
+ +'heck'#0#0#11'TToolButton'#13'ToolRectangle'#4'Left'#2#0#4'Hint'#6#7'Polygon'
+ +#3'Top'#3#202#0#7'Grouped'#9#10'ImageIndex'#2#5#7'OnClick'#7#18'ToolRectangl'
+ +'eClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TT'
+ +'oolButton'#11'ToolPolygon'#4'Left'#2#0#4'Hint'#6#7'Ellipse'#3'Top'#3#26#1#7
+ +'Grouped'#9#10'ImageIndex'#2#7#7'OnClick'#7#16'ToolPolygonClick'#14'ParentSh'
+ +'owHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#11'TToolButton'#11'ToolE'
+ +'llipse'#4'Left'#2#0#4'Hint'#6#25'Rectangle/Round rectangle'#3'Top'#3#242#0#7
+ +'Grouped'#9#10'ImageIndex'#2#6#7'OnClick'#7#12'ToolEllClick'#14'ParentShowHi'
+ +'nt'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0#0#0#0#10'TStatusBar'#9'StatusB'
+ +'ar'#4'Left'#2#0#6'Height'#2#22#3'Top'#3'n'#2#5'Width'#3#137#3#6'Panels'#14#1
+ +#5'Width'#3#250#0#0#1#9'Alignment'#7#8'taCenter'#5'Width'#2'P'#0#1#9'Alignme'
+ +'nt'#7#8'taCenter'#5'Width'#2'P'#0#1#5'Width'#2'P'#0#1#5'Width'#2'P'#0#1#5'W'
+ +'idth'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#12'PanelPallete'#4'Left'#3'>'
+ +#3#6'Height'#3#5#2#3'Top'#2'i'#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSiz'
+ +'e'#9#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#5#2#11'ClientWidth'#2'K'
+ +#8'TabOrder'#2#1#0#13'TColorPalette'#7'Palette'#4'Left'#2#0#6'Height'#3#5#2#3
+ +'Top'#2#0#5'Width'#2'K'#5'Align'#7#8'alClient'#11'ButtonWidth'#2#12#12'Butto'
+ +'nHeight'#2#12#0#0#0#6'TPanel'#12'PanelToolBar'#4'Left'#2#0#6'Height'#2'i'#3
+ +'Top'#2#0#5'Width'#3#137#3#5'Align'#7#5'alTop'#10'BevelOuter'#7#6'bvNone'#12
+ +'ClientHeight'#2'i'#11'ClientWidth'#3#137#3#8'TabOrder'#2#2#0#6'TBevel'#6'Be'
+ +'vel1'#4'Left'#2#0#6'Height'#2#2#3'Top'#2'E'#5'Width'#3#137#3#5'Align'#7#5'a'
+ +'lTop'#5'Shape'#7#12'bsBottomLine'#0#0#6'TBevel'#6'Bevel2'#4'Left'#2#0#6'Hei'
+ +'ght'#2#2#3'Top'#2'!'#5'Width'#3#137#3#5'Align'#7#5'alTop'#5'Shape'#7#12'bsB'
+ +'ottomLine'#0#0#8'TToolBar'#7'ToolBar'#4'Left'#2#0#6'Height'#2'!'#3'Top'#2#0
+ +#5'Width'#3#137#3#12'ButtonHeight'#2' '#11'ButtonWidth'#2'$'#5'Color'#7#9'cl'
+ +'BtnFace'#11'EdgeBorders'#11#0#6'Images'#7#16'ImageListActions'#11'ParentCol'
+ +'or'#8#8'TabOrder'#2#0#0#6'TLabel'#9'LabelZoom'#4'Left'#3#129#1#6'Height'#2
+ +' '#3'Top'#2#0#5'Width'#2'('#7'Caption'#6#5'Zoom:'#21'Constraints.MinHeight'
+ +#2' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#11'TToolButton'#9'ToolCl'
+ +'ose'#4'Left'#2'm'#3'Top'#2#0#6'Action'#7#9'FileClose'#14'ParentShowHint'#8#8
+ +'ShowHint'#9#0#0#11'TToolButton'#8'ToolSave'#4'Left'#2'I'#3'Top'#2#0#6'Actio'
+ +'n'#7#8'FileSave'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#8'T'
+ ,'oolOpen'#4'Left'#2'%'#3'Top'#2#0#6'Action'#7#8'FileOpen'#14'ParentShowHint'
+ +#8#8'ShowHint'#9#0#0#11'TToolButton'#7'ToolNew'#4'Left'#2#1#3'Top'#2#0#6'Act'
+ +'ion'#7#7'FileNew'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#11
+ +'ToolButton6'#4'Left'#3#145#0#3'Top'#2#0#5'Width'#2#8#7'Caption'#6#11'ToolBu'
+ +'tton6'#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#7'ToolCut'#4'Left'#3
+ +#233#0#3'Top'#2#0#6'Action'#7#7'EditCut'#14'ParentShowHint'#8#8'ShowHint'#9#0
+ +#0#11'TToolButton'#11'ToolButton8'#4'Left'#3#13#1#3'Top'#2#0#6'Action'#7#8'E'
+ +'ditCopy'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#11'ToolButt'
+ +'on9'#4'Left'#3'1'#1#3'Top'#2#0#6'Action'#7#9'EditPaste'#14'ParentShowHint'#8
+ +#8'ShowHint'#9#0#0#11'TToolButton'#12'ToolButton10'#4'Left'#3'y'#1#3'Top'#2#0
+ +#5'Width'#2#8#7'Caption'#6#12'ToolButton10'#5'Style'#7#12'tbsSeparator'#0#0
+ +#11'TToolButton'#12'ToolButton11'#4'Left'#3'U'#1#3'Top'#2#0#6'Action'#7#10'E'
+ +'ditDelete'#14'ParentShowHint'#8#8'ShowHint'#9#0#0#11'TToolButton'#8'ToolUnd'
+ +'o'#4'Left'#3#153#0#3'Top'#2#0#6'Action'#7#8'EditUndo'#14'ParentShowHint'#8#8
+ +'ShowHint'#9#0#0#11'TToolButton'#11'ToolButton2'#4'Left'#3#225#0#3'Top'#2#0#5
+ +'Width'#2#8#7'Caption'#6#11'ToolButton2'#5'Style'#7#12'tbsSeparator'#0#0#11
+ +'TToolButton'#8'ToolRedo'#4'Left'#3#189#0#3'Top'#2#0#6'Action'#7#8'EditRedo'
+ +#14'ParentShowHint'#8#8'ShowHint'#9#0#0#6'TPanel'#9'PanelZoom'#4'Left'#3#169
+ +#1#6'Height'#2' '#3'Top'#2#0#5'Width'#2'M'#10'BevelOuter'#7#6'bvNone'#12'Cli'
+ +'entHeight'#2' '#11'ClientWidth'#2'M'#8'TabOrder'#2#0#0#9'TComboBox'#12'Comb'
+ +'oBoxZoom'#4'Left'#2#4#6'Height'#2#27#3'Top'#2#2#5'Width'#2'F'#7'Anchors'#11
+ +#6'akLeft'#0#10'ItemHeight'#2#19#9'ItemIndex'#2#2#13'Items.Strings'#1#6#4'25'
+ +' %'#6#4'50 %'#6#5'100 %'#6#5'200 %'#6#5'400 %'#6#5'800 %'#6#6'1000 %'#0#8'O'
+ +'nChange'#7#18'ComboBoxZoomChange'#13'OnEditingDone'#7#23'ComboBoxZoomEditin'
+ +'gDone'#14'ParentShowHint'#8#8'TabOrder'#2#0#4'Text'#6#5'100 %'#0#0#0#0#6'TP'
+ +'anel'#12'PanelOptions'#4'Left'#2#0#6'Height'#2'"'#3'Top'#2'#'#5'Width'#3#137
+ +#3#5'Align'#7#5'alTop'#25'BorderSpacing.InnerBorder'#2#4#31'BorderSpacing.Ce'
+ +'llAlignVertical'#7#9'ccaCenter'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'
+ +#2'"'#11'ClientWidth'#3#137#3#8'TabOrder'#2#1#0#6'TLabel'#16'LabelFillOutlin'
+ +'e'#4'Left'#2'g'#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'H'#5'Align'#7#6'alLeft'
+ +#7'Caption'#6#14'Fill, Outline:'#21'Constraints.MinHeight'#2' '#6'Layout'#7#8
+ +'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#10'LabelShape'#4'Left'#2#0#6'Heig'
+ +'ht'#2'"'#3'Top'#2#0#5'Width'#2'*'#5'Align'#7#6'alLeft'#7'Caption'#6#6'Shape'
+ +':'#21'Constraints.MinHeight'#2' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8
+ +#0#0#6'TLabel'#13'LabelMaskTool'#4'Left'#3#2#1#6'Height'#2'"'#3'Top'#2#0#5'W'
+ +'idth'#2'C'#5'Align'#7#6'alLeft'#7'Caption'#6#10'Mask Tool:'#21'Constraints.'
+ +'MinHeight'#2' '#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TPanel'#11
+ +'PanelColors'#4'Left'#3#181#2#6'Height'#2'"'#3'Top'#2#0#5'Width'#3#212#0#5'A'
+ +'lign'#7#7'alRight'#8'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#4'!BorderS'
+ +'pacing.CellAlignHorizontal'#7#10'ccaLeftTop'#31'BorderSpacing.CellAlignVert'
+ +'ical'#7#9'ccaCenter'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'"'#11'Cl'
+ +'ientWidth'#3#212#0#8'TabOrder'#2#0#0#6'TLabel'#12'LabelOutline'#4'Left'#2#8
+ +#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'1'#5'Align'#7#7'alRight'#7'Caption'#6#8
+ +'Outline:'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#9'LabelFi'
+ +'ll'#4'Left'#2'Y'#6'Height'#2'"'#3'Top'#2#0#5'Width'#2#20#5'Align'#7#7'alRig'
+ +'ht'#7'Caption'#6#5'Fill:'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'T'
+ +'Label'#10'LabelPaper'#4'Left'#3#141#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#2
+ +''''#5'Align'#7#7'alRight'#7'Caption'#6#6'Paper:'#6'Layout'#7#8'tlCenter'#11
+ +'ParentColor'#8#0#0#6'TPanel'#12'PanelOutline'#4'Left'#2'?'#6'Height'#2#22#3
+ +'Top'#2#6#5'Width'#2#20#5'Align'#7#7'alRight'#20'BorderSpacing.Around'#2#6#10
+ +'BevelInner'#7#9'bvLowered'#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'TabOrd'
+ +'er'#2#0#10'OnDblClick'#7#20'PanelOutlineDblClick'#0#0#6'TPanel'#9'PanelFill'
+ +#4'Left'#2's'#6'Height'#2#22#3'Top'#2#6#5'Width'#2#20#5'Align'#7#7'alRight'
+ +#20'BorderSpacing.Around'#2#6#10'BevelInner'#7#9'bvLowered'#5'Color'#7#7'clW'
+ +'hite'#11'ParentColor'#8#8'TabOrder'#2#1#10'OnDblClick'#7#17'PanelFillDblCli'
+ +'ck'#0#0#6'TPanel'#10'PanelPaper'#4'Left'#3#186#0#6'Height'#2#22#3'Top'#2#6#5
+ +'Width'#2#20#5'Align'#7#7'alRight'#20'BorderSpacing.Around'#2#6#10'BevelInne'
+ +'r'#7#9'bvLowered'#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'TabOrder'#2#2#10
+ +'OnDblClick'#7#18'PanelPaperDblClick'#0#0#0#6'TPanel'#16'PanelFillOutline'#4
+ +'Left'#3#175#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#2'S'#5'Align'#7#6'alLeft'
+ +#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#2'S'#8'Tab'
+ +'Order'#2#1#0#12'TSpeedButton'#15'ToolFillOutline'#4'Left'#2#4#6'Height'#2#24
+ +#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akLeft'#0#4'Down'#9#10'Glyph.Data'
+ +#10#234#4#0#0#230#4#0#0'BM'#230#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0
+ ,#0#0#1#0#24#0#0#0#0#0#176#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0
+#0#0#0#0#0#0#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0
@@ -176,92 +175,98 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#128#128#128#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2
- +#1#9'NumGlyphs'#2#0#7'OnClick'#7#20'ToolFillOutlineClick'#0#0#12'TSpeedButto'
- +'n'#11'ToolOutline'#4'Left'#2#29#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'A'
- +'nchors'#11#6'akLeft'#0#10'Glyph.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0
- +#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255
- +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2#1#9'NumGly'
+ +'phs'#2#0#7'OnClick'#7#20'ToolFillOutlineClick'#0#0#12'TSpeedButton'#11'Tool'
+ +'Outline'#4'Left'#2#29#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11
+ +#6'akLeft'#0#10'Glyph.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0'6'#0#0#0
+ +'('#0#0#0#20#0#0#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
- +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- ,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+ +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+ +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ ,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
- +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#10'Grou'
- +'pIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#16'ToolOutlineClick'#0#0#12'TSpee'
- +'dButton'#8'ToolFill'#4'Left'#2'6'#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7
- +'Anchors'#11#6'akLeft'#0#10'Glyph.Data'#10#234#4#0#0#230#4#0#0'BM'#230#4#0#0
- +#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0#0#0#0#0#176#4#0#0'd'#0
- ,#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255
- +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#10'GroupIndex'#2#1
+ +#9'NumGlyphs'#2#0#7'OnClick'#7#16'ToolOutlineClick'#0#0#12'TSpeedButton'#8'T'
+ +'oolFill'#4'Left'#2'6'#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11
+ +#6'akLeft'#0#10'Glyph.Data'#10#234#4#0#0#230#4#0#0'BM'#230#4#0#0#0#0#0#0'6'#0
+ +#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0#0#0#0#0#176#4#0#0'd'#0#0#0'd'#0#0#0
+ ,#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+ +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#255#255#255#255#255#255#255#255#255
@@ -309,29 +314,23 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#255#255#255#255#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#255#255#255#255#255
- +#255#255#255#255#255#255#255#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
- +#255#255#255#255#255#255#255#255#255#255#10'GroupIndex'#2#1#9'NumGlyphs'#2#0
- ,#7'OnClick'#7#13'ToolFillClick'#0#0#0#6'TPanel'#10'PanelShape'#4'Left'#2'*'#6
- +'Height'#2'"'#3'Top'#2#0#5'Width'#2'='#5'Align'#7#6'alLeft'#10'BevelOuter'#7
- +#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#2'='#8'TabOrder'#2#2#0#12'T'
- +'SpeedButton'#13'ToolRectShape'#4'Left'#2#7#6'Height'#2#24#3'Top'#2#5#5'Widt'
- +'h'#2#25#7'Anchors'#11#6'akLeft'#0#4'Down'#9#10'Glyph.Data'#10#234#4#0#0#230
- +#4#0#0'BM'#230#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0#0#0
- +#0#0#176#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#255#255#255#255#255#255#255#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7
+ ,#13'ToolFillClick'#0#0#0#6'TPanel'#10'PanelShape'#4'Left'#2'*'#6'Height'#2'"'
+ +#3'Top'#2#0#5'Width'#2'='#5'Align'#7#6'alLeft'#10'BevelOuter'#7#6'bvNone'#12
+ +'ClientHeight'#2'"'#11'ClientWidth'#2'='#8'TabOrder'#2#2#0#12'TSpeedButton'
+ +#13'ToolRectShape'#4'Left'#2#7#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anc'
+ +'hors'#11#6'akLeft'#0#4'Down'#9#10'Glyph.Data'#10#234#4#0#0#230#4#0#0'BM'#230
+ +#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0#0#0#0#0#176#4#0#0
+ +'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128
@@ -374,97 +373,97 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnCli'
- +'ck'#7#18'ToolRectShapeClick'#0#0#12'TSpeedButton'#15'ToolCircleShape'#4'Lef'
- +'t'#2#31#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akLeft'#0#10
- +'Glyph.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0
- +#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255
- +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#216#216
- ,#216#0#132#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CCC'#255
- +#132#132#132#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#133#133#133#0#25#25#25#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
- +#0#255#0#0#0#255#0#0#0#255#1#1#1#255#25#25#25#255#133#133#133#0#255#255#255#0
- +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#251
- +#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'+++'#255'WWW'#255'jjj'#255'ooo'#255
- +'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3#255#1#1#1#255'PPP'#255#251#251#251
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#0#0#0#255
- +#9#9#9#255'[[['#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255'[[['#255#9#9#9#255
- +#0#0#0#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#133#133#133#0#1
- +#1#1#255#9#9#9#255'hhh'#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255'hhh'#255#9#9#9#255#1#1#1#255#133#133#133
- +#0#255#255#255#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216#216#216#0
- +#132#132#132#0#1#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255'}}}'#255'+++'#255#1#1#1#255#132#132#132#0'CCC'#255#0#0#0#255'WWW'
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#18'Too'
+ +'lRectShapeClick'#0#0#12'TSpeedButton'#15'ToolCircleShape'#4'Left'#2#31#6'He'
+ +'ight'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akLeft'#0#10'Glyph.Data'
+ +#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0
+ +#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
+ +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#216#216#216#0#132
+ ,#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CCC'#255#132#132#132
+ +#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+ +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#133#133
+ +#133#0#25#25#25#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+ +#255#0#0#0#255#1#1#1#255#25#25#25#255#133#133#133#0#255#255#255#0#255#255#255
+ +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'
+ +#255#1#1#1#255#3#3#3#255'+++'#255'WWW'#255'jjj'#255'ooo'#255'ooo'#255'jjj'
+ +#255'WWW'#255'+++'#255#3#3#3#255#1#1#1#255'PPP'#255#251#251#251#0#255#255#255
+ +#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#0#0#0#255#9#9#9#255'[['
+ +'['#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255'}}}'#255'[[['#255#9#9#9#255#0#0#0#255'P'
+ +'PP'#255#251#251#251#0#255#255#255#0#255#255#255#0#133#133#133#0#1#1#1#255#9
+ +#9#9#255'hhh'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255'hhh'#255#9#9#9#255#1#1#1#255#133#133#133#0#255#255
+ +#255#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255#127#127#127#255#127#127
+#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +'WWW'#255#0#0#0#255'CCC'#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127
- +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255'((('
- +#255' '#255#0#0#0#255'ooo'#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255'ooo'#255#0#0#0#255' '#255' '#255#0#0#0#255
- +'ooo'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'ooo'#255#0#0#0#255' '#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255
- +'((('#255'CCC'#255#0#0#0#255'WWW'#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255'WWW'#255#0#0#0#255'CCC'#255#132#132#132#0#1
- +#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216#216#216#0#132#132#132#0
+ +#1#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255
- +'+++'#255#1#1#1#255#132#132#132#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['
+ +'+++'#255#1#1#1#255#132#132#132#0'CCC'#255#0#0#0#255'WWW'#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255'WWW'#255#0#0#0#255
+ +'CCC'#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255'((('#255' '#255#0#0#0
+ +#255'ooo'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255'ooo'#255#0#0#0#255' '#255' '#255#0#0#0#255'ooo'#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255
- +#216#216#216#0#255#255#255#0#133#133#133#0#1#1#1#255#9#9#9#255'hhh'#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'ooo'#255#0#0#0
+ +#255' '#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'hhh'#255#9#9#9#255#1#1#1#255#133#133#133#0#255#255#255#0#255#255#255#0
- +#251#251#251#0'PPP'#255#0#0#0#255#9#9#9#255'[[['#255'}}}'#255#127#127#127#255
+ +#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255'((('#255'CCC'#255#0#0
+ +#0#255'WWW'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255'WWW'#255#0#0#0#255'CCC'#255#132#132#132#0#1#1#1#255'+++'#255'}}'
+ +'}'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255'+++'#255#1#1#1#255
+ +#132#132#132#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255#127#127#127#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'}}}'#255'[[['#255#9#9#9#255#0#0#0#255'PPP'#255#251#251#251#0#255#255#255
- +#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'++'
- +'+'#255'WWW'#255'jjj'#255'ooo'#255'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3
- +#255#1#1#1#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#133#133#133#0#25#25#25#255#1#1#1
- +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#25
- ,#25#25#255#133#133#133#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#216#216#216#0#132#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CC'
- +'C'#255#132#132#132#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#255#255#255#0#255#255#255#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7
- +#20'ToolCircleShapeClick'#0#0#0#6'TPanel'#13'PanelMaskTool'#4'Left'#3'E'#1#6
- +'Height'#2'"'#3'Top'#2#0#5'Width'#2'V'#5'Align'#7#6'alLeft'#10'BevelOuter'#7
- +#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#2'V'#8'TabOrder'#2#3#0#12'T'
- +'SpeedButton'#17'ToolMaskRectangle'#4'Left'#2#7#6'Height'#2#24#3'Top'#2#5#5
- +'Width'#2#25#7'Anchors'#11#6'akLeft'#0#4'Down'#9#10'Glyph.Data'#10#234#4#0#0
- +#230#4#0#0'BM'#230#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0
- +#0#0#0#0#176#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216#216#216#0#255
+ +#255#255#0#133#133#133#0#1#1#1#255#9#9#9#255'hhh'#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'hhh'#255#9#9#9
+ +#255#1#1#1#255#133#133#133#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'
+ +#255#0#0#0#255#9#9#9#255'[[['#255'}}}'#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255'[['
+ +'['#255#9#9#9#255#0#0#0#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255
+ +#0#255#255#255#0#251#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'+++'#255'WWW'#255
+ +'jjj'#255'ooo'#255'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3#255#1#1#1#255'P'
+ +'PP'#255#251#251#251#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+ +#0#255#255#255#0#255#255#255#0#133#133#133#0#25#25#25#255#1#1#1#255#0#0#0#255
+ +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#25#25#25#255#133
+ ,#133#133#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#216#216#216#0
+ +#132#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CCC'#255#132#132
+ +#132#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#20'ToolCircl'
+ +'eShapeClick'#0#0#0#6'TPanel'#13'PanelMaskTool'#4'Left'#3'E'#1#6'Height'#2'"'
+ +#3'Top'#2#0#5'Width'#2'V'#5'Align'#7#6'alLeft'#10'BevelOuter'#7#6'bvNone'#12
+ +'ClientHeight'#2'"'#11'ClientWidth'#2'V'#8'TabOrder'#2#3#0#12'TSpeedButton'
+ +#17'ToolMaskRectangle'#4'Left'#2#7#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7
+ +'Anchors'#11#6'akLeft'#0#4'Down'#9#10'Glyph.Data'#10#234#4#0#0#230#4#0#0'BM'
+ +#230#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0#24#0#0#0#0#0#176#4
+ +#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128
@@ -507,78 +506,81 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#128#128#128#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
- +#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#128#128#128#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+ +#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128#128
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
- +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'O'
- ,'nClick'#7#22'ToolMaskRectangleClick'#0#0#12'TSpeedButton'#15'ToolMaskEllips'
- +'e'#4'Left'#2#31#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akL'
- +'eft'#0#10'Glyph.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0'6'#0#0#0'('#0
- +#0#0#20#0#0#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0
- +#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#216#216#216#0#132#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CC'
- +'C'#255#132#132#132#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
- +#255#255#0#133#133#133#0#25#25#25#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255
- +#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#25#25#25#255#133#133#133#0#255#255
- +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
- +#251#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'+++'#255'WWW'#255'jjj'#255'ooo'
- +#255'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3#255#1#1#1#255'PPP'#255#251#251
- +#251#0#255#255#255#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#0#0#0
- +#255#9#9#9#255'[[['#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255'[[['#255#9#9#9
- +#255#0#0#0#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#133#133#133
- +#0#1#1#1#255#9#9#9#255'hhh'#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255'hhh'#255#9#9#9#255#1#1#1#255#133#133
- +#133#0#255#255#255#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+ +#0#0#0#0#0#0#0#0#0#0#0#0#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#22
+ ,'ToolMaskRectangleClick'#0#0#12'TSpeedButton'#15'ToolMaskEllipse'#4'Left'#2
+ +#31#6'Height'#2#24#3'Top'#2#5#5'Width'#2#25#7'Anchors'#11#6'akLeft'#0#10'Gly'
+ +'ph.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#20#0#0#0
+ +#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#216#216#216#0
+ +#132#132#132#0'CCC'#255'((('#255' '#255' '#255'((('#255'CCC'#255#132#132
+ +#132#0#216#216#216#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#133
+ +#133#133#0#25#25#25#255#1#1#1#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+ +#0#255#0#0#0#255#1#1#1#255#25#25#25#255#133#133#133#0#255#255#255#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#251#251#251#0
+ +'PPP'#255#1#1#1#255#3#3#3#255'+++'#255'WWW'#255'jjj'#255'ooo'#255'ooo'#255'j'
+ +'jj'#255'WWW'#255'+++'#255#3#3#3#255#1#1#1#255'PPP'#255#251#251#251#0#255#255
+ +#255#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#0#0#0#255#9#9#9#255
+ +'[[['#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255'}}}'#255'[[['#255#9#9#9#255#0#0#0
+ +#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#133#133#133#0#1#1#1
+ +#255#9#9#9#255'hhh'#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216#216#216
- +#0#132#132#132#0#1#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255'hhh'#255#9#9#9#255#1#1#1#255#133#133#133#0
+ +#255#255#255#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255#127#127#127#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255'}}}'#255'+++'#255#1#1#1#255#132#132#132#0'CCC'#255#0#0#0#255'WWW'
+ +#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216#216#216#0#132
+ +#132#132#0#1#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255'}}}'#255'+++'#255#1#1#1#255#132#132#132#0'CCC'#255#0#0#0#255'WWW'#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'WWW'
+ +#255#0#0#0#255'CCC'#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255'((('#255
+ +' '#255#0#0#0#255'ooo'#255#127#127#127#255#127#127#127#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255'ooo'#255#0#0#0#255' '#255' '#255#0#0#0#255'ooo'
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +'WWW'#255#0#0#0#255'CCC'#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127
+ +'ooo'#255#0#0#0#255' '#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255'((('
- +#255' '#255#0#0#0#255'ooo'#255#127#127#127#255#127#127#127#255#127#127#127
+ +#255'CCC'#255#0#0#0#255'WWW'#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
+#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255'ooo'#255#0#0#0#255' '#255' '#255#0#0#0#255
- +'ooo'#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+ +#127#127#255#127#127#127#255'WWW'#255#0#0#0#255'CCC'#255#132#132#132#0#1#1#1
+ +#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'ooo'#255#0#0#0#255' '#255'((('#255#0#0#0#255'jjj'#255#127#127#127#255
+ +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255'++'
+ +'+'#255#1#1#1#255#132#132#132#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['#255
+#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
+#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255'jjj'#255#0#0#0#255
- +'((('#255'CCC'#255#0#0#0#255'WWW'#255#127#127#127#255#127#127#127#255#127#127
+ +#127#255#127#127#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255#216
+ +#216#216#0#255#255#255#0#133#133#133#0#1#1#1#255#9#9#9#255'hhh'#255#127#127
+#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255'WWW'#255#0#0#0#255'CCC'#255#132#132#132#0#1
- +#1#1#255'+++'#255'}}}'#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255'}}}'#255
- +'+++'#255#1#1#1#255#132#132#132#0#216#216#216#0#25#25#25#255#3#3#3#255'[[['
- +#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127
- +#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127
- +#127#127#255#127#127#127#255#127#127#127#255'[[['#255#3#3#3#255#25#25#25#255
- +#216#216#216#0#255#255#255#0#133#133#133#0#1#1#1#255#9#9#9#255'hhh'#255#127
+ +'hhh'#255#9#9#9#255#1#1#1#255#133#133#133#0#255#255#255#0#255#255#255#0#251
+ +#251#251#0'PPP'#255#0#0#0#255#9#9#9#255'[[['#255'}}}'#255#127#127#127#255#127
+#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'hhh'#255#9#9#9#255#1#1#1#255#133#133#133#0#255#255#255#0#255#255#255#0
- +#251#251#251#0'PPP'#255#0#0#0#255#9#9#9#255'[[['#255'}}}'#255#127#127#127#255
- +#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127#255#127#127#127
- +#255'}}}'#255'[[['#255#9#9#9#255#0#0#0#255'PPP'#255#251#251#251#0#255#255#255
- ,#0#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'++'
- +'+'#255'WWW'#255'jjj'#255'ooo'#255'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3
- +#255#1#1#1#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#255#255#255
- +#0#255#255#255#0#255#255#255#0#255#255#255#0#133#133#133#0#25#25#25#255#1#1#1
+ +'}}}'#255'[[['#255#9#9#9#255#0#0#0#255'PPP'#255#251#251#251#0#255#255#255#0
+ ,#255#255#255#0#255#255#255#0#251#251#251#0'PPP'#255#1#1#1#255#3#3#3#255'+++'
+ +#255'WWW'#255'jjj'#255'ooo'#255'ooo'#255'jjj'#255'WWW'#255'+++'#255#3#3#3#255
+ +#1#1#1#255'PPP'#255#251#251#251#0#255#255#255#0#255#255#255#0#255#255#255#0
+ +#255#255#255#0#255#255#255#0#255#255#255#0#133#133#133#0#25#25#25#255#1#1#1
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#1#1#1#255#25
+#25#25#255#133#133#133#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
@@ -662,8 +664,8 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#10'Gr'
+'oupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#22'ToolMaskFloodFillClick'#0#0#0
+#0#6'TPanel'#16'PanelToolOptions'#4'Left'#2#0#6'Height'#2'"'#3'Top'#2'G'#5'W'
- +'idth'#3#129#3#5'Align'#7#5'alTop'#10'BevelOuter'#7#6'bvNone'#12'ClientHeigh'
- +'t'#2'"'#11'ClientWidth'#3#129#3#8'TabOrder'#2#2#0#6'TLabel'#9'LabelSize'#4
+ +'idth'#3#137#3#5'Align'#7#5'alTop'#10'BevelOuter'#7#6'bvNone'#12'ClientHeigh'
+ +'t'#2'"'#11'ClientWidth'#3#137#3#8'TabOrder'#2#2#0#6'TLabel'#9'LabelSize'#4
+'Left'#2#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#2#28#5'Align'#7#6'alLeft'#7'Ca'
+'ption'#6#5'Size:'#21'Constraints.MinHeight'#2' '#6'Layout'#7#8'tlCenter'#11
+'ParentColor'#8#0#0#6'TLabel'#12'LabelDensity'#4'Left'#3#234#0#6'Height'#2'"'
@@ -719,10 +721,10 @@ LazarusResources.Add('TMainForm','FORMDATA',[
+#12'ClientHeight'#2'"'#11'ClientWidth'#2#30#8'TabOrder'#2#5#0#9'TCheckBox'#10
+'checkFuzzy'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#9#5'Width'#2#20#8'OnChange'
+#7#16'checkFuzzyChange'#8'TabOrder'#2#0#0#0#0#0#0#6'TPanel'#13'PanelPictures'
- +#4'Left'#2'('#6'Height'#3#226#1#3'Top'#2'i'#5'Width'#3#14#3#5'Align'#7#8'alC'
- +'lient'#10'BevelOuter'#7#9'bvLowered'#8'TabOrder'#2#3#0#0#9'TMainMenu'#8'Mai'
- +'nMenu'#6'Images'#7#16'ImageListActions'#4'left'#2'r'#3'top'#2'~'#0#9'TMenuI'
- +'tem'#12'MenuItemFile'#7'Caption'#6#5'&File'#0#9'TMenuItem'#11'MenuItemNew'#6
+ +#4'Left'#2'('#6'Height'#3#5#2#3'Top'#2'i'#5'Width'#3#22#3#5'Align'#7#8'alCli'
+ +'ent'#10'BevelOuter'#7#9'bvLowered'#8'TabOrder'#2#3#0#0#9'TMainMenu'#8'MainM'
+ +'enu'#6'Images'#7#16'ImageListActions'#4'left'#2'r'#3'top'#2'~'#0#9'TMenuIte'
+ +'m'#12'MenuItemFile'#7'Caption'#6#5'&File'#0#9'TMenuItem'#11'MenuItemNew'#6
+'Action'#7#7'FileNew'#11'Bitmap.Data'#10'z'#6#0#0'v'#6#0#0'BMv'#6#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#20#0#0#0#20#0#0#0#1#0' '#0#0#0#0#0'@'#6#0#0'd'#0#0#0'd'#0
+#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#0#0#0#31#0#0#0#254#4#4#4#251
diff --git a/applications/lazimageeditor/main.pas b/applications/lazimageeditor/main.pas
index e197bbe3a..5ff3b8980 100644
--- a/applications/lazimageeditor/main.pas
+++ b/applications/lazimageeditor/main.pas
@@ -17,7 +17,7 @@
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
-
+
Author: Tom Gregorovic
Abstract:
@@ -243,8 +243,7 @@ type
procedure MenuItemResizePaperClick(Sender: TObject);
procedure PaletteColorMouseMove(Sender: TObject; AColor: TColor;
Shift: TShiftState);
- procedure PaletteColorPick(Sender: TObject; AColor: TColor;
- Shift: TShiftState);
+ procedure PaletteColorPick(Sender: TObject; AColor: TColor; Shift: TShiftState);
procedure PanelFillDblClick(Sender: TObject);
procedure PanelOutlineDblClick(Sender: TObject);
procedure PanelPaperDblClick(Sender: TObject);
@@ -274,7 +273,7 @@ type
procedure ToolRectShapeClick(Sender: TObject);
procedure ToolEraserClick(Sender: TObject);
procedure ToolSprayClick(Sender: TObject);
- procedure PictureMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
+ procedure PictureMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
procedure PictureColorChange(Sender: TObject);
procedure PictureFileNameChange(Sender: TObject);
procedure PictureSizeChange(Sender: TObject);
@@ -286,7 +285,7 @@ type
function GetActivePicture: TPictureBitmap;
function GetActivePictureEdit: TPictureEdit;
function GetActivePicturePage: TPicturePage;
-
+
procedure UpdateToolSettings;
procedure SelectTool(Tool: TPictureEditTool);
procedure ChangeTool(Tool: TPictureEditTool);
@@ -296,11 +295,11 @@ type
property ActivePicture: TPictureBitmap read GetActivePicture;
property ActivePicturePage: TPicturePage read GetActivePicturePage;
property ActivePictureEdit: TPictureEdit read GetActivePictureEdit;
- end;
-
+ end;
+
TToolSetting = (tsFillAndOutline, tsShape, tsMaskTools, tsSize, tsDensity, tsRoundness,
tsTolerance);
-
+
TToolSettings = set of TToolSetting;
var
@@ -310,17 +309,17 @@ implementation
uses Test, IconStrConsts;
-procedure SetControlsEnabled(AControl: TControl; AEnabled: Boolean);
+procedure SetControlsEnabled(AControl: TControl; AEnabled: boolean);
var
AWinControl: TWinControl;
- I: Integer;
+ I: integer;
begin
AControl.Enabled := AEnabled;
if AControl is TWinControl then
begin
AWinControl := AControl as TWinControl;
for I := 0 to Pred(AWinControl.ControlCount) do
- SetControlsEnabled(AWinControl.Controls[I], AEnabled);
+ SetControlsEnabled(AWinControl.Controls[I], AEnabled);
end;
end;
@@ -333,13 +332,15 @@ end;
procedure TMainForm.MenuItemResizeClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ResizeDialogForm.ShowDialog(ActivePicturePage);
end;
procedure TMainForm.MenuItemResizePaperClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ResizePaperDialogForm.ShowDialog(ActivePicturePage);
end;
@@ -354,43 +355,44 @@ procedure TMainForm.PicturePageChange(Sender: TObject);
begin
UpdatePictureToolsEnabled;
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
with ActivePictureEdit do
begin
PanelOutline.Color := OutlineColor;
PanelFill.Color := FillColor;
PanelPaper.Color := PaperColor;
-
+
UpDownDensity.Position := Round(RandomDensity * 100);
UpDownSize.Position := Size;
case Shape of
- psRect: ToolRectShape.Down := True;
- psCircle: ToolCircleShape.Down := True;
+ psRect: ToolRectShape.Down := True;
+ psCircle: ToolCircleShape.Down := True;
end;
-
+
{ case FillAndOutline of
dmFillAndOutline: ToolFillOutline.Down := True;
dmOutline: ToolOutline.Down := True;
dmFill: ToolFill.Down := True;
end; }
-
+
case MaskTool of
- mtRectangle: ToolMaskRectangle.Down := True;
- mtEllipse: ToolmaskEllipse.Down := True;
- mtFloodFill: ToolMaskFloodFill.Down := True;
+ mtRectangle: ToolMaskRectangle.Down := True;
+ mtEllipse: ToolmaskEllipse.Down := True;
+ mtFloodFill: ToolMaskFloodFill.Down := True;
end;
-
+
UpDownRoundness.Position := RectangleRoundness;
UpDownTolerance.Position := Round(FloodFillTolerance * 100);
-
+
ComboBoxZoom.Text := Format('%d %%', [Round(Zoom * 100)]);
-
+
ViewShowGrid.Checked := poShowGrid in ActivePictureEdit.Options;
ViewShowMask.Checked := poShowMask in ActivePictureEdit.Options;
SelectTool(Tool);
-
+
PictureSizeChange(nil);
PictureFileNameChange(nil);
end;
@@ -408,171 +410,198 @@ end;
procedure TMainForm.PicturePageCloseQuery(Sender: TObject; var CanClose: boolean);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
CanClose := True;
-
+
if ActivePictureEdit.Modified then
begin
- case MessageDlg(Application.Title,
- Format(lieSaveChanges, [ActivePicturePage.Caption]), mtWarning,
- mbYesNoCancel, 0) of
- mrYes:
- begin
- ActivePicturePage.Save;
- CanClose := not ActivePictureEdit.Modified;
- end;
- mrCancel: CanClose := False;
+ case MessageDlg(Application.Title, Format(lieSaveChanges,
+ [ActivePicturePage.Caption]), mtWarning, mbYesNoCancel, 0) of
+ mrYes:
+ begin
+ ActivePicturePage.Save;
+ CanClose := not ActivePictureEdit.Modified;
+ end;
+ mrCancel: CanClose := False;
end;
end;
end;
procedure TMainForm.Rotate180Execute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Rotate180Clockwise;
end;
procedure TMainForm.Rotate270Execute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Rotate270Clockwise;
end;
procedure TMainForm.Rotate90Execute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Rotate90Clockwise;
end;
procedure TMainForm.spinFillAlphaChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.FillAlpha := spinFillAlpha.Value;
end;
procedure TMainForm.ToolCircleShapeClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Shape := psCircle;
end;
procedure TMainForm.ToolColorPickClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptColorPick);
end;
procedure TMainForm.ToolEllClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptEllipse);
end;
procedure TMainForm.ToolFillClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
-// ActivePictureEdit.FillAndOutline := dmFill;
+ if not Pictures.CanEdit then
+ Exit;
+ // ActivePictureEdit.FillAndOutline := dmFill;
end;
procedure TMainForm.ToolFillOutlineClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
-// ActivePictureEdit.FillAndOutline := dmFillAndOutline;
+ if not Pictures.CanEdit then
+ Exit;
+ // ActivePictureEdit.FillAndOutline := dmFillAndOutline;
end;
procedure TMainForm.ToolFloodFillClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptFloodFill);
end;
procedure TMainForm.ToolLineClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptLine);
end;
procedure TMainForm.ToolMaskClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptMask);
end;
procedure TMainForm.ToolMaskEllipseClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.MaskTool := mtEllipse;
end;
procedure TMainForm.ToolMaskFloodFillClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.MaskTool := mtFloodFill;
end;
procedure TMainForm.ToolMaskRectangleClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.MaskTool := mtRectangle;
end;
procedure TMainForm.ToolOutlineClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
-// ActivePictureEdit.FillAndOutline := dmOutline;
+ if not Pictures.CanEdit then
+ Exit;
+ // ActivePictureEdit.FillAndOutline := dmOutline;
end;
procedure TMainForm.ToolPenClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptPen);
end;
procedure TMainForm.ToolPolygonClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptPolygon);
end;
procedure TMainForm.ToolRectangleClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptRectangle);
end;
procedure TMainForm.ToolRectShapeClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Shape := psRect;
end;
procedure TMainForm.ToolEraserClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptEraser);
end;
procedure TMainForm.ToolSprayClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ChangeTool(ptSpray);
end;
-procedure TMainForm.PictureMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+procedure TMainForm.PictureMouseMove(Sender: TObject; Shift: TShiftState;
+ X, Y: integer);
var
- DX, DY: Integer;
+ DX, DY: integer;
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
StatusBar.Panels[2].Text := Format('%3.d : %3.d', [X, Y]);
-
+
DX := ActivePictureEdit.EndPos.X - ActivePictureEdit.StartPos.X;
DY := ActivePictureEdit.EndPos.Y - ActivePictureEdit.StartPos.Y;
- if DX >= 0 then Inc(DX)
- else Dec(DX);
- if DY >= 0 then Inc(DY)
- else Dec(DY);
-
+ if DX >= 0 then
+ Inc(DX)
+ else
+ Dec(DX);
+ if DY >= 0 then
+ Inc(DY)
+ else
+ Dec(DY);
+
StatusBar.Panels[3].Text := Format('%3.d x %3.d', [DX, DY]);
StatusBar.Panels[4].Text :=
ColorToString(ActivePicture.GetColor(X, Y));
@@ -580,7 +609,8 @@ end;
procedure TMainForm.PictureColorChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
with ActivePictureEdit do
begin
PanelOutline.Color := OutlineColor;
@@ -591,21 +621,23 @@ end;
procedure TMainForm.PictureFileNameChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
StatusBar.Panels[0].Text := ActivePicturePage.Filename;
end;
procedure TMainForm.PictureSizeChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
with ActivePictureEdit do
- StatusBar.Panels[1].Text := Format('%d x %d',
- [Picture.Width, Picture.Height]);
+ StatusBar.Panels[1].Text := Format('%d x %d', [Picture.Width, Picture.Height]);
end;
procedure TMainForm.ViewShowGridExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
if ViewShowGrid.Checked then
ActivePictureEdit.Options := ActivePictureEdit.Options + [poShowGrid]
else
@@ -616,7 +648,8 @@ end;
procedure TMainForm.ViewShowMaskExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
if ViewShowMask.Checked then
ActivePictureEdit.Options := ActivePictureEdit.Options + [poShowMask]
else
@@ -627,24 +660,30 @@ end;
procedure TMainForm.ViewShowPreviewExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
end;
procedure TMainForm.PaletteColorPick(Sender: TObject; AColor: TColor;
Shift: TShiftState);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
with ActivePictureEdit do
begin
- if ssLeft in Shift then OutlineColor := AColor;
- if ssRight in Shift then FillColor := AColor;
- if ssMiddle in Shift then PaperColor := AColor;
+ if ssLeft in Shift then
+ OutlineColor := AColor;
+ if ssRight in Shift then
+ FillColor := AColor;
+ if ssMiddle in Shift then
+ PaperColor := AColor;
end;
end;
procedure TMainForm.PanelFillDblClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ColorDialog.Color := ActivePictureEdit.FillColor;
if ColorDialog.Execute then
begin
@@ -654,7 +693,8 @@ end;
procedure TMainForm.PanelOutlineDblClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ColorDialog.Color := ActivePictureEdit.OutlineColor;
if ColorDialog.Execute then
begin
@@ -664,7 +704,8 @@ end;
procedure TMainForm.PanelPaperDblClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ColorDialog.Color := ActivePictureEdit.PaperColor;
if ColorDialog.Execute then
begin
@@ -702,23 +743,23 @@ end;
procedure TMainForm.UpdatePictureToolsEnabled;
var
- AValue: Boolean;
+ AValue: boolean;
begin
AValue := Pictures.CanEdit;
-
+
SetControlsEnabled(PanelZoom, AValue);
SetControlsEnabled(PanelOptions, AValue);
SetControlsEnabled(PanelToolOptions, AValue);
SetControlsEnabled(ToolBarTools, AValue);
SetControlsEnabled(Palette, AValue);
-
+
FileNew.Enabled := True;
FileOpen.Enabled := True;
FileSave.Enabled := AValue and ActivePictureEdit.Modified;
FileSaveAs.Enabled := AValue;
FileExportAsLRS.Enabled := AValue;
FileClose.Enabled := AValue;
-
+
EditUndo.Enabled := False;//AValue;
EditRedo.Enabled := False;//AValue;
EditCopy.Enabled := AValue;
@@ -726,26 +767,26 @@ begin
EditPaste.Enabled := False;//AValue;
EditDelete.Enabled := AValue;
EditSelectAll.Enabled := AValue;
-
+
PictureResize.Enabled := AValue;
PictureResizePaper.Enabled := AValue;
PictureClipPaperToMask.Enabled := AValue;
-
+
FlipHorizontally.Enabled := AValue;
FlipVertically.Enabled := AValue;
-
+
Rotate90.Enabled := AValue;
Rotate180.Enabled := AValue;
Rotate270.Enabled := AValue;
RotateCustom.Enabled := AValue;
-
+
ColorsInvert.Enabled := AValue;
ColorsGrayscale.Enabled := AValue;
ColorsDisable.Enabled := AVAlue;
-
+
ViewShowGrid.Enabled := AValue;
ViewShowMask.Enabled := AValue;
-
+
ToolBar.Invalidate;
ToolBarTools.Invalidate;
end;
@@ -770,40 +811,41 @@ procedure TMainForm.UpdateToolSettings;
var
Settings: TToolSettings;
begin
- if not Pictures.CanEdit then Exit;
-
+ if not Pictures.CanEdit then
+ Exit;
+
case ActivePictureEdit.Tool of
- ptColorPick: Settings := [];
- ptMask: Settings := [tsMaskTools, tsTolerance];
- ptLine, ptPen: Settings := [];
- ptRectangle: Settings := [tsFillAndOutline, tsRoundness];
- ptEllipse: Settings := [tsFillAndOutline];
- ptPolygon: Settings := [tsFillAndOutline];
- ptFloodFill: Settings := [tsTolerance];
- ptEraser: Settings := [tsShape, tsSize];
- ptSpray: Settings := [tsShape, tsSize, tsDensity];
+ ptColorPick: Settings := [];
+ ptMask: Settings := [tsMaskTools, tsTolerance];
+ ptLine, ptPen: Settings := [];
+ ptRectangle: Settings := [tsFillAndOutline, tsRoundness];
+ ptEllipse: Settings := [tsFillAndOutline];
+ ptPolygon: Settings := [tsFillAndOutline];
+ ptFloodFill: Settings := [tsTolerance];
+ ptEraser: Settings := [tsShape, tsSize];
+ ptSpray: Settings := [tsShape, tsSize, tsDensity];
end;
-
+
// PanelToolBar/PanelToolOptions
PanelSize.Enabled := tsSize in Settings;
LabelSize.Enabled := tsSize in Settings;
-
+
PanelDensity.Enabled := tsDensity in Settings;
LabelDensity.Enabled := tsDensity in Settings;
-
+
PanelRoundness.Enabled := tsRoundness in Settings;
LabelRoundness.Enabled := tsRoundness in Settings;
-
+
PanelTolerance.Enabled := tsTolerance in Settings;
LabelTolerance.Enabled := tsTolerance in Settings;
// PanelToolbar/PanelOptions
PanelShape.Enabled := tsShape in Settings;
LabelShape.Enabled := tsShape in Settings;
-
+
PanelFillOutline.Enabled := tsFillAndOutline in Settings;
LabelFillOutline.Enabled := tsFillAndOutline in Settings;
-
+
PanelMaskTool.Enabled := tsMaskTools in Settings;
LabelMaskTool.Enabled := tsMaskTools in Settings;
end;
@@ -825,11 +867,11 @@ begin
UpdatePictureToolsEnabled;
UpdateToolSettings;
-
+
Palette.LoadPalette('default.pal');
-
+
// Main Form
- Caption:=lieMain;
+ Caption := lieMain;
// Menus
MenuItemFile.Caption := lieMenuFile;
@@ -841,94 +883,94 @@ begin
// Actions
FileNew.Caption := lieFileNew;
- FileOpen.Caption:=lieFileOpen;
- FileSave.Caption:=lieFileSave;
- FileSaveAs.Caption:=lieFileSaveAs;
- FileExportAsLRS.Caption:=lieFileExportAsLRS;
- FileClose.Caption:=lieFileClose;
- Rotate90.Caption:=lieRotate90;
- Rotate180.Caption:=lieRotate180;
- Rotate270.Caption:=lieRotate270;
- RotateCustom.Caption:=lieRotateCustom;
- FlipVertically.Caption:=lieFlipVertically;
- FlipHorizontally.Caption:=lieFlipHorizontally;
- PictureResizePaper.Caption:=liePictureResizePaper;
- PictureResize.Caption:=liePictureResize;
- ColorsGrayscale.Caption:=lieColorsGrayscale;
- ColorsInvert.Caption:=lieColorsInvert;
- ColorsDisable.Caption:=lieColorsDisable;
- ViewShowMask.Caption:=lieViewShowMask;
- ViewShowGrid.Caption:=lieViewShowGrid;
- MaskInvert.Caption:=lieMaskInvert;
- MaskRemove.Caption:=lieMaskRemove;
- EditCopy.Caption:=lieEditCopy;
- EditCut.Caption:=lieEditCut;
- EditDelete.Caption:=lieEditDelete;
- EditPaste.Caption:=lieEditPaste;
- EditRedo.Caption:=lieEditRedo;
- EditSelectAll.Caption:=lieEditSelectAll;
- EditUndo.Caption:=lieEditUndo;
+ FileOpen.Caption := lieFileOpen;
+ FileSave.Caption := lieFileSave;
+ FileSaveAs.Caption := lieFileSaveAs;
+ FileExportAsLRS.Caption := lieFileExportAsLRS;
+ FileClose.Caption := lieFileClose;
+ Rotate90.Caption := lieRotate90;
+ Rotate180.Caption := lieRotate180;
+ Rotate270.Caption := lieRotate270;
+ RotateCustom.Caption := lieRotateCustom;
+ FlipVertically.Caption := lieFlipVertically;
+ FlipHorizontally.Caption := lieFlipHorizontally;
+ PictureResizePaper.Caption := liePictureResizePaper;
+ PictureResize.Caption := liePictureResize;
+ ColorsGrayscale.Caption := lieColorsGrayscale;
+ ColorsInvert.Caption := lieColorsInvert;
+ ColorsDisable.Caption := lieColorsDisable;
+ ViewShowMask.Caption := lieViewShowMask;
+ ViewShowGrid.Caption := lieViewShowGrid;
+ MaskInvert.Caption := lieMaskInvert;
+ MaskRemove.Caption := lieMaskRemove;
+ EditCopy.Caption := lieEditCopy;
+ EditCut.Caption := lieEditCut;
+ EditDelete.Caption := lieEditDelete;
+ EditPaste.Caption := lieEditPaste;
+ EditRedo.Caption := lieEditRedo;
+ EditSelectAll.Caption := lieEditSelectAll;
+ EditUndo.Caption := lieEditUndo;
// Hints for Actions
FileNew.Hint := lieHintFileNew;
- FileOpen.Hint:=lieHintFileOpen;
- FileSave.Hint:=lieHintFileSave;
- FileSaveAs.Hint:=lieHintFileSaveAs;
- FileExportAsLRS.Hint:=lieHintFileExportAsLRS;
- FileClose.Hint:=lieHintFileClose;
- Rotate90.Hint:=lieHintRotate90;
- Rotate180.Hint:=lieHintRotate180;
- Rotate270.Hint:=lieHintRotate270;
- RotateCustom.Hint:=lieHintRotateCustom;
- FlipVertically.Hint:=lieHintFlipVertically;
- FlipHorizontally.Hint:=lieHintFlipHorizontally;
- PictureResizePaper.Hint:=lieHintPictureResizePaper;
- PictureResize.Hint:=lieHintPictureResize;
- ColorsGrayscale.Hint:=lieHintColorsGrayscale;
- ColorsInvert.Hint:=lieHintColorsInvert;
- ColorsDisable.Hint:=lieHintColorsDisable;
- ViewShowMask.Hint:=lieHintViewShowMask;
- ViewShowGrid.Hint:=lieHintViewShowGrid;
- MaskInvert.Hint:=lieHintMaskInvert;
- MaskRemove.Hint:=lieHintMaskRemove;
- EditCopy.Hint:=lieHintEditCopy;
- EditCut.Hint:=lieHintEditCut;
- EditDelete.Hint:=lieHintEditDelete;
- EditPaste.Hint:=lieHintEditPaste;
- EditRedo.Hint:=lieHintEditRedo;
- EditSelectAll.Hint:=lieHintEditSelectAll;
- EditUndo.Hint:=lieHintEditUndo;
+ FileOpen.Hint := lieHintFileOpen;
+ FileSave.Hint := lieHintFileSave;
+ FileSaveAs.Hint := lieHintFileSaveAs;
+ FileExportAsLRS.Hint := lieHintFileExportAsLRS;
+ FileClose.Hint := lieHintFileClose;
+ Rotate90.Hint := lieHintRotate90;
+ Rotate180.Hint := lieHintRotate180;
+ Rotate270.Hint := lieHintRotate270;
+ RotateCustom.Hint := lieHintRotateCustom;
+ FlipVertically.Hint := lieHintFlipVertically;
+ FlipHorizontally.Hint := lieHintFlipHorizontally;
+ PictureResizePaper.Hint := lieHintPictureResizePaper;
+ PictureResize.Hint := lieHintPictureResize;
+ ColorsGrayscale.Hint := lieHintColorsGrayscale;
+ ColorsInvert.Hint := lieHintColorsInvert;
+ ColorsDisable.Hint := lieHintColorsDisable;
+ ViewShowMask.Hint := lieHintViewShowMask;
+ ViewShowGrid.Hint := lieHintViewShowGrid;
+ MaskInvert.Hint := lieHintMaskInvert;
+ MaskRemove.Hint := lieHintMaskRemove;
+ EditCopy.Hint := lieHintEditCopy;
+ EditCut.Hint := lieHintEditCut;
+ EditDelete.Hint := lieHintEditDelete;
+ EditPaste.Hint := lieHintEditPaste;
+ EditRedo.Hint := lieHintEditRedo;
+ EditSelectAll.Hint := lieHintEditSelectAll;
+ EditUndo.Hint := lieHintEditUndo;
//Labels
- LabelZoom.Caption:=lieLabelZoom;
- LabelShape.Caption:=lieLabelShape;
- LabelFillOutline.Caption:=lieLabelFillOutline;
- LabelMaskTool.Caption:=lieLabelMaskTool;
- LabelOutline.Caption:=lieLabelOutline;
- LabelFill.Caption:=lieLabelFill;
- LabelPaper.Caption:=lieLabelPaper;
- LabelSize.Caption:=lieLabelSize;
- LabelRoundness.Caption:=lieLabelRoundness;
- LabelDensity.Caption:=lieLabelDensity;
- LabelTolerance.Caption:=lieLabelTolerance;
+ LabelZoom.Caption := lieLabelZoom;
+ LabelShape.Caption := lieLabelShape;
+ LabelFillOutline.Caption := lieLabelFillOutline;
+ LabelMaskTool.Caption := lieLabelMaskTool;
+ LabelOutline.Caption := lieLabelOutline;
+ LabelFill.Caption := lieLabelFill;
+ LabelPaper.Caption := lieLabelPaper;
+ LabelSize.Caption := lieLabelSize;
+ LabelRoundness.Caption := lieLabelRoundness;
+ LabelDensity.Caption := lieLabelDensity;
+ LabelTolerance.Caption := lieLabelTolerance;
//Hints for Tools
- ToolSpray.Hint:=lieHintToolSpray;
- ToolFloodFill.Hint:=lieHintToolFloodFill;
- ToolEraser.Hint:=lieHintToolEraser;
- ToolPen.Hint:=lieHintToolPen;
- ToolColorPick.Hint:=lieHintToolColorPick;
- ToolMask.Hint:=lieHintToolMask;
- ToolLine.Hint:=lieHintToolLine;
- ToolRectangle.Hint:=lieHintToolPolygon;
- ToolPolygon.Hint:=lieHintToolEllipse;
- ToolEllipse.Hint:=lieHintToolRectangle;
+ ToolSpray.Hint := lieHintToolSpray;
+ ToolFloodFill.Hint := lieHintToolFloodFill;
+ ToolEraser.Hint := lieHintToolEraser;
+ ToolPen.Hint := lieHintToolPen;
+ ToolColorPick.Hint := lieHintToolColorPick;
+ ToolMask.Hint := lieHintToolMask;
+ ToolLine.Hint := lieHintToolLine;
+ ToolRectangle.Hint := lieHintToolPolygon;
+ ToolPolygon.Hint := lieHintToolEllipse;
+ ToolEllipse.Hint := lieHintToolRectangle;
//File Dialogs
- ColorDialog.Title:=lieColorDialog;
- OpenPictureDialog.Title:=lieOpenPictureDialog;
- SavePictureDialog.Title:=lieSavePictureDialog;
- ExportResourceDialog.Title:=lieExportResourceDialog;
+ ColorDialog.Title := lieColorDialog;
+ OpenPictureDialog.Title := lieOpenPictureDialog;
+ SavePictureDialog.Title := lieSavePictureDialog;
+ ExportResourceDialog.Title := lieExportResourceDialog;
end;
procedure TMainForm.FormShow(Sender: TObject);
@@ -940,13 +982,15 @@ end;
procedure TMainForm.MaskInvertExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.InvertMask;
end;
procedure TMainForm.MaskRemoveExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.RemoveMask;
end;
@@ -962,13 +1006,14 @@ end;
procedure TMainForm.MenuItemClipPaperToMaskClick(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.ClipPaperToMask;
end;
procedure TMainForm.FileNewExecute(Sender: TObject);
begin
- if NewDialogForm.ShowModal = mrOK then
+ if NewDialogForm.ShowModal = mrOk then
begin
with NewDialogForm do
Pictures.New(UpDownWidth.Position, UpDownHeight.Position,
@@ -978,7 +1023,7 @@ end;
procedure TMainForm.FileOpenExecute(Sender: TObject);
var
- I: Integer;
+ I: integer;
begin
if OpenPictureDialog.Execute then
begin
@@ -997,7 +1042,7 @@ end;
procedure TMainForm.FileExportAsLRSExecute(Sender: TObject);
var
- Value: String;
+ Value: string;
begin
if ExportResourceDialog.Execute then
begin
@@ -1017,13 +1062,15 @@ end;
procedure TMainForm.FlipHorizontallyExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.FlipHorizontally;
end;
procedure TMainForm.FlipVerticallyExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.FlipVertically;
end;
@@ -1040,41 +1087,47 @@ end;
procedure TMainForm.ComboBoxZoomChange(Sender: TObject);
var
- V, E: Integer;
- S: String;
+ V, E: integer;
+ S: string;
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
if Pos('%', ComboBoxZoom.Text) > 0 then
S := Trim(Copy(ComboBoxZoom.Text, 1, Pos('%', ComboBoxZoom.Text) - 1))
else
S := Trim(ComboBoxZoom.Text);
-
+
Val(S, V, E);
- if V <= 0 then V := 100;
+ if V <= 0 then
+ V := 100;
ActivePictureEdit.Zoom := V / 100;
end;
procedure TMainForm.EditCopyExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Copy;
end;
procedure TMainForm.EditCutExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Cut;
end;
procedure TMainForm.EditDeleteExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Delete;
end;
procedure TMainForm.EditDensityChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.RandomDensity := UpDownDensity.Position / 100;
end;
@@ -1085,56 +1138,65 @@ end;
procedure TMainForm.EditRoundnessChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.RectangleRoundness := UpDownRoundness.Position;
end;
procedure TMainForm.EditSelectAllExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.SelectAll;
end;
procedure TMainForm.ColorsInvertExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Invert;
end;
procedure TMainForm.ComboBoxZoomEditingDone(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ComboBoxZoomChange(nil);
ComboBoxZoom.Text := Format('%d %%', [Round(ActivePictureEdit.Zoom * 100)]);
end;
procedure TMainForm.ColorsGrayscaleExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Grayscale;
end;
procedure TMainForm.ColorsDisableExecute(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Disable;
end;
procedure TMainForm.checkFuzzyChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Fuzzy := checkFuzzy.Checked;
end;
procedure TMainForm.EditSizeChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.Size := UpDownSize.Position;
end;
procedure TMainForm.EditToleranceChange(Sender: TObject);
begin
- if not Pictures.CanEdit then Exit;
+ if not Pictures.CanEdit then
+ Exit;
ActivePictureEdit.FloodFillTolerance := UpDownTolerance.Position / 100;
end;
@@ -1145,6 +1207,3 @@ initialization
end.
-
-
-
diff --git a/applications/lazimageeditor/rgbdrawutils.pas b/applications/lazimageeditor/rgbdrawutils.pas
index 89f664a79..d332ac24f 100644
--- a/applications/lazimageeditor/rgbdrawutils.pas
+++ b/applications/lazimageeditor/rgbdrawutils.pas
@@ -1,4 +1,4 @@
-unit rgbdrawutils;
+unit RGBDrawUtils;
{$mode objfpc}{$H+}
@@ -31,7 +31,8 @@ type
public
constructor Create; override;
destructor Destroy; override;
- procedure ApplyScanLine;
+ procedure SetScanLineValue;
+ procedure Assign(Source: TPersistent); override;
procedure Clear; virtual;
procedure ClearWhite; virtual;
procedure Invert; virtual;
@@ -49,6 +50,46 @@ type
implementation
+procedure LazBMPRotate90(const aBitmap: TCustomRGBBitmapCore; IsTurnRight: boolean);
+var
+ i, j: integer;
+ rowIn, rowOut: PRGBTripleArray;
+ Bmp: TCustomRGBBitmapCore;
+ Width, Height: integer;
+ IntfImg1, IntfImg2: TLazIntfImage;
+ ImgHandle, ImgMaskHandle: HBitmap;
+begin
+ Bmp := TCustomRGBBitmapCore.Create;
+ Bmp.Width := aBitmap.Height;
+ Bmp.Height := aBitmap.Width;
+ Bmp.PixelFormat := pf24bit;
+ IntfImg1 := TLazIntfImage.Create(0, 0);
+ IntfImg1.LoadFromBitmap(Bmp.Handle, Bmp.MaskHandle);
+ IntfImg2 := TLazIntfImage.Create(0, 0);
+ IntfImg2.LoadFromBitmap(aBitmap.Handle, aBitmap.MaskHandle);
+ Width := aBitmap.Width - 1;
+ Height := aBitmap.Height - 1;
+ for j := 0 to Height do
+ begin
+ rowIn := IntfImg2.GetDataLineStart(j);
+ for i := 0 to Width do
+ begin
+ rowOut := IntfImg1.GetDataLineStart(i);
+ if IsTurnRight then
+ rowOut^[Height - j] := rowIn^[i]
+ else
+ rowOut^[j] := rowIn^[Width - i];
+ end;
+ end;
+ IntfImg1.CreateBitmaps(ImgHandle, ImgMaskHandle, False);
+ Bmp.Handle := ImgHandle;
+ Bmp.MaskHandle := ImgMaskHandle;
+ IntfImg1.Free;
+ IntfImg2.Free;
+ aBitmap.Assign(Bmp);
+ Bmp.Free;
+end;
+
procedure BMPRotate90(const Bitmap: TCustomRGBBitmapCore);
var
i, j: integer;
@@ -68,12 +109,12 @@ begin
for i := 0 to Width do
begin
rowOut := Bmp.ScanLine[i];
- // Inc(rowOut, Height - j);
- rowOut^[i * (Height - j)] := rowIn^[i];
- // Inc(rowIn);
+ // Inc(rowOut, Height - j);
+ rowOut^[j] := rowIn^[i];
+ // Inc(rowIn);
end;
end;
- Bmp.ApplyScanLine;
+ Bmp.SetScanLineValue;
Bitmap.Assign(Bmp);
end;
@@ -101,7 +142,7 @@ begin
Inc(rowIn);
end;
end;
- Bmp.ApplyScanLine;
+ Bmp.SetScanLineValue;
Bitmap.Assign(Bmp);
end;
@@ -129,7 +170,7 @@ begin
Inc(rowIn);
end;
end;
- Bmp.ApplyScanLine;
+ Bmp.SetScanLineValue;
Bitmap.Assign(Bmp);
end;
@@ -252,7 +293,7 @@ begin
end;
end;
end;
- Result.ApplyScanLine;
+ Result.SetScanLineValue;
end;
procedure DrawSamePixel(ABitmap: TCustomRGBBitmapCore; Value: integer);
@@ -267,13 +308,14 @@ begin
LScan := ABitmap.Scanline[i];
for j := 0 to ABitmap.Width - 1 do
begin
- LNew.rgbtBlue := Value; //LNew.rgbtBlue - Value;
- LNew.rgbtGreen := Value; //LNew.rgbtGreen - Value;
- LNew.rgbtRed := Value; //LNew.rgbtRed - Value;
- LScan^[j] := LNew;
+ LNew := LScan^[j];
+ LScan^[j].rgbtBlue := LNew.rgbtBlue;
+ LScan^[j].rgbtGreen := LNew.rgbtGreen;
+ LScan^[j].rgbtRed := LNew.rgbtRed;
+ //LScan^[j] := LNew;
end;
end;
- ABitmap.ApplyScanLine;
+ ABitmap.SetScanLineValue;
end;
constructor TCustomRGBBitmapCore.Create;
@@ -297,7 +339,7 @@ begin
Result := FIntfImg.GetDataLineStart(Row);
end;
-procedure TCustomRGBBitmapCore.ApplyScanLine;
+procedure TCustomRGBBitmapCore.SetScanLineValue;
var
TmpBmp: TBitmap;
ImgHandle, ImgMaskHandle: HBitmap;
@@ -308,8 +350,14 @@ begin
TmpBmp.Handle := ImgHandle;
TmpBmp.MaskHandle := ImgMaskHandle;
Empty;
- Canvas.Draw(0, 0, TmpBmp);
+ //Canvas.Draw(0, 0, TmpBmp);
+ Assign(TmpBmp);
TmpBmp.Free;
+end;
+
+procedure TCustomRGBBitmapCore.Assign(Source: TPersistent);
+begin
+ inherited;
FIntfImg.LoadFromBitmap(Handle, MaskHandle);
end;
@@ -381,19 +429,46 @@ begin
end;
procedure TCustomRGBBitmapCore.Rotate90;
+var
+ tmp: TCustomRGBBitmapCore;
begin
- //DrawSamePixel(Self, 240);
- BMPRotate90(Self);
+ tmp := TCustomRGBBitmapCore.Create;
+ tmp.Width := Width;
+ tmp.Height := Height;
+ tmp.Canvas.Draw(0, 0, Self);
+ LazBMPRotate90(tmp, True);
+ Self.Width := tmp.Width;
+ Self.Height := tmp.Height;
+ Canvas.Draw(0, 0, tmp);
end;
procedure TCustomRGBBitmapCore.Rotate180;
+var
+ tmp: TCustomRGBBitmapCore;
begin
- RotateBitmap(Self, 180, clWhite);
+ tmp := TCustomRGBBitmapCore.Create;
+ tmp.Width := Width;
+ tmp.Height := Height;
+ tmp.Canvas.Draw(0, 0, Self);
+ LazBMPRotate90(tmp, True);
+ LazBMPRotate90(tmp, True);
+ Self.Width := tmp.Width;
+ Self.Height := tmp.Height;
+ Canvas.Draw(0, 0, tmp);
end;
procedure TCustomRGBBitmapCore.Rotate270;
+var
+ tmp: TCustomRGBBitmapCore;
begin
- RotateBitmap(Self, 270, clWhite);
+ tmp := TCustomRGBBitmapCore.Create;
+ tmp.Width := Width;
+ tmp.Height := Height;
+ tmp.Canvas.Draw(0, 0, Self);
+ LazBMPRotate90(tmp, False);
+ Self.Width := tmp.Width;
+ Self.Height := tmp.Height;
+ Canvas.Draw(0, 0, tmp);
end;
procedure TCustomRGBBitmapCore.FillEllipse(X1, Y1, X2, Y2: integer);