Now copy, paste, delete work

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1533 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
yangjixian
2011-03-18 12:22:13 +00:00
parent d6b917de4a
commit e03dddf2b2
10 changed files with 1785 additions and 1637 deletions

View File

@ -121,9 +121,9 @@ type
procedure Grayscale; override; procedure Grayscale; override;
procedure Disable; virtual; procedure Disable; virtual;
procedure CutToClipboard; virtual; procedure CutToClipboard; override;
procedure CopyToClipboard; virtual; procedure CopyToClipboard; override;
procedure Delete; virtual; procedure Delete; override;
procedure FlipHorz; override; procedure FlipHorz; override;
procedure FlipVert; override; procedure FlipVert; override;
@ -339,7 +339,7 @@ begin
end; end;
procedure TRGB32Bitmap.CopyToClipboard; procedure TRGB32Bitmap.CopyToClipboard;
var {var
PixmapStream, BitmapStream: TMemoryStream; PixmapStream, BitmapStream: TMemoryStream;
PixmapWriter, BitmapWriter: TFPCustomImageWriter; PixmapWriter, BitmapWriter: TFPCustomImageWriter;
Image: TLazIntfImage; Image: TLazIntfImage;
@ -371,10 +371,15 @@ begin
BitmapWriter.Free; BitmapWriter.Free;
end; end;
end; end;
}
begin
inherited;
end;
procedure TRGB32Bitmap.Delete; procedure TRGB32Bitmap.Delete;
begin begin
Fill(PaperColor); //Fill(PaperColor);
inherited;
end; end;
procedure TRGB32Bitmap.FlipHorz; procedure TRGB32Bitmap.FlipHorz;

View File

