list index out of bounds。。求指导
lahm_ 2012-11-29 11:13:06 procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select*from mxs where 时间 between :a and :b order by 时间 ');
Parameters.ParamByName('a').Value:=formatdatetime('yyyy-MM-dd 00:00:00',datetimepicker1.Datetime);
Parameters.ParamByName('b').Value:=formatdatetime('yyyy-MM-dd 23:59:59',datetimepicker1.Datetime);
open;
s:=ADOQuery1.Recordcount;
end;
DBChart1.Title.Text.Text:='『' +formatdatetime('yyyy年MM月dd日',datetimepicker1.datetime)+ '』时产量趋势图';
DBChart1.Series[0].XLabelsSource:='时间';
DBChart1.Series[0].YValues.valuesource:='产量';
DBChart1.Series[0].DataSource:=ADOQuery1;
TempI:=0;
for i:=0 to s do
begin
DBChart1.Series[0].XLabelsSource:='时间';
DBChart1.Series[0].YValues.valuesource:='产量';
DBChart1.Series[0].DataSource:=ADOQuery1;
TempI:=TempI+1;
end;
end;
procedure TForm1.DBChart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
TempX:Double;
begin
//TempX:=-1;
TempX:=StrToFloat(CurrToStr(dbChart1.BottomAxis.CalcPosPoint(X-5))); //X-5为3D图形的X轴偏移量
if TempX<StrToFloat(inttostr(tempi))-1 then
begin
if TempX>=0 then
begin
if (TempX-Trunc(TempX))<0.5 then
TempX:=Trunc(TempX)
else
TempX:=Trunc(TempX)+1;
Label1.Caption:=dbChart1.Series[0].ValueMarkText[strtoint(FloatToStr(TempX))];
end
else
Label1.Caption:='';
end
else
Label1.Caption:='';
end;
Label1.Caption:=dbChart1.Series[0].ValueMarkText[strtoint(FloatToStr(TempX))]。这句出错。。。我想从数据库中调出数据,并DBChart显示,鼠标放在曲线上是能显示出横纵坐标。横坐标是时间,纵坐标是产量。数据库两个字段分别为时间,产量。