如果你想在中心写字符,不需要取得坐标,甘特图提供了写字符的。 设计的时候:Chart->Series1->Marks->Visible选中。就能够显示标签了。向图里面加数据的时候可以把字符加进去: procedure TForm1.Button1Click(Sender: TObject); begin Series1.AddGantt(100,200,1,'begin'); Series1.AddGantt(120,220,2,'end'); Series1.AddGantt(140,250,3,'process1'); Series1.AddGantt(160,270,4,'process2'); end;或者不加,程序其他地方添加: procedure TForm1.Button1Click(Sender: TObject); begin Series1.AddGantt(100,200,1); Series1.AddGantt(120,220,2); Series1.AddGantt(140,250,3); Series1.AddGantt(160,270,4); end;procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin for i:=0 to Series1.Count-1 do Series1.XLabel[i]:='haha'+IntToStr(i); end;
to gzmhero(hihihi) ( ) 这个我知道,但我因为它那个标标签是定下来的,我写的是不一定下来了,那我要的就是矩形的角的坐标了。请问怎么得到啊。多谢了。
to gzmhero(hihihi) ( ) 按上面的求法不对啊。求了来了坐标不是在每个矩形的位置上。是不是还得得到屏幕坐标啊。
Button1: TButton;
Chart1: TChart;
Button2: TButton;
Series1: TGanttSeries;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
.....procedure TForm1.Button1Click(Sender: TObject);
begin
Series1.AddGantt(100,200,300);
Series1.AddGantt(120,220,400);
Series1.AddGantt(140,250,350);
Series1.AddGantt(160,270,330);
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to Series1.Count-1 do
Memo1.Lines.Add(Format('X[%d]=%.2f,Y[%d]=%.2f',[i+1,Series1.StartValues.Value[i],i+1,Series1.EndValues.Value[i]]));
end;
请问这得到是什么坐标?是屏幕坐标吗?好像有点不对啊。我是想得到每个长矩形框坐标。
那我怎么求甘特图中每个矩形的中心标啊?多谢了。
Series1.EndValues[i];
是开始,结束点,中间就是中心。
设计的时候:Chart->Series1->Marks->Visible选中。就能够显示标签了。向图里面加数据的时候可以把字符加进去:
procedure TForm1.Button1Click(Sender: TObject);
begin
Series1.AddGantt(100,200,1,'begin');
Series1.AddGantt(120,220,2,'end');
Series1.AddGantt(140,250,3,'process1');
Series1.AddGantt(160,270,4,'process2');
end;或者不加,程序其他地方添加:
procedure TForm1.Button1Click(Sender: TObject);
begin
Series1.AddGantt(100,200,1);
Series1.AddGantt(120,220,2);
Series1.AddGantt(140,250,3);
Series1.AddGantt(160,270,4);
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to Series1.Count-1 do
Series1.XLabel[i]:='haha'+IntToStr(i);
end;