@ -41,15 +41,15 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item3> </Item3>
</RequiredPackages> </RequiredPackages>
<Units Count="32"> <Units Count="33">
<Unit0> <Unit0>
<Filename Value="lazimageeditor.pas"/> <Filename Value="lazimageeditor.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="lazimageeditor"/> <UnitName Value="lazimageeditor"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="3"/>
<CursorPos X="103" Y="12"/> <CursorPos X="102" Y="16"/>
<UsageCount Value="54"/> <UsageCount Value="55"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
@ -60,20 +60,21 @@
<UnitName Value="Main"/> <UnitName Value="Main"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="334"/> <TopLine Value="1129"/>
<CursorPos X="32" Y="344"/> <CursorPos X="14" Y="1141"/>
<UsageCount Value="54"/> <UsageCount Value="55"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="picturectrls.pas"/> <Filename Value="picturectrls.pas"/>
<UnitName Value="PictureCtrls"/> <UnitName Value="PictureCtrls"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="915"/> <TopLine Value="1089"/>
<CursorPos X="21" Y="934"/> <CursorPos X="7" Y="1102"/>
<UsageCount Value="23"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -105,9 +106,9 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="NewDialog"/> <UnitName Value="NewDialog"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="49"/> <TopLine Value="46"/>
<CursorPos X="3" Y="66"/> <CursorPos X="31" Y="55"/>
<UsageCount Value="9"/> <UsageCount Value="10"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="resizedialog.pas"/> <Filename Value="resizedialog.pas"/>
@ -178,9 +179,9 @@
<UnitName Value="PictureManager"/> <UnitName Value="PictureManager"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="24"/> <TopLine Value="304"/>
<CursorPos X="3" Y="40"/> <CursorPos X="36" Y="324"/>
<UsageCount Value="24"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -242,12 +243,10 @@
<Unit21> <Unit21>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="bmprgbtypes.pas"/>
<UnitName Value="BmpRGBTypes"/> <UnitName Value="BmpRGBTypes"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="247"/> <TopLine Value="259"/>
<CursorPos X="20" Y="268"/> <CursorPos X="20" Y="268"/>
<UsageCount Value="24"/> <UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit21> </Unit21>
<Unit22> <Unit22>
<Filename Value="T:\fpclaz\laz\lcl\include\winapih.inc"/> <Filename Value="T:\fpclaz\laz\lcl\include\winapih.inc"/>
@ -275,11 +274,11 @@
<Unit25> <Unit25>
<Filename Value="bmprgbutils.pas"/> <Filename Value="bmprgbutils.pas"/>
<UnitName Value="BmpRGBUtils"/> <UnitName Value="BmpRGBUtils"/>
<EditorIndex Value="6"/> <EditorIndex Value="5"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="37"/> <TopLine Value="34"/>
<CursorPos X="72" Y="5"/> <CursorPos X="72" Y="5"/>
<UsageCount Value="19"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit25> </Unit25>
<Unit26> <Unit26>
@ -301,21 +300,21 @@
<Unit28> <Unit28>
<Filename Value="bmprgbgraph.pas"/> <Filename Value="bmprgbgraph.pas"/>
<UnitName Value="BmpRGBGraph"/> <UnitName Value="BmpRGBGraph"/>
<EditorIndex Value="7"/> <EditorIndex Value="6"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="141"/> <TopLine Value="114"/>
<CursorPos X="47" Y="149"/> <CursorPos X="38" Y="385"/>
<UsageCount Value="15"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="rgbdrawutils.pas"/>
<UnitName Value="RGBDrawUtils"/> <UnitName Value="RGBDrawUtils"/>
<EditorIndex Value="5"/> <EditorIndex Value="4"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="414"/> <TopLine Value="494"/>
<CursorPos X="1" Y="422"/> <CursorPos X="11" Y="506"/>
<UsageCount Value="14"/> <UsageCount Value="15"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
@ -328,136 +327,147 @@
</Unit30> </Unit30>
<Unit31> <Unit31>
<Filename Value="picturedialog.pas"/> <Filename Value="picturedialog.pas"/>
<ComponentName Value="PictureDialogForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="PictureDialog"/> <UnitName Value="PictureDialog"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="71"/> <TopLine Value="71"/>
<CursorPos X="40" Y="85"/> <CursorPos X="43" Y="86"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit31> </Unit31>
<Unit32>
<Filename Value="T:\fpclaz\laz\lcl\forms.pp"/>
<UnitName Value="Forms"/>
<WindowIndex Value="0"/>
<TopLine Value="597"/>
<CursorPos X="14" Y="607"/>
<UsageCount Value="10"/>
</Unit32>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="392" Column="25" TopLine="386"/> <Caret Line="653" Column="26" TopLine="632"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="rgbdrawutils.pas"/>
<Caret Line="61" Column="23" TopLine="49"/> <Caret Line="507" Column="10" TopLine="488"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1159" Column="94" TopLine="1123"/> <Caret Line="1198" Column="97" TopLine="1191"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1160" Column="94" TopLine="1135"/> <Caret Line="14" Column="94" TopLine="10"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1159" Column="94" TopLine="1134"/> <Caret Line="35" Column="34" TopLine="14"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="444" Column="24" TopLine="422"/> <Caret Line="72" Column="18" TopLine="51"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="428" Column="33" TopLine="414"/> <Caret Line="73" Column="18" TopLine="52"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="639" Column="1" TopLine="614"/> <Caret Line="120" Column="19" TopLine="99"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="432" Column="12" TopLine="412"/> <Caret Line="121" Column="19" TopLine="100"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="428" Column="79" TopLine="415"/> <Caret Line="241" Column="29" TopLine="220"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1140" Column="98" TopLine="1134"/> <Caret Line="242" Column="29" TopLine="221"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="4" Column="47" TopLine="1"/> <Caret Line="278" Column="26" TopLine="257"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="bmprgbgraph.pas"/> <Filename Value="main.pas"/>
<Caret Line="4" Column="80" TopLine="1"/> <Caret Line="333" Column="35" TopLine="312"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="40" Column="36" TopLine="29"/> <Caret Line="337" Column="9" TopLine="316"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="560" Column="18" TopLine="547"/> <Caret Line="340" Column="35" TopLine="319"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="415" Column="35" TopLine="406"/> <Caret Line="344" Column="9" TopLine="323"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="6" Column="95" TopLine="3"/> <Caret Line="396" Column="5" TopLine="372"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="2" Column="60" TopLine="1"/> <Caret Line="629" Column="32" TopLine="608"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="rgbdrawutils.pas"/> <Filename Value="main.pas"/>
<Caret Line="20" Column="36" TopLine="18"/> <Caret Line="771" Column="16" TopLine="750"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="main.pas"/>
<Caret Line="25" Column="100" TopLine="22"/> <Caret Line="772" Column="16" TopLine="751"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="bmprgbtypes.pas"/> <Filename Value="main.pas"/>
<Caret Line="201" Column="20" TopLine="189"/> <Caret Line="861" Column="47" TopLine="840"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="bmprgbgraph.pas"/> <Filename Value="main.pas"/>
<Caret Line="119" Column="55" TopLine="112"/> <Caret Line="897" Column="49" TopLine="876"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="bmprgbgraph.pas"/> <Filename Value="main.pas"/>
<Caret Line="121" Column="24" TopLine="112"/> <Caret Line="898" Column="44" TopLine="877"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="bmprgbgraph.pas"/> <Filename Value="main.pas"/>
<Caret Line="325" Column="29" TopLine="313"/> <Caret Line="927" Column="50" TopLine="906"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1172" Column="30" TopLine="1168"/> <Caret Line="928" Column="45" TopLine="846"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1188" Column="57" TopLine="1149"/> <Caret Line="1141" Column="14" TopLine="1129"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pas"/> <Filename Value="picturemanager.pas"/>
<Caret Line="337" Column="37" TopLine="333"/> <Caret Line="89" Column="65" TopLine="78"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="main.pas"/> <Filename Value="picturemanager.pas"/>
<Caret Line="296" Column="35" TopLine="280"/> <Caret Line="94" Column="20" TopLine="78"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="main.pas"/> <Filename Value="picturemanager.pas"/>
<Caret Line="344" Column="32" TopLine="334"/> <Caret Line="324" Column="36" TopLine="304"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="picturedialog.pas"/> <Filename Value="picturectrls.pas"/>
<Caret Line="50" Column="25" TopLine="34"/> <Caret Line="191" Column="20" TopLine="175"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>

View File

@ -22,7 +22,9 @@ begin
// show new picture dialog // show new picture dialog
MainForm.Show; MainForm.Show;
MainForm.FileNewExecute(nil); //MainForm.FileNewExecute(nil);
MainForm.FileNewOnStart;
Application.Run; Application.Run;
end. end.

View File

