На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> Lazarus и TChart
    Установлен Lazarus 0.9.26b + Win Xp
    Работает ли тут вообще Tchart? как добавить серию? в Delphi 7 всё просто и понятно настраивается, а тут не знаю что и куда..
      Цитата Extremo @
      Работает ли тут вообще Tchart?
      Работает.
      Цитата Extremo @
      как добавить серию?
      Правой кнопкой мыши на Chart-е щелкни, и выбери... Хм... Как же оно называется... Edit, по-моему. Вылезет окошко, в нем уже в меню "Добавить" - выбираешь тип серии, который тебе нужен. Вроде все просто и понятно... Редактировать свойства серии можно прямо из Object Inspector-а...
        Это в Delphi так, а в Lazarus'e по правой кнопке у меня вот что
        Прикреплённый файлПрикреплённый файлМеню.JPG (29.7 Кбайт, скачиваний: 1589)
          Цитата Extremo @
          Это в Delphi так
          Это ты кому другому расскажешь, ладно?

          Я сказал:
          Цитата volvo877 @
          Правой кнопкой мыши на Chart-е щелкни
          , а ты куда щелкнул?
            на chart я щёлкнул..на chart..или там как-то "особенно" щёлкать нужно?
            1) передо мной форма.
            2) левой кнопкой на chart (выделил чарт то бишь)
            3) клик правой кнопки
            4) Вылезло меню(скрин выше)

            Может у меня Tchart как-то криво поставился, раз нет его настроек..
            Или может программно создать серию?
            Сообщение отредактировано: Extremo -
              Может у кого-нибудь есть проект с рабочим Chart'ом? Может хоть его переделаю. Не создаются Серии(
              такое чувство, что у меня компонент не рабочий
                Цитата Extremo @
                или там как-то "особенно" щёлкать нужно?
                Нет, вот так, как ты написал, и нужно. Можешь еще попробовать двойной щелчок на Chart-е в Object Inspector-е (или на форме, результат должен быть одинаковый). Ну, а если компонент Chart-таки не рабочий - то тебе ничего не поможет. Тогда и создание серий программно может не сработать.

                Вот это, например:
                ExpandedWrap disabled
                  procedure TForm1.Button1Click(Sender: TObject);
                  var
                    MyLineSerie: TLineSeries;
                    i, Value: Integer;
                  begin
                    MyLineSerie := TLineSeries.Create(Chart1);
                    MyLineSerie.LinePen.Color := clBlue;
                   
                    Chart1.AddSeries(MyLineSerie);
                    for i := 0 to 20 do
                    begin
                      Value := Random(100);
                      (Chart1.Series[0] as TLineSeries).Add(Value, IntToStr(Value), clBlack);
                    end;
                  end;

                (по-моему, ничем от Дельфи не отличается), прекрасно работает на Lazarus 0.9.28.2 beta под WinXP SP3. Создается серия, и заполняется случайными значениями.
                  Настройки так и не смог открыть..Что-то мне кажется нет их, как таковых. У вас есть?
                  Сделал всё программно, исходники взял из \components\tachart\demo
                  Спасибо за помощь.
                    ExpandedWrap disabled
                      unit Unit3;
                       
                      {$mode objfpc}{$H+}
                       
                      interface
                       
                      uses
                        Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
                        TAGraph, StdCtrls,TASeries,math;
                       
                      type
                       
                        { TForm3 }
                       
                        TForm3 = class(TForm)
                          Button1: TButton;
                          Chart1: TChart;
                          Edit1: TEdit;
                          Edit2: TEdit;
                         procedure Button1Click(Sender: TObject);
                         private
                         s: TSerie;
                          qw: TSerie;
                        public
                          { public declarations }
                        end;
                       
                      var
                        Form3: TForm3;
                        IntPr,IntS,MNL: real;
                        b,a: real;
                      implementation
                      //uses Unit1, Unit2;
                      { TForm3 }
                      procedure pramoug (a,b: real; n: integer; var s:real);
                      var
                      h,f,x: real; i: integer;
                      *код*
                      s:=s*h;
                      end;
                       
                      procedure Simpson (a,b: real; n: integer; var s2:real);
                      var
                      h,c,f,x: real; i: integer;
                      *код*
                      s2:=h*(3+5*exp(sin(-a))*cos(a)+3+5*exp(sin(-b))*cos(b)+s2)/3;
                      end;
                       
                      procedure TForm3.Button1Click(Sender: TObject);
                      var x:real;
                      begin
                      a:=strtofloat(edit1.text);
                        b:=strtofloat(edit2.text);
                      Chart1.BottomAxis.Visible :=true;
                      Chart1.LeftAxis.Visible :=true;
                      qw:= TSerie.Create(Chart1);
                           qw.ShowLines := true;
                           qw.ShowPoints := false;
                          qw.Pointer.Style := psRectangle;
                      chart1.Visible:=true;
                      MNL:=3*b-5*exp(-sin(b))-(3*a-5*exp(-sin(a)));
                      qw.Clear; {Построение графика для метода прямоугольников}
                         x:=10;
                         while x<=200 do
                         begin
                           pramoug(a,b,ceil(x),IntPr);
                           qw.AddXY(x,abs(MNL-IntPr),'',clred);
                           x:=x+10;
                         end;
                       
                      s:= TSerie.Create(Chart1);
                           s.ShowLines := true;
                      s.Clear; {Построение графика для метода Симпсона}
                         x:=10;
                         while x<=200 do
                         begin
                           Simpson(a,b,ceil(x),IntS);
                           s.AddXY(x,abs(MNL-IntS),'',clgreen);
                           x:=x+10;
                         end;
                      end;
                       
                      initialization
                        {$I unit3.lrs}
                       
                      end.
                    Щас вот строю второй график( line+line), но почему-то не выводит на chart ничего :-?
                      Цитата Extremo @
                      почему-то не выводит на chart ничего
                      Как ты хочешь, чтоб тебе помогли, если не показываешь код вычисления IntPr и IntS? Эти значения вычисляются нормально, просто не отображаются, или даже не вычисляются? В каком интервале ты работаешь (содержимое Edit1/Edit2)? Это что, все надо телепатически определить? Почему вместо того, чтоб создать TLineSerie ты создаешь просто TSerie? Откуда программа знаешь, как с ней работать (что именно добавлять, точку или линию, например)?

                      В конце концов, где ты созданную серию добавляешь к Чарту (я ж выше показывал, как именно это делается)? AddSeries где? Ну заполнилась Серия. Дальше что? Откуда Чарт знает, что ее надо отображать, ты не подумал?
                        вот мой проект..
                        Когда визуализацию метода делал, всё нормально, потом исследование начал проводить погрешностей, не получается, хотя всё по аналогии делал
                        Прикреплённый файлПрикреплённый файлЛАЗАРУС.zip (175.31 Кбайт, скачиваний: 468)
                          volvo877 посмотрите пожалуйста, в чём ошибка у меня :(
                            Я ж сказал, где ошибка.

                            1) у меня твой проект вообще отказался компилироваться, пока я не добавил в список Uses для Unit2 и Unit3 еще и TAChartUtils (именно там описано перечисление TSeriesPointerStyle, в частности psRectangle, который ты используешь).

                            2) форма "Визуализация". Где к чарту добавляется серия? Создается она - вижу, но вот добавление - нет.
                            Цитата
                            ExpandedWrap disabled
                              Chart1.AddSerie(d);
                            это просто синтаксическая ошибка, нет метода AddSerie, есть только AddSeries. Исправляй.

                            3) форма "Графики погрешностей" - те же яйца, только в профиль. На этот раз нет ни AddSeries, ни даже AddSerie, никаких ошибок, все компилируется, но не работает. В общем, проект, который откомпилировался и отработал (показал все графики) - в аттаче. Но кодировка могла сбиться, у меня не русская Windows, если что.
                            Прикреплённый файлПрикреплённый файлproject_02.zip (28.75 Кбайт, скачиваний: 574)
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0387 ]   [ 16 queries used ]   [ Generated: 14.05.24, 06:46 GMT ]