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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, LCLType, LCLIntf, LMessages, LCLProc, Controls, Graphics,
Forms, Types, IntfGraphics, FPImage, Math, FPImgCanv, FPCanvas;
Forms, Types, IntfGraphics, FPImage, Math, FPImgCanv, FPCanvas, ClipBrd;
type
PRGBTripleArray = ^TRGBTripleArray;
@ -45,6 +45,10 @@ type
procedure Rotate270; virtual;
property ScanLine[Row: integer]: Pointer read GetScanLine;
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 OutlineColor: TColor read GetOutlineColor write SetOutlineColor;
property PaperColor: TColor read GetPaperColor write SetPaperColor;
@ -425,7 +429,8 @@ begin
P := Bitmap.ScanLine[Y];
for X := 0 to (Bitmap.Width - 1) do
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].rgbtGreen := Gray;
P^[X].rgbtBlue := Gray;
@ -475,6 +480,39 @@ begin
FIntfImgA.Free;
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);
begin
inherited;