0

我正在编写一些代码来为每个定义的位置显示 3 个同心圆,以及一个组合框来更改这些圆的颜色。

当我将组合值更改 2 到 3 次时,来自一个随机位置的最后一个添加的圆圈(几乎总是最后一个添加的)会触发 RadiusChangeEvent。

这是Cicles的创建代码:

for I := 0 to Length(lEstaciones) -1 do
begin
  circulos.Add(lEstaciones[i].getLat, lEstaciones[i].getLon, radio*4);
  circulos.Items[3*i].FillColor := color;
  circulos.Items[3*i].StrokeColor := color;
  circulos.Items[3*i].FillOpacity := 0.25;
  circulos.Items[3*i].StrokeWeight := 0;
  circulos.Items[3*i].Visible := true;
  circulos.Add(lEstaciones[i].getLat, lEstaciones[i].getLon, radio*8);
  circulos.Items[3*i+1].FillColor := color;
  circulos.Items[3*i+1].StrokeColor := color;
  circulos.Items[3*i+1].FillOpacity := 0.25;
  circulos.Items[3*i+1].StrokeWeight := 0;
  circulos.Items[3*i+1].Visible := true;
  circulos.Add(lEstaciones[i].getLat, lEstaciones[i].getLon, radio*12);
  circulos.Items[3*i+2].FillColor := color;
  circulos.Items[3*i+2].StrokeColor := color;
  circulos.Items[3*i+2].FillOpacity := 0.25;
  circulos.Items[3*i+2].StrokeWeight := 0;
  circulos.Items[3*i+2].Visible := true;
end;

以及更改颜色的代码:

  for I := 0 to Length(lEstaciones) -1 do
  begin
    circulos.Items[3*i].FillColor := color;
    circulos.Items[3*i].StrokeColor := color;
    circulos.Items[3*i].FillOpacity := 0.25;
    circulos.Items[3*i].StrokeWeight := 0;
    circulos.Items[3*i].Visible := true;
    circulos.Items[3*i+1].FillColor := color;
    circulos.Items[3*i+1].StrokeColor := color;
    circulos.Items[3*i+1].FillOpacity := 0.25;
    circulos.Items[3*i+1].StrokeWeight := 0;
    circulos.Items[3*i+1].Visible := true;
    circulos.Items[3*i+2].FillColor := color;
    circulos.Items[3*i+2].StrokeColor := color;
    circulos.Items[3*i+2].FillOpacity := 0.25;
    circulos.Items[3*i+2].StrokeWeight := 0;
    circulos.Items[3*i+2].Visible := true;
  end;
end;

谢谢。

4

0 回答 0