@ -252,29 +252,41 @@
end end
object ToolClose: TToolButton object ToolClose: TToolButton
Left = 109 Left = 109
Hint = 'Close'
Top = 0 Top = 0
Action = FileClose Caption = '&Close'
ImageIndex = 3
OnClick = FileCloseExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolSave: TToolButton object ToolSave: TToolButton
Left = 73 Left = 73
Hint = 'Save'
Top = 0 Top = 0
Action = FileSave Caption = '&Save'
ImageIndex = 2
OnClick = FileSaveExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolOpen: TToolButton object ToolOpen: TToolButton
Left = 37 Left = 37
Hint = 'Open'
Top = 0 Top = 0
Action = FileOpen Caption = '&Open...'
ImageIndex = 1
OnClick = FileOpenExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolNew: TToolButton object ToolNew: TToolButton
Left = 1 Left = 1
Hint = 'New'
Top = 0 Top = 0
Action = FileNew Caption = '&New...'
ImageIndex = 0
OnClick = FileNewExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
@ -287,22 +299,34 @@
end end
object ToolCut: TToolButton object ToolCut: TToolButton
Left = 233 Left = 233
Hint = 'Cut'
Top = 0 Top = 0
Action = EditCut Caption = 'Cu&t'
Enabled = False
ImageIndex = 6
OnClick = EditCutExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolButton8: TToolButton object ToolButton8: TToolButton
Left = 269 Left = 269
Hint = 'Copy'
Top = 0 Top = 0
Action = EditCopy Caption = '&Copy'
Enabled = False
ImageIndex = 7
OnClick = EditCopyExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolButton9: TToolButton object ToolButton9: TToolButton
Left = 305 Left = 305
Hint = 'Paste'
Top = 0 Top = 0
Action = EditPaste Caption = '&Paste'
Enabled = False
ImageIndex = 8
OnClick = EditPasteExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
@ -315,15 +339,22 @@
end end
object ToolButton11: TToolButton object ToolButton11: TToolButton
Left = 341 Left = 341
Hint = 'Delete'
Top = 0 Top = 0
Action = EditDelete Caption = '&Delete'
Enabled = False
ImageIndex = 9
OnClick = EditDeleteExecute
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
object ToolUndo: TToolButton object ToolUndo: TToolButton
Left = 153 Left = 153
Hint = 'Undo'
Top = 0 Top = 0
Action = EditUndo Caption = '&Undo'
Enabled = False
ImageIndex = 4
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
@ -336,8 +367,11 @@
end end
object ToolRedo: TToolButton object ToolRedo: TToolButton
Left = 189 Left = 189
Hint = 'Redo'
Top = 0 Top = 0
Action = EditRedo Caption = '&Redo'
Enabled = False
ImageIndex = 5
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
end end
@ -1247,9 +1281,9 @@
TabOrder = 5 TabOrder = 5
object checkFuzzy: TCheckBox object checkFuzzy: TCheckBox
Left = 4 Left = 4
Height = 19 Height = 23
Top = 9 Top = 9
Width = 20 Width = 24
OnChange = checkFuzzyChange OnChange = checkFuzzyChange
TabOrder = 0 TabOrder = 0
end end
@ -1272,7 +1306,7 @@
object MenuItemFile: TMenuItem object MenuItemFile: TMenuItem
Caption = '&File' Caption = '&File'
object MenuItemNew: TMenuItem object MenuItemNew: TMenuItem
Action = FileNew Caption = '&New...'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1327,10 +1361,13 @@
09F4080808F5070707F6070707F7060606F8050505F9040404FA050505FC0505 09F4080808F5070707F6070707F7060606F8050505F9040404FA050505FC0505
058CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 058CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'New'
ImageIndex = 0
ShortCut = 16462
OnClick = FileNewExecute OnClick = FileNewExecute
end end
object MenuItemOpen: TMenuItem object MenuItemOpen: TMenuItem
Action = FileOpen Caption = '&Open...'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1385,10 +1422,13 @@
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Open'
ImageIndex = 1
ShortCut = 16463
OnClick = FileOpenExecute OnClick = FileOpenExecute
end end
object MenuItemSave: TMenuItem object MenuItemSave: TMenuItem
Action = FileSave Caption = '&Save'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
20000000000040060000640000006400000000000000000000000700009F0A00 20000000000040060000640000006400000000000000000000000700009F0A00
@ -1443,18 +1483,22 @@
26E62C2626E62C2626E62C2625E62B2625E62B2524E62B2524E62A2423E62923 26E62C2626E62C2626E62C2625E62B2625E62B2524E62B2524E62A2423E62923
23E5292322E5221C1BE4090000D9080000CA0000001DFFFFFF00 23E5292322E5221C1BE4090000D9080000CA0000001DFFFFFF00
} }
Hint = 'Save'
ImageIndex = 2
ShortCut = 16467
OnClick = FileSaveExecute OnClick = FileSaveExecute
end end
object MenuItemSaveAs: TMenuItem object MenuItemSaveAs: TMenuItem
Action = FileSaveAs Caption = 'Save &As...'
Hint = 'Save As'
OnClick = FileSaveAsExecute OnClick = FileSaveAsExecute
end end
object MenuItemExportAsLRS: TMenuItem object MenuItemExportAsLRS: TMenuItem
Action = FileExportAsLRS Caption = '&Export As *.lrs...'
OnClick = FileExportAsLRSExecute OnClick = FileExportAsLRSExecute
end end
object MenuItemClose: TMenuItem object MenuItemClose: TMenuItem
Action = FileClose Caption = '&Close'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1509,6 +1553,9 @@
0E7800000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 0E7800000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
000500020F8D0204139D0000002BFFFFFF00FFFFFF00FFFFFF00 000500020F8D0204139D0000002BFFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Close'
ImageIndex = 3
ShortCut = 16499
OnClick = FileCloseExecute OnClick = FileCloseExecute
end end
object MenuItem2: TMenuItem object MenuItem2: TMenuItem
@ -1523,7 +1570,8 @@
object MenuItemEdit: TMenuItem object MenuItemEdit: TMenuItem
Caption = '&Edit' Caption = '&Edit'
object MenuItemUndo: TMenuItem object MenuItemUndo: TMenuItem
Action = EditUndo Caption = '&Undo'
Enabled = False
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1578,9 +1626,13 @@
332D353935BA3333330FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 332D353935BA3333330FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Undo'
ImageIndex = 4
ShortCut = 16474
end end
object MenuItemRedo: TMenuItem object MenuItemRedo: TMenuItem
Action = EditRedo Caption = '&Redo'
Enabled = False
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1635,12 +1687,15 @@
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00333333143439 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00333333143439
33BA33333328FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 33BA33333328FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Redo'
ImageIndex = 5
ShortCut = 24666
end end
object MenuItem1: TMenuItem object MenuItem1: TMenuItem
Caption = '-' Caption = '-'
end end
object MenuItemCut: TMenuItem object MenuItemCut: TMenuItem
Action = EditCut Caption = 'Cu&t'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1695,10 +1750,13 @@
00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000FF000000FF000000FFFFFFFF00FFFFFF00FFFFFF00 FF00000000FF000000FF000000FFFFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Cut'
ImageIndex = 6
ShortCut = 16472
OnClick = EditCutExecute OnClick = EditCutExecute
end end
object MenuItemCopy: TMenuItem object MenuItemCopy: TMenuItem
Action = EditCopy Caption = '&Copy'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1753,10 +1811,13 @@
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF000000FF000000FFFFFFFF00FFFFFF00 00FF000000FF000000FF000000FF000000FFFFFFFF00FFFFFF00
} }
Hint = 'Copy'
ImageIndex = 7
ShortCut = 16451
OnClick = EditCopyExecute OnClick = EditCopyExecute
end end
object MenuItemPaste: TMenuItem object MenuItemPaste: TMenuItem
Action = EditPaste Caption = '&Paste'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1811,10 +1872,13 @@
FF00000000FF000000FF000000FF000000FF3B3B3BFF373737FF252525FFFFFF FF00000000FF000000FF000000FF000000FF3B3B3BFF373737FF252525FFFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Paste'
ImageIndex = 8
ShortCut = 16470
OnClick = EditPasteExecute OnClick = EditPasteExecute
end end
object MenuItemDelete: TMenuItem object MenuItemDelete: TMenuItem
Action = EditDelete Caption = '&Delete'
Bitmap.Data = { Bitmap.Data = {
76060000424D7606000000000000360000002800000014000000140000000100 76060000424D7606000000000000360000002800000014000000140000000100
2000000000004006000064000000640000000000000000000000FFFFFF00FFFF 2000000000004006000064000000640000000000000000000000FFFFFF00FFFF
@ -1869,25 +1933,30 @@
137800000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 137800000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
00050002108D0203169D0000002BFFFFFF00FFFFFF00FFFFFF00 00050002108D0203169D0000002BFFFFFF00FFFFFF00FFFFFF00
} }
Hint = 'Delete'
ImageIndex = 9
ShortCut = 46
OnClick = EditDeleteExecute OnClick = EditDeleteExecute
end end
object MenuItemSelectAll: TMenuItem object MenuItemSelectAll: TMenuItem
Action = EditSelectAll Caption = 'Select &All'
Hint = 'Select All'
ShortCut = 16449
OnClick = EditSelectAllExecute OnClick = EditSelectAllExecute
end end
end end
object MenuItemPicture: TMenuItem object MenuItemPicture: TMenuItem
Caption = '&Picture' Caption = '&Picture'
object MenuItemResize: TMenuItem object MenuItemResize: TMenuItem
Action = PictureResize Caption = 'Resize...'
OnClick = MenuItemResizeClick OnClick = MenuItemResizeClick
end end
object MenuItemResizePaper: TMenuItem object MenuItemResizePaper: TMenuItem
Action = PictureResizePaper Caption = 'Resize Paper...'
OnClick = MenuItemResizePaperClick OnClick = MenuItemResizePaperClick
end end
object MenuItemClipPaperToMask: TMenuItem object MenuItemClipPaperToMask: TMenuItem
Action = PictureClipPaperToMask Caption = 'Clip Paper To Mask'
end end
object MenuItem7: TMenuItem object MenuItem7: TMenuItem
Caption = '-' Caption = '-'
@ -1895,30 +1964,31 @@
object MenuItemFlip: TMenuItem object MenuItemFlip: TMenuItem
Caption = 'Flip' Caption = 'Flip'
object MenuItemHorizontally: TMenuItem object MenuItemHorizontally: TMenuItem
Action = FlipHorizontally Caption = 'Horizontally'
OnClick = FlipHorizontallyExecute OnClick = FlipHorizontallyExecute
end end
object MenuItemVertically: TMenuItem object MenuItemVertically: TMenuItem
Action = FlipVertically Caption = 'Vertically'
OnClick = FlipVerticallyExecute OnClick = FlipVerticallyExecute
end end
end end
object MenuItemRotate: TMenuItem object MenuItemRotate: TMenuItem
Caption = 'Rotate' Caption = 'Rotate'
object MenuItem90: TMenuItem object MenuItem90: TMenuItem
Action = Rotate90 Caption = '90Clockwise'
OnClick = Rotate90Execute OnClick = Rotate90Execute
end end
object MenuItem180: TMenuItem object MenuItem180: TMenuItem
Action = Rotate180 Caption = '180Clockwise'
OnClick = Rotate180Execute OnClick = Rotate180Execute
end end
object MenuItem270: TMenuItem object MenuItem270: TMenuItem
Action = Rotate270 Caption = '270Clockwise'
OnClick = Rotate270Execute OnClick = Rotate270Execute
end end
object MenuItemCustom: TMenuItem object MenuItemCustom: TMenuItem
Action = RotateCustom Caption = 'Custom...'
Enabled = False
end end
end end
object MenuItem4: TMenuItem object MenuItem4: TMenuItem
@ -1927,15 +1997,15 @@
object MenuItemColors: TMenuItem object MenuItemColors: TMenuItem
Caption = 'Colors' Caption = 'Colors'
object MenuItemInvert: TMenuItem object MenuItemInvert: TMenuItem
Action = ColorsInvert Caption = 'Invert'
OnClick = ColorsInvertExecute OnClick = ColorsInvertExecute
end end
object MenuItemGrayscale: TMenuItem object MenuItemGrayscale: TMenuItem
Action = ColorsGrayscale Caption = 'Grayscale'
OnClick = ColorsGrayscaleExecute OnClick = ColorsGrayscaleExecute
end end
object MenuItemDisable: TMenuItem object MenuItemDisable: TMenuItem
Action = ColorsDisable Caption = 'Disable'
OnClick = ColorsDisableExecute OnClick = ColorsDisableExecute
end end
end end
@ -1943,31 +2013,27 @@
object MenuItemMask: TMenuItem object MenuItemMask: TMenuItem
Caption = 'Mask' Caption = 'Mask'
object MenuItemMaskInvert: TMenuItem object MenuItemMaskInvert: TMenuItem
Action = MaskInvert Caption = 'Invert'
OnClick = MaskInvertExecute OnClick = MaskInvertExecute
end end
object MenuItemMaskRemove: TMenuItem object MenuItemMaskRemove: TMenuItem
Action = MaskRemove Caption = 'Remove'
OnClick = MaskRemoveExecute OnClick = MaskRemoveExecute
end end
end end
object MenuItemView: TMenuItem object MenuItemView: TMenuItem
Caption = 'View' Caption = 'View'
object MenuItemShowGrid: TMenuItem object MenuItemShowGrid: TMenuItem
Action = ViewShowGrid
AutoCheck = True AutoCheck = True
Caption = 'Show Grid'
Checked = True
OnClick = ViewShowGridExecute OnClick = ViewShowGridExecute
end end
object MenuItemShowMask: TMenuItem object MenuItemShowMask: TMenuItem
Action = ViewShowMask
AutoCheck = True AutoCheck = True
OnClick = ViewShowMaskExecute Caption = 'Show Mask'
end
object MenuItemShowPreview: TMenuItem
AutoCheck = True
Caption = 'Show Preview'
Checked = True Checked = True
OnClick = ViewShowPreviewExecute OnClick = ViewShowMaskExecute
end end
end end
object MenuItemHelp: TMenuItem object MenuItemHelp: TMenuItem
@ -1984,195 +2050,6 @@
end end
end end
end end
object ActionList: TActionList
Images = ImageListActions
left = 114
top = 90
object FileNew: TAction
Category = 'File'
Caption = '&New...'
Hint = 'New'
ImageIndex = 0
OnExecute = FileNewExecute
ShortCut = 16462
end
object FileOpen: TAction
Category = 'File'
Caption = '&Open...'
Hint = 'Open'
ImageIndex = 1
OnExecute = FileOpenExecute
ShortCut = 16463
end
object FileSave: TAction
Category = 'File'
Caption = '&Save'
Hint = 'Save'
ImageIndex = 2
OnExecute = FileSaveExecute
ShortCut = 16467
end
object FileSaveAs: TAction
Category = 'File'
Caption = 'Save &As...'
Hint = 'Save As'
OnExecute = FileSaveAsExecute
end
object FileClose: TAction
Category = 'File'
Caption = '&Close'
Hint = 'Close'
ImageIndex = 3
OnExecute = FileCloseExecute
ShortCut = 16499
end
object EditUndo: TEditUndo
Category = 'Edit'
Caption = '&Undo'
Enabled = False
Hint = 'Undo'
ImageIndex = 4
ShortCut = 16474
end
object EditRedo: TAction
Category = 'Edit'
Caption = '&Redo'
Enabled = False
Hint = 'Redo'
ImageIndex = 5
ShortCut = 24666
end
object EditCut: TEditCut
Category = 'Edit'
Caption = 'Cu&t'
Enabled = False
Hint = 'Cut'
ImageIndex = 6
OnExecute = EditCutExecute
ShortCut = 16472
end
object EditCopy: TEditCopy
Category = 'Edit'
Caption = '&Copy'
Enabled = False
Hint = 'Copy'
ImageIndex = 7
OnExecute = EditCopyExecute
ShortCut = 16451
end
object EditPaste: TEditPaste
Category = 'Edit'
Caption = '&Paste'
Enabled = False
Hint = 'Paste'
ImageIndex = 8
OnExecute = EditPasteExecute
ShortCut = 16470
end
object EditDelete: TEditDelete
Category = 'Edit'
Caption = '&Delete'
Enabled = False
Hint = 'Delete'
ImageIndex = 9
OnExecute = EditDeleteExecute
ShortCut = 46
end
object EditSelectAll: TEditSelectAll
Category = 'Edit'
Caption = 'Select &All'
Enabled = False
Hint = 'Select All'
OnExecute = EditSelectAllExecute
ShortCut = 16449
end
object PictureResize: TAction
Category = 'Picture'
Caption = 'Resize...'
end
object PictureResizePaper: TAction
Category = 'Picture'
Caption = 'Resize Paper...'
end
object FlipHorizontally: TAction
Category = 'PictureFlip'
Caption = 'Horizontally'
OnExecute = FlipHorizontallyExecute
end
object FlipVertically: TAction
Category = 'PictureFlip'
Caption = 'Vertically'
OnExecute = FlipVerticallyExecute
end
object Rotate90: TAction
Category = 'PictureRotate'
Caption = '90Clockwise'
OnExecute = Rotate90Execute
end
object Rotate180: TAction
Category = 'PictureRotate'
Caption = '180Clockwise'
OnExecute = Rotate180Execute
end
object Rotate270: TAction
Category = 'PictureRotate'
Caption = '270Clockwise'
OnExecute = Rotate270Execute
end
object RotateCustom: TAction
Category = 'PictureRotate'
Caption = 'Custom...'
Enabled = False
end
object ColorsInvert: TAction
Category = 'PictureColors'
Caption = 'Invert'
OnExecute = ColorsInvertExecute
end
object ColorsGrayscale: TAction
Category = 'PictureColors'
Caption = 'Grayscale'
OnExecute = ColorsGrayscaleExecute
end
object ColorsDisable: TAction
Category = 'PictureColors'
Caption = 'Disable'
OnExecute = ColorsDisableExecute
end
object FileExportAsLRS: TAction
Category = 'File'
Caption = '&Export As *.lrs...'
OnExecute = FileExportAsLRSExecute
end
object MaskRemove: TAction
Category = 'Mask'
Caption = 'Remove'
OnExecute = MaskRemoveExecute
end
object MaskInvert: TAction
Category = 'Mask'
Caption = 'Invert'
OnExecute = MaskInvertExecute
end
object PictureClipPaperToMask: TAction
Category = 'Picture'
Caption = 'Clip Paper To Mask'
end
object ViewShowGrid: TAction
Category = 'View'
AutoCheck = True
Caption = 'Show Grid'
Checked = True
OnExecute = ViewShowGridExecute
end
object ViewShowMask: TAction
Category = 'View'
AutoCheck = True
Caption = 'Show Mask'
Checked = True
OnExecute = ViewShowMaskExecute
end
end
object ImageListTools: TImageList object ImageListTools: TImageList
Height = 32 Height = 32
Width = 32 Width = 32
@ -4023,4 +3900,190 @@
left = 186 left = 186
top = 126 top = 126
end end
object ActionList: TActionList
Images = ImageListActions
left = 112
top = 88
object FileNew: TAction
Category = 'File'
Caption = '&New...'
Hint = 'New'
ImageIndex = 0
OnExecute = FileNewExecute
ShortCut = 16462
end
object FileOpen: TAction
Category = 'File'
Caption = '&Open...'
Hint = 'Open'
ImageIndex = 1
OnExecute = FileOpenExecute
ShortCut = 16463
end
object FileSave: TAction
Category = 'File'
Caption = '&Save'
Hint = 'Save'
ImageIndex = 2
OnExecute = FileSaveExecute
ShortCut = 16467
end
object FileSaveAs: TAction
Category = 'File'
Caption = 'Save &As...'
Hint = 'Save As'
OnExecute = FileSaveAsExecute
end
object FileClose: TAction
Category = 'File'
Caption = '&Close'
Hint = 'Close'
ImageIndex = 3
OnExecute = FileCloseExecute
ShortCut = 16499
end
object EditUndo: TEditUndo
Category = 'Edit'
Caption = '&Undo'
Checked = True
Enabled = False
Hint = 'Undo'
ImageIndex = 4
ShortCut = 16474
end
object EditRedo: TAction
Category = 'Edit'
Caption = '&Redo'
Checked = True
Enabled = False
Hint = 'Redo'
ImageIndex = 5
ShortCut = 24666
end
object EditCut: TEditCut
Category = 'Edit'
Caption = 'Cu&t'
Hint = 'Cut'
ImageIndex = 6
OnExecute = EditCutExecute
ShortCut = 16472
end
object EditCopy: TEditCopy
Category = 'Edit'
Caption = '&Copy'
Hint = 'Copy'
ImageIndex = 7
OnExecute = EditCopyExecute
ShortCut = 16451
end
object EditPaste: TEditPaste
Category = 'Edit'
Caption = '&Paste'
Hint = 'Paste'
ImageIndex = 8
OnExecute = EditPasteExecute
ShortCut = 16470
end
object EditDelete: TEditDelete
Category = 'Edit'
Caption = '&Delete'
Hint = 'Delete'
ImageIndex = 9
OnExecute = EditDeleteExecute
ShortCut = 46
end
object EditSelectAll: TEditSelectAll
Category = 'Edit'
Caption = 'Select &All'
Hint = 'Select All'
OnExecute = EditSelectAllExecute
ShortCut = 16449
end
object PictureResize: TAction
Category = 'Picture'
Caption = 'Resize...'
end
object PictureResizePaper: TAction
Category = 'Picture'
Caption = 'Resize Paper...'
end
object FlipHorizontally: TAction
Category = 'PictureFlip'
Caption = 'Horizontally'
OnExecute = FlipHorizontallyExecute
end
object FlipVertically: TAction
Category = 'PictureFlip'
Caption = 'Vertically'
OnExecute = FlipVerticallyExecute
end
object Rotate90: TAction
Category = 'PictureRotate'
Caption = '90Clockwise'
OnExecute = Rotate90Execute
end
object Rotate180: TAction
Category = 'PictureRotate'
Caption = '180Clockwise'
OnExecute = Rotate180Execute
end
object Rotate270: TAction
Category = 'PictureRotate'
Caption = '270Clockwise'
OnExecute = Rotate270Execute
end
object RotateCustom: TAction
Category = 'PictureRotate'
Caption = 'Custom...'
Enabled = False
end
object ColorsInvert: TAction
Category = 'PictureColors'
Caption = 'Invert'
OnExecute = ColorsInvertExecute
end
object ColorsGrayscale: TAction
Category = 'PictureColors'
Caption = 'Grayscale'
OnExecute = ColorsGrayscaleExecute
end
object ColorsDisable: TAction
Category = 'PictureColors'
Caption = 'Disable'
OnExecute = ColorsDisableExecute
end
object FileExportAsLRS: TAction
Category = 'File'
Caption = '&Export As *.lrs...'
OnExecute = FileExportAsLRSExecute
end
object MaskRemove: TAction
Category = 'Mask'
Caption = 'Remove'
OnExecute = MaskRemoveExecute
end
object MaskInvert: TAction
Category = 'Mask'
Caption = 'Invert'
OnExecute = MaskInvertExecute
end
object PictureClipPaperToMask: TAction
Category = 'Picture'
Caption = 'Clip Paper To Mask'
end
object ViewShowGrid: TAction
Category = 'View'
AutoCheck = True
Caption = 'Show Grid'
Checked = True
OnExecute = ViewShowGridExecute
end
object ViewShowMask: TAction
Category = 'View'
AutoCheck = True
Caption = 'Show Mask'
Checked = True
OnExecute = ViewShowMaskExecute
end
end
end end

