You've already forked lazarus-ccr
The selection works with bug.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1614 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -141,6 +141,7 @@ procedure DLBMPColorReplace(aBitmap: TDLBitmap; ColorFrom, ColorTo: TColor);
|
||||
operator + (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator - (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator * (const A, B: TRGBATriple): TRGBATriple;
|
||||
operator = (A, B: TRGBATriple): Boolean;
|
||||
operator div (const A, B: TRGBATriple): TRGBATriple;
|
||||
function DWordTrans(SrcRow: TRGBATriple): DWORD;
|
||||
function DWordToTriple(SrcRow: DWORD): TRGBATriple;
|
||||
@ -179,6 +180,14 @@ begin
|
||||
Result.rgbtGreen := A.rgbtBlue div B.rgbtGreen;
|
||||
end;
|
||||
|
||||
operator = (A, B: TRGBATriple): Boolean;
|
||||
begin
|
||||
A.rgbtBlue := B.rgbtBlue;
|
||||
A.rgbtRed := B.rgbtRed;
|
||||
A.rgbtBlue := B.rgbtGreen;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function DWordTrans(SrcRow: TRGBATriple): DWORD;
|
||||
var RR, GG, BB: integer;
|
||||
begin
|
||||
|
@ -677,7 +677,7 @@ end;
|
||||
|
||||
procedure StretchDLBMP(ACanvas: TCanvas; Src: TDLBitmap; NewLeft, NewTop, NewWidth, NewHeight: integer);
|
||||
var
|
||||
dw, dh, i, j: DWord; Dest: TDLBitmap; sw, sh: Float;
|
||||
dw, dh, i, j, temph: DWord; Dest: TDLBitmap; sw, sh: Float;
|
||||
begin
|
||||
Dest := TDLBitmap.Create;
|
||||
dw := NewWidth - NewLeft;
|
||||
@ -691,8 +691,11 @@ begin
|
||||
Dest.Width := dw;
|
||||
Dest.Height := dh;
|
||||
for i := 0 to dh - 1 do
|
||||
begin
|
||||
temph := Trunc(i / sh);
|
||||
for j := 0 to dw - 1 do
|
||||
Dest.Pixels[j, i] := Src.Pixels[Trunc(j / sw), Trunc(i / sh)];
|
||||
Dest.Pixels[j, i] := Src.Pixels[Trunc(j / sw), temph];
|
||||
end;
|
||||
Dest.InvalidateScanLine;
|
||||
ACanvas.Draw(NewLeft, NewTop, Dest);
|
||||
Dest.Free;
|
||||
|
@ -41,7 +41,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item3>
|
||||
</RequiredPackages>
|
||||
<Units Count="45">
|
||||
<Units Count="46">
|
||||
<Unit0>
|
||||
<Filename Value="lazimageeditor.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -49,7 +49,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="14" Y="4"/>
|
||||
<UsageCount Value="78"/>
|
||||
<UsageCount Value="83"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="main.pas"/>
|
||||
@ -58,11 +58,12 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="Main"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1348"/>
|
||||
<CursorPos X="87" Y="1356"/>
|
||||
<UsageCount Value="78"/>
|
||||
<TopLine Value="843"/>
|
||||
<CursorPos X="28" Y="860"/>
|
||||
<UsageCount Value="83"/>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
</Unit1>
|
||||
@ -71,9 +72,9 @@
|
||||
<UnitName Value="PictureCtrls"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="897"/>
|
||||
<CursorPos X="41" Y="904"/>
|
||||
<UsageCount Value="33"/>
|
||||
<TopLine Value="1168"/>
|
||||
<CursorPos X="1" Y="1193"/>
|
||||
<UsageCount Value="35"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
@ -169,8 +170,8 @@
|
||||
<Filename Value="T:\fpclaz\laz\lcl\graphics.pp"/>
|
||||
<UnitName Value="Graphics"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1083"/>
|
||||
<CursorPos X="15" Y="1098"/>
|
||||
<TopLine Value="129"/>
|
||||
<CursorPos X="3" Y="149"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
@ -180,7 +181,7 @@
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="30"/>
|
||||
<CursorPos X="53" Y="46"/>
|
||||
<UsageCount Value="33"/>
|
||||
<UsageCount Value="35"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
@ -244,16 +245,16 @@
|
||||
<UnitName Value="BmpRGBTypes"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="97" Y="5"/>
|
||||
<UsageCount Value="29"/>
|
||||
<TopLine Value="502"/>
|
||||
<CursorPos X="39" Y="527"/>
|
||||
<UsageCount Value="31"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="T:\fpclaz\laz\lcl\include\winapih.inc"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="93"/>
|
||||
<CursorPos X="10" Y="109"/>
|
||||
<TopLine Value="157"/>
|
||||
<CursorPos X="10" Y="176"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
@ -284,8 +285,8 @@
|
||||
<Filename Value="T:\fpclaz\fpc\2.5\packages\fcl-image\src\fpcanvas.pp"/>
|
||||
<UnitName Value="FPCanvas"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="286"/>
|
||||
<CursorPos X="5" Y="302"/>
|
||||
<TopLine Value="123"/>
|
||||
<CursorPos X="3" Y="142"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
@ -357,12 +358,11 @@
|
||||
<Unit35>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<UnitName Value="DLBitmap"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="541"/>
|
||||
<CursorPos X="69" Y="558"/>
|
||||
<UsageCount Value="17"/>
|
||||
<TopLine Value="239"/>
|
||||
<CursorPos X="36" Y="259"/>
|
||||
<UsageCount Value="19"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
@ -393,9 +393,9 @@
|
||||
<Filename Value="DLBmpUtils.inc"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="672"/>
|
||||
<CursorPos X="11" Y="686"/>
|
||||
<UsageCount Value="15"/>
|
||||
<TopLine Value="669"/>
|
||||
<CursorPos X="48" Y="680"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
@ -436,127 +436,134 @@
|
||||
<CursorPos X="14" Y="444"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="T:\fpclaz\fpc\2.5\rtl\objpas\classes\classesh.inc"/>
|
||||
<WindowIndex Value="0"/>
|
||||
<TopLine Value="84"/>
|
||||
<CursorPos X="3" Y="103"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit45>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="3" Column="95" TopLine="1"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="187" Column="20" TopLine="155"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="503" Column="8" TopLine="487"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="656" Column="53" TopLine="630"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="308" Column="22" TopLine="292"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="664" Column="14" TopLine="632"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="123" Column="21" TopLine="113"/>
|
||||
<Caret Line="732" Column="14" TopLine="700"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="picturemanager.pas"/>
|
||||
<Caret Line="3" Column="93" TopLine="34"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="1175" Column="26" TopLine="1147"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="picturemanager.pas"/>
|
||||
<Caret Line="46" Column="30" TopLine="34"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="75" Column="30" TopLine="55"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="308" Column="22" TopLine="292"/>
|
||||
<Filename Value="DLBitmap.pas"/>
|
||||
<Caret Line="255" Column="18" TopLine="223"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="503" Column="7" TopLine="487"/>
|
||||
<Caret Line="611" Column="13" TopLine="591"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="308" Column="22" TopLine="292"/>
|
||||
<Caret Line="646" Column="13" TopLine="615"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="picturemanager.pas"/>
|
||||
<Caret Line="98" Column="41" TopLine="87"/>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="653" Column="13" TopLine="622"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="picturemanager.pas"/>
|
||||
<Caret Line="40" Column="3" TopLine="24"/>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="660" Column="13" TopLine="629"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="308" Column="22" TopLine="292"/>
|
||||
<Caret Line="674" Column="13" TopLine="643"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="503" Column="49" TopLine="487"/>
|
||||
<Caret Line="681" Column="13" TopLine="650"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="1123" Column="10" TopLine="1106"/>
|
||||
<Caret Line="851" Column="13" TopLine="820"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="324" Column="41" TopLine="308"/>
|
||||
<Caret Line="1384" Column="1" TopLine="1347"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="174" Column="28" TopLine="163"/>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="862" Column="38" TopLine="843"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="644" Column="35" TopLine="618"/>
|
||||
<Caret Line="1149" Column="73" TopLine="1144"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="666" Column="37" TopLine="640"/>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="862" Column="9" TopLine="843"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="324" Column="41" TopLine="308"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="187" Column="19" TopLine="168"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="4" Column="101" TopLine="1"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="199" Column="30" TopLine="168"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="156" Column="58" TopLine="150"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="640" Column="78" TopLine="633"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="176" Column="22" TopLine="150"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="664" Column="14" TopLine="633"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="278" Column="32" TopLine="252"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="732" Column="14" TopLine="701"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="69" Column="94" TopLine="66"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="259" Column="85" TopLine="247"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="503" Column="37" TopLine="480"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="578" Column="90" TopLine="562"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="29" Column="75" TopLine="23"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="170" Column="101" TopLine="162"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="45" Column="17" TopLine="23"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="414" Column="39" TopLine="383"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="904" Column="41" TopLine="899"/>
|
||||
<Caret Line="425" Column="32" TopLine="394"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="214" Column="38" TopLine="198"/>
|
||||
<Caret Line="733" Column="1" TopLine="719"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="main.pas"/>
|
||||
<Caret Line="503" Column="87" TopLine="80"/>
|
||||
<Filename Value="picturectrls.pas"/>
|
||||
<Caret Line="791" Column="39" TopLine="769"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
|
@ -1,7 +1,7 @@
|
||||
object MainForm: TMainForm
|
||||
Left = 90
|
||||
Left = 519
|
||||
Height = 681
|
||||
Top = 90
|
||||
Top = 272
|
||||
Width = 920
|
||||
Caption = 'Lazarus Image Editor'
|
||||
ClientHeight = 659
|
||||
@ -1385,9 +1385,9 @@
|
||||
TabOrder = 5
|
||||
object checkFuzzy: TCheckBox
|
||||
Left = 4
|
||||
Height = 23
|
||||
Height = 19
|
||||
Top = 5
|
||||
Width = 24
|
||||
Width = 20
|
||||
OnChange = checkFuzzyChange
|
||||
TabOrder = 0
|
||||
end
|
||||
|
@ -1,27 +1,27 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TMainForm','FORMDATA',[
|
||||
'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#2'Z'#6'Height'#3#169#2#3'Top'#2'Z'#5
|
||||
+'Width'#3#152#3#7'Caption'#6#20'Lazarus Image Editor'#12'ClientHeight'#3#147
|
||||
+#2#11'ClientWidth'#3#152#3#12'Font.CharSet'#7#14'GB2312_CHARSET'#11'Font.Hei'
|
||||
+'ght'#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'M'
|
||||
+'ainMenu'#12'OnCloseQuery'#7#14'FormCloseQuery'#8'OnCreate'#7#10'FormCreate'
|
||||
+#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9.31'#0#6'TPanel'#10'PanelTool'
|
||||
+'s'#4'Left'#2#0#6'Height'#3#20#2#3'Top'#2'i'#5'Width'#2'('#5'Align'#7#6'alLe'
|
||||
+'ft'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#20#2#11'ClientWidth'#2'('
|
||||
+#11'ParentColor'#8#8'TabOrder'#2#0#0#8'TToolBar'#12'ToolBarTools'#4'Left'#2#0
|
||||
+#6'Height'#3#20#2#3'Top'#2#0#5'Width'#2'('#5'Align'#7#6'alLeft'#12'ButtonHei'
|
||||
+'ght'#2'('#11'ButtonWidth'#2'('#7'Caption'#6#12'ToolBarTools'#21'Constraints'
|
||||
+'.MinHeight'#3#146#1#6'Images'#7#14'ImageListTools'#6'Indent'#2#0#8'TabOrder'
|
||||
+#2#0#7'OnClick'#7#17'ToolBarToolsClick'#0#11'TToolButton'#9'ToolSpray'#4'Lef'
|
||||
+'t'#2#0#4'Hint'#6#5'Spray'#3'Top'#3'j'#1#7'Grouped'#9#10'ImageIndex'#2#9#7'O'
|
||||
+'nClick'#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'Fl'
|
||||
+'ood Fill'#3'Top'#3'B'#1#7'Grouped'#9#10'ImageIndex'#2#8#7'OnClick'#7#18'Too'
|
||||
+'lFloodFillClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'#0
|
||||
+#0#11'TToolButton'#10'ToolEraser'#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'
|
||||
'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#7#2#6'Height'#3#169#2#3'Top'#3#16#1
|
||||
+#5'Width'#3#152#3#7'Caption'#6#20'Lazarus Image Editor'#12'ClientHeight'#3
|
||||
+#147#2#11'ClientWidth'#3#152#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#20#2#3'Top'#2'i'#5'Width'#2'('#5'Align'#7#6
|
||||
+'alLeft'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#3#20#2#11'ClientWidth'#2
|
||||
+'('#11'ParentColor'#8#8'TabOrder'#2#0#0#8'TToolBar'#12'ToolBarTools'#4'Left'
|
||||
+#2#0#6'Height'#3#20#2#3'Top'#2#0#5'Width'#2'('#5'Align'#7#6'alLeft'#12'Butto'
|
||||
+'nHeight'#2'('#11'ButtonWidth'#2'('#7'Caption'#6#12'ToolBarTools'#21'Constra'
|
||||
+'ints.MinHeight'#3#146#1#6'Images'#7#14'ImageListTools'#6'Indent'#2#0#8'TabO'
|
||||
+'rder'#2#0#7'OnClick'#7#17'ToolBarToolsClick'#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'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'Grouped'#9#10'ImageIndex'#2#8#7'OnClick'#7#18'T'
|
||||
+'oolFloodFillClick'#14'ParentShowHint'#8#8'ShowHint'#9#5'Style'#7#8'tbsCheck'
|
||||
+#0#0#11'TToolButton'#10'ToolEraser'#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'TToolButto'
|
||||
+'n'#7'ToolPen'#4'Left'#2#0#4'Hint'#6#3'Pen'#3'Top'#2'R'#7'Grouped'#9#10'Imag'
|
||||
+'eIndex'#2#2#7'OnClick'#7#12'ToolPenClick'#14'ParentShowHint'#8#8'ShowHint'#9
|
||||
@ -756,7 +756,7 @@ LazarusResources.Add('TMainForm','FORMDATA',[
|
||||
+'rentColor'#8#0#0#6'TPanel'#15'PanelTolerance2'#4'Left'#3#134#2#6'Height'#2
|
||||
+'"'#3'Top'#2#0#5'Width'#2#30#5'Align'#7#6'alLeft'#10'BevelOuter'#7#6'bvNone'
|
||||
+#12'ClientHeight'#2'"'#11'ClientWidth'#2#30#8'TabOrder'#2#5#0#9'TCheckBox'#10
|
||||
+'checkFuzzy'#4'Left'#2#4#6'Height'#2#23#3'Top'#2#5#5'Width'#2#24#8'OnChange'
|
||||
+'checkFuzzy'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#5#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#20#2#3'Top'#2'i'#5'Width'#3'%'#3#5'Align'#7#8'alCl'
|
||||
+'ient'#10'BevelOuter'#7#9'bvLowered'#8'TabOrder'#2#3#0#0#9'TMainMenu'#8'Main'
|
||||
|
@ -263,8 +263,8 @@ type
|
||||
procedure PanelFillDblClick(Sender: TObject);
|
||||
procedure PanelOutlineDblClick(Sender: TObject);
|
||||
procedure PanelPaperDblClick(Sender: TObject);
|
||||
procedure PanelPaperDragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
State: TDragState; var Accept: Boolean);
|
||||
procedure PanelPaperDragOver(Sender, Source: TObject; X, Y: integer;
|
||||
State: TDragState; var Accept: boolean);
|
||||
procedure PicturePageChange(Sender: TObject);
|
||||
procedure PictureChange(Sender: TObject);
|
||||
procedure PicturePageClose(Sender: TObject);
|
||||
@ -812,14 +812,14 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.PanelPaperDragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
State: TDragState; var Accept: Boolean);
|
||||
procedure TMainForm.PanelPaperDragOver(Sender, Source: TObject;
|
||||
X, Y: integer; State: TDragState; var Accept: boolean);
|
||||
begin
|
||||
if not Pictures.CanEdit then
|
||||
Exit;
|
||||
if Source is TColorPalette then
|
||||
begin
|
||||
TPanel(Sender).Color:=Palette.PickedColor;
|
||||
TPanel(Sender).Color := Palette.PickedColor;
|
||||
if Sender = PanelPaper then
|
||||
ActivePictureEdit.PaperColor := Palette.PickedColor;
|
||||
if Sender = PanelFill then
|
||||
@ -853,6 +853,12 @@ end;
|
||||
|
||||
procedure TMainForm.ChangeTool(Tool: TPictureEditTool);
|
||||
begin
|
||||
if ActivePictureEdit.IsSelection then
|
||||
with ActivePictureEdit do
|
||||
begin
|
||||
Mask(XX1, YY1, XX2, YY2, [ssLeft]);
|
||||
IsSelection := False;
|
||||
end;
|
||||
ActivePictureEdit.Tool := Tool;
|
||||
UpdateToolSettings;
|
||||
ToolBarToolsClick(nil);
|
||||
@ -1059,7 +1065,7 @@ begin
|
||||
EditUndo.Hint := lieHintEditUndo;
|
||||
|
||||
//Labels
|
||||
// LabelZoom.Caption := lieLabelZoom;
|
||||
// LabelZoom.Caption := lieLabelZoom;
|
||||
LabelShape.Caption := lieLabelShape;
|
||||
LabelFillOutline.Caption := lieLabelFillOutline;
|
||||
LabelMaskTool.Caption := lieLabelMaskTool;
|
||||
|
@ -71,6 +71,9 @@ type
|
||||
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: integer); override;
|
||||
procedure UpdatePictureRect;
|
||||
public
|
||||
SeleLeft, SeleTop, XX1, XX2, YY1, YY2: integer;
|
||||
SelectedDLBMP: TDLBitmap;
|
||||
IsSelection: Boolean;
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure Paint; override;
|
||||
@ -161,6 +164,7 @@ type
|
||||
procedure DrawToolDrag(X1, Y1, X2, Y2: integer); virtual;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure NewPicture(AWidth, AHeight: integer; APaperColor: TColor);
|
||||
procedure LoadPicture(const FileName: string); override;
|
||||
@ -468,6 +472,18 @@ begin
|
||||
Application.QueueAsyncCall(@MaskDraw, FPaintIndex);
|
||||
end;
|
||||
end;
|
||||
{if IsSelection then
|
||||
begin
|
||||
Canvas.Pen.Mode:=pmNotXor;
|
||||
if SeleLeft < FPictureRect.Left then
|
||||
SeleLeft := FPictureRect.Left;
|
||||
if SeleTop < FPictureRect.Top then
|
||||
SeleTop := FPictureRect.Top;
|
||||
if (Seleleft >= FPictureRect.Left) and (SeleTop >= FPictureRect.Top){ and
|
||||
(SeleLeft + SelectedDLBMP.Width <= FPictureRect.Right) and
|
||||
(SeleTop + SelectedDLBMP.Height <= FPictureRect.Bottom)} then
|
||||
Canvas.Draw(SeleLeft, SeleTop, SelectedDLBMP);
|
||||
end; }
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -634,11 +650,19 @@ begin
|
||||
inherited PictureMouseDown(Button, Shift, X, Y);
|
||||
|
||||
FTempPos := Point(X, Y);
|
||||
IsSelection := False;
|
||||
case Tool of
|
||||
ptPen: Line(X, Y, X, Y, Shift);
|
||||
ptFloodFill: FloodFill(X, Y, Shift);
|
||||
ptMask: if MaskTool = mtFloodFill then
|
||||
ptMask: begin if MaskTool = mtFloodFill then
|
||||
MaskFloodFill(X, Y, Shift);
|
||||
Canvas.Pen.Style := psDot;
|
||||
Canvas.Pen.Mode := pmXor;
|
||||
IsSelection := True;
|
||||
SeleLeft := X;
|
||||
SeleTop := Y;
|
||||
Mask(XX1, YY1, XX2, YY2, Shift);
|
||||
end;
|
||||
ptColorPick: ColorPick(X, Y, Shift);
|
||||
ptEraser: Eraser(X, Y, Shift);
|
||||
ptColorReplacer: ColorReplacer(X, Y, Shift);
|
||||
@ -704,8 +728,10 @@ begin
|
||||
end;
|
||||
Canvas.Polygon(paddr);
|
||||
end;
|
||||
ptMask: if MaskTool <> mtFloodFill then
|
||||
ptMask: begin if MaskTool <> mtFloodFill then
|
||||
Mask(StartPos.X, StartPos.Y, X, Y, Shift);
|
||||
IsSelection := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
FToolDrag := tdNone;
|
||||
@ -778,6 +804,14 @@ begin
|
||||
FloodFillTolerance := 0;
|
||||
|
||||
Cursor := crCross;
|
||||
|
||||
SelectedDLBMP := TDLBitmap.Create;
|
||||
end;
|
||||
|
||||
destructor TCustomPictureEdit.Destroy;
|
||||
begin
|
||||
SelectedDLBMP.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TCustomPictureEdit.NewPicture(AWidth, AHeight: integer; APaperColor: TColor);
|
||||
@ -942,16 +976,8 @@ begin
|
||||
Exit;
|
||||
|
||||
BeginDraw;
|
||||
// if not (ssLeft in Shift) then Picture.EraseMode := ermErase;
|
||||
// Picture.RandomEnabled := True;
|
||||
try
|
||||
// Picture.Canvas.Pen.Color:=FFillColor;
|
||||
// Picture.Canvas.Brush.Color:=FFillColor;
|
||||
R := Bounds(X - FSize div 2, Y - FSize div 2, FSize, FSize);
|
||||
{case Shape of
|
||||
psRect: Picture.Canvas.FillRect(R.Left, R.Top, R.Right, R.Bottom);
|
||||
psCircle: Picture.FillEllipse(R.Left, R.Top, R.Right, R.Bottom);
|
||||
end; }
|
||||
Picture.Spray(X, Y, 11, FFillColor);
|
||||
finally
|
||||
Picture.EraseMode := ermNone;
|
||||
@ -1139,6 +1165,28 @@ begin
|
||||
mtEllipse: Picture.Mask.Ellipse(X1, Y1, X2, Y2);
|
||||
mtRectangle: Picture.Mask.Rectangle(X1, Y1, X2, Y2);
|
||||
end;
|
||||
|
||||
Picture.Canvas.Pen.Style := psSolid; //psDot;
|
||||
Picture.Canvas.Pen.Color := clGray;
|
||||
Picture.Canvas.Pen.Mode := pmNotXor;
|
||||
Picture.Canvas.Brush.Color := $00EACAB6;
|
||||
//Canvas.Brush.Style := bsClear;
|
||||
Picture.Canvas.Rectangle(X1, Y1, X2, Y2);
|
||||
SelectedDLBMP.Width := Abs(X2 - X1);
|
||||
SelectedDLBMP.Height := Abs(Y2 - Y1);
|
||||
SelectedDLBMP.Canvas.CopyRect(Rect(0, 0, SelectedDLBMP.Width, SelectedDLBMP.Height),
|
||||
Picture.Canvas, Rect(X1, Y1, X2, Y2));
|
||||
// if SelectedDLBMP <> nil then
|
||||
// SelectedDLBMP.CopyToClipboard;
|
||||
// Picture.Canvas.Draw(0,0,SelectedDLBMP);
|
||||
Picture.Canvas.Pen.Mode := pmCopy;
|
||||
Picture.Canvas.Pen.Style := psSolid;
|
||||
SeleLeft := X1;
|
||||
SeleTop := Y1;
|
||||
XX1 := X1;
|
||||
XX2 := X2;
|
||||
YY1 := Y1;
|
||||
YY2 := Y2;
|
||||
finally
|
||||
Picture.Mask.FillMode := mfAdd;
|
||||
EndDraw;
|
||||
|
Reference in New Issue
Block a user