mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 17:21:03 +02:00
TAChart: Include Item.Y in reordered list of TCalculatedChartSource. Update test.
git-svn-id: trunk@37588 -
This commit is contained in:
parent
fe7b460ed5
commit
dcf6e40f02
@ -1082,14 +1082,24 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCalculatedChartSource.ExtractItem(AIndex: Integer);
|
procedure TCalculatedChartSource.ExtractItem(AIndex: Integer);
|
||||||
|
|
||||||
|
function YByOrder(AOrderIndex: Integer): Double;
|
||||||
|
begin
|
||||||
|
if AOrderIndex = 0 then
|
||||||
|
Result := FItem.Y
|
||||||
|
else
|
||||||
|
Result := FItem.YList[AOrderIndex - 1];
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
t: TDoubleDynArray;
|
t: TDoubleDynArray;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
FItem := Origin[AIndex]^;
|
FItem := Origin[AIndex]^;
|
||||||
SetLength(t, Length(FYOrder));
|
SetLength(t, High(FYOrder));
|
||||||
for i := 0 to High(FYOrder) do
|
for i := 1 to High(FYOrder) do
|
||||||
t[i] := FItem.YList[FYOrder[i]];
|
t[i - 1] := YByOrder(FYOrder[i]);
|
||||||
|
FItem.Y := YByOrder(FYOrder[0]);
|
||||||
FItem.YList := t;
|
FItem.YList := t;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1211,8 +1221,7 @@ begin
|
|||||||
|
|
||||||
FOriginYCount := FOrigin.YCount;
|
FOriginYCount := FOrigin.YCount;
|
||||||
if ReorderYList = '' then begin
|
if ReorderYList = '' then begin
|
||||||
FYCount := FOrigin.YCount;
|
SetLength(FYOrder, FOriginYCount);
|
||||||
SetLength(FYOrder, Max(FYCount - 1, 0));
|
|
||||||
for i := 0 to High(FYOrder) do
|
for i := 0 to High(FYOrder) do
|
||||||
FYOrder[i] := i;
|
FYOrder[i] := i;
|
||||||
end
|
end
|
||||||
@ -1222,15 +1231,14 @@ begin
|
|||||||
order.CommaText := ReorderYList;
|
order.CommaText := ReorderYList;
|
||||||
SetLength(FYOrder, order.Count);
|
SetLength(FYOrder, order.Count);
|
||||||
for i := 0 to High(FYOrder) do
|
for i := 0 to High(FYOrder) do
|
||||||
FYOrder[i] :=
|
FYOrder[i] := EnsureRange(StrToIntDef(order[i], 0), 0, FOriginYCount - 1);
|
||||||
EnsureRange(StrToIntDef(order[i], 0), 0, FOrigin.YCount - 2);
|
|
||||||
FYCount := Length(FYOrder) + 1;
|
|
||||||
finally
|
finally
|
||||||
order.Free;
|
order.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
FYCount := Length(FYOrder);
|
||||||
|
|
||||||
SetLength(FItem.YList, Length(FYOrder));
|
SetLength(FItem.YList, Max(High(FYOrder), 0));
|
||||||
Changed(nil);
|
Changed(nil);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -200,23 +200,27 @@ end;
|
|||||||
|
|
||||||
procedure TCalculatedSourceTest.Reorder;
|
procedure TCalculatedSourceTest.Reorder;
|
||||||
var
|
var
|
||||||
i, j: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
AssertEquals(3, FSource.YCount);
|
AssertEquals(3, FSource.YCount);
|
||||||
FSource.ReorderYList := '2';
|
FSource.ReorderYList := '2';
|
||||||
|
AssertEquals(1, FSource.YCount);
|
||||||
|
AssertEquals(104, FSource[0]^.Y);
|
||||||
|
AssertEquals(204, FSource[1]^.Y);
|
||||||
|
FSource.ReorderYList := '0,2';
|
||||||
AssertEquals(2, FSource.YCount);
|
AssertEquals(2, FSource.YCount);
|
||||||
|
AssertEquals(102, FSource[0]^.Y);
|
||||||
AssertEquals(104, FSource[0]^.YList[0]);
|
AssertEquals(104, FSource[0]^.YList[0]);
|
||||||
|
AssertEquals(202, FSource[1]^.Y);
|
||||||
AssertEquals(204, FSource[1]^.YList[0]);
|
AssertEquals(204, FSource[1]^.YList[0]);
|
||||||
FSource.ReorderYList := '0,0,0';
|
FSource.ReorderYList := '1,1,1';
|
||||||
AssertEquals(4, FSource.YCount);
|
AssertEquals(3, FSource.YCount);
|
||||||
AssertEquals(103, FSource[0]^.YList[0]);
|
AssertEquals(103, FSource[0]^.Y);
|
||||||
AssertEquals(103, FSource[0]^.YList[1]);
|
AssertEquals([103, 103], FSource[0]^.YList);
|
||||||
AssertEquals(103, FSource[0]^.YList[2]);
|
|
||||||
FSource.ReorderYList := '';
|
FSource.ReorderYList := '';
|
||||||
for i := 0 to FSource.Count - 1 do begin
|
for i := 0 to FSource.Count - 1 do begin
|
||||||
AssertEquals(FOrigin[i]^.Y, FSource[i]^.Y);
|
AssertEquals(FOrigin[i]^.Y, FSource[i]^.Y);
|
||||||
for j := 0 to FSource.YCount - 2 do
|
AssertEquals(FOrigin[i]^.YList, FSource[i]^.YList);
|
||||||
AssertEquals(FOrigin[i]^.YList[j], FSource[i]^.YList[j]);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user