File diff suppressed because it is too large Load Diff

View File

@ -40,21 +40,45 @@ type
{ TMainForm } { TMainForm }
TMainForm = class(TForm) TMainForm = class(TForm)
ActionList: TActionList;
checkFuzzy: TCheckBox; checkFuzzy: TCheckBox;
ColorsDisable: TAction;
ColorsGrayscale: TAction;
ColorsInvert: TAction;
EditCopy: TEditCopy;
EditCut: TEditCut;
EditDelete: TEditDelete;
EditPaste: TEditPaste;
EditRedo: TAction;
EditSelectAll: TEditSelectAll;
EditUndo: TEditUndo;
FileClose: TAction;
FileExportAsLRS: TAction;
FileNew: TAction;
FileOpen: TAction;
FileSave: TAction;
FileSaveAs: TAction;
FlipHorizontally: TAction;
FlipVertically: TAction;
LabelTolerance1: TLabel; LabelTolerance1: TLabel;
LabelTolerance2: TLabel; LabelTolerance2: TLabel;
MaskInvert: TAction;
MaskRemove: TAction;
Palette: TColorPalette; Palette: TColorPalette;
MenuItemShowGrid: TMenuItem; MenuItemShowGrid: TMenuItem;
MenuItemShowPreview: TMenuItem;
PanelTolerance1: TPanel; PanelTolerance1: TPanel;
PanelTolerance2: TPanel; PanelTolerance2: TPanel;
PictureClipPaperToMask: TAction;
PictureResize: TAction;
PictureResizePaper: TAction;
Rotate180: TAction;
Rotate270: TAction;
Rotate90: TAction;
RotateCustom: TAction;
spinFillAlpha: TSpinEdit; spinFillAlpha: TSpinEdit;
ViewShowMask: TAction;
ViewShowGrid: TAction;
MenuItemShowMask: TMenuItem; MenuItemShowMask: TMenuItem;
MenuItemView: TMenuItem; MenuItemView: TMenuItem;
MenuItemClipPaperToMask: TMenuItem; MenuItemClipPaperToMask: TMenuItem;
PictureClipPaperToMask: TAction;
Bevel2: TBevel; Bevel2: TBevel;
EditDensity: TEdit; EditDensity: TEdit;
EditRoundness: TEdit; EditRoundness: TEdit;
@ -66,15 +90,9 @@ type
LabelMaskTool: TLabel; LabelMaskTool: TLabel;
LabelSize: TLabel; LabelSize: TLabel;
LabelTolerance: TLabel; LabelTolerance: TLabel;
MaskInvert: TAction;
MaskRemove: TAction;
Bevel1: TBevel; Bevel1: TBevel;
EditSize1: TEdit; EditSize1: TEdit;
FileExportAsLRS: TAction;
ColorsDisable: TAction;
ColorDialog: TColorDialog; ColorDialog: TColorDialog;
ColorsGrayscale: TAction;
ColorsInvert: TAction;
ImageListActions: TImageList; ImageListActions: TImageList;
LabelFillOutline: TLabel; LabelFillOutline: TLabel;
LabelZoom: TLabel; LabelZoom: TLabel;
@ -115,28 +133,7 @@ type
PanelPaper: TPanel; PanelPaper: TPanel;
PanelColors: TPanel; PanelColors: TPanel;
PanelFillOutline: TPanel; PanelFillOutline: TPanel;
RotateCustom: TAction;
Rotate180: TAction;
Rotate90: TAction;
Rotate270: TAction;
FlipVertically: TAction;
FlipHorizontally: TAction;
PictureResizePaper: TAction;
PictureResize: TAction;
ComboBoxZoom: TComboBox; ComboBoxZoom: TComboBox;
EditCopy: TEditCopy;
EditCut: TEditCut;
EditDelete: TEditDelete;
EditPaste: TEditPaste;
EditRedo: TAction;
EditSelectAll: TEditSelectAll;
EditUndo: TEditUndo;
FileClose: TAction;
FileSave: TAction;
FileNew: TAction;
ActionList: TActionList;
FileOpen: TAction;
FileSaveAs: TAction;
MainMenu: TMainMenu; MainMenu: TMainMenu;
MenuItem1: TMenuItem; MenuItem1: TMenuItem;
MenuItem3: TMenuItem; MenuItem3: TMenuItem;
@ -208,6 +205,8 @@ type
UpDownSize: TUpDown; UpDownSize: TUpDown;
UpDownSize1: TUpDown; UpDownSize1: TUpDown;
UpDownTolerance: TUpDown; UpDownTolerance: TUpDown;
ViewShowGrid: TAction;
ViewShowMask: TAction;
procedure checkFuzzyChange(Sender: TObject); procedure checkFuzzyChange(Sender: TObject);
procedure ColorsDisableExecute(Sender: TObject); procedure ColorsDisableExecute(Sender: TObject);
procedure ColorsGrayscaleExecute(Sender: TObject); procedure ColorsGrayscaleExecute(Sender: TObject);
@ -292,6 +291,7 @@ type
procedure UpdatePictureToolsEnabled; procedure UpdatePictureToolsEnabled;
procedure UpdateAll; procedure UpdateAll;
public public
procedure FileNewOnStart;
property ActivePicture: TPictureBitmap read GetActivePicture; property ActivePicture: TPictureBitmap read GetActivePicture;
property ActivePicturePage: TPicturePage read GetActivePicturePage; property ActivePicturePage: TPicturePage read GetActivePicturePage;
property ActivePictureEdit: TPictureEdit read GetActivePictureEdit; property ActivePictureEdit: TPictureEdit read GetActivePictureEdit;
@ -1021,6 +1021,11 @@ begin
end; end;
end; end;
procedure TMainForm.FileNewOnStart;
begin
Pictures.New(640, 480, clTeal);
end;
procedure TMainForm.FileOpenExecute(Sender: TObject); procedure TMainForm.FileOpenExecute(Sender: TObject);
var var
I: integer; I: integer;
@ -1105,8 +1110,8 @@ end;
procedure TMainForm.EditCopyExecute(Sender: TObject); procedure TMainForm.EditCopyExecute(Sender: TObject);
begin begin
if not Pictures.CanEdit then //if not Pictures.CanEdit then
Exit; // Exit;
ActivePictureEdit.Copy; ActivePictureEdit.Copy;
end; end;
@ -1148,6 +1153,12 @@ begin
if not Pictures.CanEdit then if not Pictures.CanEdit then
Exit; Exit;
ActivePictureEdit.SelectAll; ActivePictureEdit.SelectAll;
MenuItemCopy.Enabled:=True;
MenuItemPaste.Enabled:=True;
MenuItemDelete.Enabled:=True;
MenuItemCopy.OnClick := @EditCopyExecute;
MenuItemPaste.OnClick := @EditPasteExecute;
MenuItemDelete.OnClick := @EditDeleteExecute;
end; end;
procedure TMainForm.ColorsInvertExecute(Sender: TObject); procedure TMainForm.ColorsInvertExecute(Sender: TObject);

