Как работать с TChart???

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как работать с TChart???

Сообщение dyavolenok_shef » 02.08.2008 19:43:56

Привет, а у меня возникла проблема никак не могу сообразить...
Вот у меня есть TStringGrid, я его заполняю
Код: Выделить всё
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, Buttons, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Edit1: TEdit;
    Label1: TLabel;
    Panel1: TPanel;
    StringGrid1: TStringGrid;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; aCol, aRow: Integer;
      var CanSelect: Boolean);
    procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: string);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  n: integer;

implementation
    uses Un_STUDENTS,Un_TABLE;
{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
   n:=0;     {обнуление начального номера студента}
   With StringGrid1 Do
    begin
     Cells[0,0] := 'Фамилия и имя';
     Cells[1,0] := 'Математический анализ';
     Cells[2,0] := 'Информатика';
     Cells[3,0] := 'Программирование';
     Cells[4,0] := 'Физика';
     Cells[5,0] := 'Средний балл';
     Cells[0,1] := 'Средний балл';
    end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; aCol, aRow: Integer;
  var CanSelect: Boolean);
begin
   If (ARow=StringGrid1.RowCount-1) or (ACol=StringGrid1.ColCount-1) then
    CanSelect:=False;

end;

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
  const Value: string);
var  j,k:byte;
     b,c: integer;
     SumRow,SumCol: Real;
begin
    with StringGrid1 do
     if (ARow<>RowCount-1) and (ACol<>ColCount-1) then
     {если редактируется область оценок, то проверяем, верны ли введенные данные}
      Begin
        If Value<>'' {если введенное значение не пусто}
         then
           begin
             val(Value,b,c); {пытаемся перевести в число}
             {игнорируем неверно введенную оценку}
             if (c<>0) or  (not(b in [1..5])) then
               Cells[ACol,ARow]:='';
           end;
         SumRow:=0; {обнуляем первоначальную сумму оценок по строкам}
         k:=0;
         For j:=1 to 4 do
          If Cells[j,Arow]<>'' then
            begin
              SumRow:=SumRow+StrToInt(Cells[j,ARow]);
              inc(k); {считаем количество непустых значений}
            end;
          If k<>0 then SumRow := SumRow/k;
          {отобразим средний балл в 5-ом столбце таблицы}
          Cells[5,ARow]:=FormatFloat('##.##',SumRow);
          SumCol:=0; {обнуляем первоначальную сумму оценок по столбцам}
          k:=0;
          For j:=1 to n do
          If Cells[ACol,j]<>'' then
            begin
              SumCol:=SumCol+StrToInt(Cells[ACol,j]);
              inc(k);
            end;
          If k<>0 then SumCol := SumCol/k;
          {отобразим средний балл в n+1-ом строке таблицы}
          Cells[ACol,n+1]:=FormatFloat('##.##',SumCol);
      End;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var j: byte;
begin
   if Edit1.Text='' then ShowMessage('Не введены данные')
      else
         begin
          StringGrid1.Enabled:=true; {таблица становится доступной}
          n:=n+1;                {увеличиваем количество студентов}
          With StringGrid1 Do
            Begin
             RowCount:=RowCount+1;     {увеличиваем число строк}
             for j:=0 to 5 do {перемещаем строку с данными  о среднем балле}
              begin                   {в последнюю строу таблицы}
                Cells[j,RowCount-1] := Cells[j,RowCount-2];
                Cells[j,RowCount-2] := '';{очищаем последнюю строку}
              end;
             {помещаем фамилию и имя из Edit1 в предпоследнюю строку}
              Cells[0,RowCount-2] := Edit1.Text;
            End;
            Edit1.Clear;
         end;
         Edit1.SetFocus;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  {если диалоговое окно FmCHOISE было закрыто на кнопку "Построить"}
  if FmCHOISE.ShowModal=mrOK then
  If not Assigned(fmSTUDENTS) {если форма fmSTUDENTS не создана}
       then
         Begin
           fmSTUDENTS:=TfmSTUDENTS.Create(Application);
           {выводим форму fmSTUDENTS в модальном режиме}
           fmSTUDENTS.ShowModal;
           fmSTUDENTS.Free;   {уничтожам форму fmSTUDENTS}
           fmSTUDENTS:=Nil;
         End;

end;

, а потом по этим данных мне необходимо построть график, с помощью TChart. И что-то ничего не получается
dyavolenok_shef
новенький
 
Сообщения: 17
Зарегистрирован: 31.07.2008 10:27:47

Re: Как работать с TChart???

Сообщение dyavolenok_shef » 05.08.2008 18:09:12

Всмысле строить график по заданным данным никто не умееи чтоли?
dyavolenok_shef
новенький
 
Сообщения: 17
Зарегистрирован: 31.07.2008 10:27:47

Re: Как работать с TChart???

Сообщение wavebvg » 05.08.2008 20:40:29

В примерах есть построение графиков.
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Re: Как работать с TChart???

Сообщение Vadim » 06.08.2008 07:37:29

wavebvg писал(а):В примерах есть построение графиков.

У меня в примерах нету. Где лежит?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как работать с TChart???

Сообщение dyavolenok_shef » 06.08.2008 08:28:59

wavebvg писал(а):В примерах есть построение графиков.

И у меня нету... так где лежит все таки?

Добавлено спустя 2 минуты 8 секунд:
Если можно то кинь, а то правда нету
dyavolenok_shef
новенький
 
Сообщения: 17
Зарегистрирован: 31.07.2008 10:27:47

Re: Как работать с TChart???

Сообщение Vadim » 06.08.2008 10:05:04

dyavolenok_shef
Есть такая книжка "Delphi 5 Создание мультимедийных приложений", там про работу с TChart подробненько написано. Попробуй в гугле найти электронную версию.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как работать с TChart???

Сообщение wavebvg » 09.08.2008 05:13:17

Прошу прощения, был невнимателен - сам лазарь давно собирал, я использую сторонний компонент, TAChart, там есть пример, извеняюсь за несовсем точную информацию, собственно стандартный tchart умеет почти тоже самое...
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Re: Как работать с TChart???

Сообщение dyavolenok_shef » 10.08.2008 13:50:59

wavebvg писал(а):Прошу прощения, был невнимателен - сам лазарь давно собирал, я использую сторонний компонент, TAChart, там есть пример, извеняюсь за несовсем точную информацию, собственно стандартный tchart умеет почти тоже самое...

Спасибо.
dyavolenok_shef
новенький
 
Сообщения: 17
Зарегистрирован: 31.07.2008 10:27:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

Рейтинг@Mail.ru