Delphi 将Tchart等分,然后在Firemonkey中在其上绘制矩形
我在Delphi 将Tchart等分,然后在Firemonkey中在其上绘制矩形,delphi,firemonkey,c++builder,teechart,Delphi,Firemonkey,C++builder,Teechart,我在C++builder中有一个带有VCL的简单程序,需要迁移到Firemonkey。在这个应用程序中,我需要使用TChart,但我不知道如何让它工作。我的申请很简单;用户在stringgrid中输入数据,然后通过单击两个不同的按钮在两个不同的TChart中显示数据。 第一个按钮点击是将TChart分成相等的部分(通常分为两部分,但用户可以将TChart分成两个以上的部分)。在第一个示例中,有一列,其中有两个带文本的长矩形。在这个例子中,它是两个带有“chpl”的矩形 第二个按钮应绘制在相同的
C++builder
中有一个带有VCL
的简单程序,需要迁移到Firemonkey
。在这个应用程序中,我需要使用TChart
,但我不知道如何让它工作。我的申请很简单;用户在stringgrid中输入数据,然后通过单击两个不同的按钮在两个不同的TChart
中显示数据。
第一个按钮点击是将TChart
分成相等的部分(通常分为两部分,但用户可以将TChart
分成两个以上的部分)。在第一个示例中,有一列,其中有两个带文本的长矩形。在这个例子中,它是两个带有“chpl”的矩形
第二个按钮应绘制在相同的TChart
上:
它本质上是两个或更多的矩形,从图表的开始一直到结束
为了简单起见,我需要将TChart
水平分割成两个或多个相等的部分,然后在其上绘制带有文本的矩形,这是最简单的解决方案
我真的迷路了,因为在网上搜索时,我仅仅使用了TChart.AfterDraw()
方法就遇到了类似的问题,但我不知道如何使用它,它不是很清楚
一旦用户单击一个按钮,就会生成图形,否则应该什么都没有
到目前为止,我的绘图方法是:
void __fastcall TForm1::rbComprChange()
{
Series5->Clear(); //used for clearing the series to regenerate them from the user input
for(int i=0;i<StringGrid1->RowCount;i++)
{
Series5->AddGantt(StrToDate(StringGrid1->Cells[4][i]),StrToDate(StringGrid1->Cells[5][i]),i,StringGrid1->Cells[1][i]);
Series5->NextTask->Value[i]=i;
}
// How and where should i draw these rectangles?!
}
void\uu fastcall TForm1::rbComprChange()
{
Series5->Clear();//用于清除序列以根据用户输入重新生成序列
for(int i=0;iRowCount;i++)
{
Series5->AddGantt(strotdate(StringGrid1->Cells[4][i]),strotdate(StringGrid1->Cells[5][i]),i,StringGrid1->Cells[1][i]);
序列5->NextTask->Value[i]=i;
}
//我应该怎样画这些矩形,在哪里画?!
}
可以在C++或Builder或Delphi中指导我或者向我解释如何做这件事。