View File

@ -58,6 +58,7 @@ var
NewDialogForm: TNewDialogForm; NewDialogForm: TNewDialogForm;
implementation implementation
uses IconStrConsts; uses IconStrConsts;
{ TNewDialogForm } { TNewDialogForm }

View File

@ -1099,7 +1099,8 @@ begin
if Picture = nil then Exit; if Picture = nil then Exit;
BeginDraw; BeginDraw;
try try
Assert(True, 'Implement Paste'); //Assert(True, 'Implement Paste');
Picture.PasteFromClipboard;
finally finally
EndDraw; EndDraw;
end; end;

View File

@ -320,7 +320,8 @@ end;
procedure TPictureManager.Paste; procedure TPictureManager.Paste;
begin begin
if CanEdit then ActivePicturePage.PictureEdit.Paste; //if CanEdit then
ActivePicturePage.PictureEdit.Paste;
end; end;
function TPictureManager.CanEdit: Boolean; function TPictureManager.CanEdit: Boolean;

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, LCLType, LCLIntf, LMessages, LCLProc, Controls, Graphics, Classes, SysUtils, LCLType, LCLIntf, LMessages, LCLProc, Controls, Graphics,
Forms, Types, IntfGraphics, FPImage, Math, FPImgCanv, FPCanvas; Forms, Types, IntfGraphics, FPImage, Math, FPImgCanv, FPCanvas, ClipBrd;
type type
PRGBTripleArray = ^TRGBTripleArray; PRGBTripleArray = ^TRGBTripleArray;
@ -45,6 +45,10 @@ type
procedure Rotate270; virtual; procedure Rotate270; virtual;
property ScanLine[Row: integer]: Pointer read GetScanLine; property ScanLine[Row: integer]: Pointer read GetScanLine;
procedure FillEllipse(X1, Y1, X2, Y2: integer); virtual; procedure FillEllipse(X1, Y1, X2, Y2: integer); virtual;
procedure CutToClipboard; virtual;
procedure CopyToClipboard; virtual;
procedure PasteFromClipboard; virtual;
procedure Delete; virtual;
property FillColor: TColor read GetFillColor write SetFillColor; property FillColor: TColor read GetFillColor write SetFillColor;
property OutlineColor: TColor read GetOutlineColor write SetOutlineColor; property OutlineColor: TColor read GetOutlineColor write SetOutlineColor;
property PaperColor: TColor read GetPaperColor write SetPaperColor; property PaperColor: TColor read GetPaperColor write SetPaperColor;
@ -425,7 +429,8 @@ begin
P := Bitmap.ScanLine[Y]; P := Bitmap.ScanLine[Y];
for X := 0 to (Bitmap.Width - 1) do for X := 0 to (Bitmap.Width - 1) do
begin begin
Gray := Round(0.30 * P^[X].rgbtBlue + 0.59 * P^[X].rgbtGreen + 0.11 * P^[X].rgbtRed); Gray := Round(0.30 * P^[X].rgbtBlue + 0.59 * P^[X].rgbtGreen +
0.11 * P^[X].rgbtRed);
P^[X].rgbtRed := Gray; P^[X].rgbtRed := Gray;
P^[X].rgbtGreen := Gray; P^[X].rgbtGreen := Gray;
P^[X].rgbtBlue := Gray; P^[X].rgbtBlue := Gray;
@ -475,6 +480,39 @@ begin
FIntfImgA.Free; FIntfImgA.Free;
end; end;
procedure TCustomRGBBitmapCore.CutToClipboard;
begin
CopyToClipboard;
Delete;
end;
procedure TCustomRGBBitmapCore.CopyToClipboard;
begin
ClipBoard.Assign(Self);
end;
procedure TCustomRGBBitmapCore.PasteFromClipboard;
var
oBmp: TBitmap;
begin
oBmp := TBitmap.Create;
try
oBmp.LoadFromClipboardFormat(PredefinedClipboardFormat(pcfDelphiBitmap));
//Width := oBmp.Width;
//Height := oBmp.Height;
Canvas.Draw(0, 0, oBmp);
finally
oBmp.Free;
end;
end;
procedure TCustomRGBBitmapCore.Delete;
begin
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := PaperColor;
Canvas.FillRect(0, 0, Width, Height);
end;
procedure TCustomRGBBitmapCore.Assign(Source: TPersistent); procedure TCustomRGBBitmapCore.Assign(Source: TPersistent);
begin begin
inherited; inherited;