Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

TChart   Найти похожие ветки 

 
Quattro ©   (2005-12-08 12:08) [0]

Господа!Помогите чем можете=))...не могу понять почему не работает вот этот кусок.....ничего не чертит....
procedure TValues.GrafDraw;
var
 a:integer;
 Temp:array [1..200] of double;
begin
Form1.Chart.Series[1].Clear;//î÷èñòêà
for a:=1 to Form1.Table.RowCount-1 do
begin
  if Form1.Table.Cells[1,a]<>"" then Temp[a]:=StrToFloat(Form1.Table.Cells[1,a])
  else
    Temp[a]:=StrToFloat(Form1.Table.Cells[2,a]);
end;
for a:=1 to Form1.Table.RowCount-1 do
  if Temp[a]>Temp[a+1] then Temp[a+1]:=Temp[a];
Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-1]+50;
for a:=4 to Form1.Table.RowCount-1 do
begin
  Form1.Chart.Series[1].Add(StrToFloat(Form1.Table.Cells[2,a]),
                            Form1.Table.Cells[0,a],clGreen);
 end;

end;


 
Tonich ©   (2005-12-08 12:18) [1]

попробуй так
Form1.Chart.Series[1].AddXY(StrToFloat(Form1.Table.Cells[2,a]),
                           Form1.Table.Cells[0,a],clGreen);
ты хоть выстроил как-то код, его пока прочитаешь....


 
Quattro ©   (2005-12-08 12:31) [2]

извини=))....вот так лучше?=)
procedure TValues.GrafDraw;
var
a:integer;
Temp:array [1..200] of double;
begin
 Form1.Chart.Series[1].Clear;//очистка
   for a:=1 to Form1.Table.RowCount-1 do
     begin
       if Form1.Table.Cells[1,a]<>"" then Temp[a]:=StrToFloat(Form1.Table.Cells[1,a])
         else
           Temp[a]:=StrToFloat(Form1.Table.Cells[2,a]);
     end;
   for a:=1 to Form1.Table.RowCount-1 do
     if Temp[a]>Temp[a+1] then Temp[a+1]:=Temp[a];
 Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-1]+50;
   for a:=4 to Form1.Table.RowCount-1 do
     begin
       Form1.Chart.Series[1].Add(StrToFloat(Form1.Table.Cells[2,a]),
                           Form1.Table.Cells[0,a],clGreen);
     end;
end;

С AddXY тоже не получается...даже не знаю что и думать...=(


 
Tonich ©   (2005-12-08 12:43) [3]

ну а если не трогать сам ось вот в этой строке

> Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-
> 1]+50;


то как тогда?


 
Kolan ©   (2005-12-08 13:29) [4]

А у тебя
Form1.Table.Cells[2,a]
тут есть значения

Закомментируй все свой вычисления и просто нарисуй график. Потом постепеннно убирай кмментарии и каждый раз проверяй.
Кстати а DeBug"ером пройтис не пробовал. И AddXY используй...


 
Quattro ©   (2005-12-08 13:58) [5]

Чарт даже так почему то не хочет рисовать...
procedure TValues.GrafDraw;
var
 a:integer;
 Temp:array [1..200] of double;
begin
 Form1.Chart.Series[1].Clear;//&#238;&#247;&#232;&#241;&#242;&#234;&#224;
 { for a:=1 to Form1.Table.RowCount-1 do
     begin
       if Form1.Table.Cells[1,a]<>"" then Temp[a]:=StrToFloat(Form1.Table.Cells[1,a])
         else Temp[a]:=StrToFloat(Form1.Table.Cells[2,a]);
     end;
   for a:=1 to Form1.Table.RowCount-1 do
    if Temp[a]>Temp[a+1] then Temp[a+1]:=Temp[a];
 Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-1]+50;
   for a:=1 to Form1.Table.RowCount-1 do}
     begin
       Form1.Chart.Series[1].AddXY(StrToTime("12:00"),Temp[1],"qwe",clGreen);
       ShowMessage("qwe");
       Form1.Chart.Series[1].AddXY(StrToTime("12:10"),Temp[2],"qwe",clGreen);
     end;
end;
Temp[1] и Temp[2] содержат числа с плавающей запятой...


 
Quattro ©   (2005-12-08 14:00) [6]

Kolan © Дебуггер говорит что мол всё гут...никаких ерроров..и значения все в норме....


 
Quattro ©   (2005-12-08 14:07) [7]

ошибся...вот так,но тоже ничего не происходит....
procedure TValues.GrafDraw;
var
a:integer;
Temp:array [1..200] of double;
begin
Form1.Chart.Series[1].Clear;//&#238;&#247;&#232;&#241;&#242;&#234;&#224;
{ for a:=1 to Form1.Table.RowCount-1 do
    begin
      if Form1.Table.Cells[1,a]<>"" then Temp[a]:=StrToFloat(Form1.Table.Cells[1,a])
        else Temp[a]:=StrToFloat(Form1.Table.Cells[2,a]);
    end;
  for a:=1 to Form1.Table.RowCount-1 do
   if Temp[a]>Temp[a+1] then Temp[a+1]:=Temp[a];
Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-1]+50;
  for a:=1 to Form1.Table.RowCount-1 do}
    begin
      Form1.Chart.Series[1].AddXY(StrToTime("12:00"),StrToFloat(Form1.Table.Cells[1,1]),"qwe",clGreen);
      ShowMessage("qwe");
      Form1.Chart.Series[1].AddXY(StrToTime("12:10"),StrToFloat(Form1.Table.Cells[1,2],"qwe",clGreen);
    end;
end;


 
Tonich ©   (2005-12-08 14:15) [8]

да попробуй просто на чарте что-то нарисовать,
а особенно вот без этой строки

Form1.Chart.LeftAxis.Maximum:=Temp[Form1.Table.RowCount-1]+50


 
Quattro ©   (2005-12-08 14:53) [9]

Во!!спасибо!!!!разобрался..проблема действительно в максимумах/минимумах таилась....тока теперь возникла другая=))...как убрать обозначччения точек на графике??...что бы не подписывались координаты точек..


 
Quattro ©   (2005-12-08 15:01) [10]

всё!!проблем больше пока не вижу=))))всем спасибо за терпение=))



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
14-1133546355
Shuric
2005-12-02 20:59
2005.12.25
Как вы считаете


2-1133937740
Sung
2005-12-07 09:42
2005.12.25
Большие массивы


2-1134081922
Quattro
2005-12-09 01:45
2005.12.25
TChart


14-1133348273
Глупые Вопросы
2005-11-30 13:57
2005.12.25
Подскажите компонент


2-1134144844
guest__
2005-12-09 19:14
2005.12.25
TStrings - уничтожение лишних строк.