Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 09:41   #1
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию Работа с компонентом Chart

У меня такой вопрос есть Chart нужно сделать чтоб в процессе работы с ним можно было выставлять параметры графика т.е создал панельку на графике(ко-во делений Х,Y;Интервал времени от и до; диапазон значений;Сетка Х,СеткаY ).Прост сам не когда не работал с этим компонентом помогите кто чем может.
Код:
 TtrendThread = class(TThread)
     private
     protected
     procedure Execute; override;
     end;

  type
  TForm3 = class(TForm)
    Chart1: TChart;
    Timer1: TTimer;
    Panel1: TPanel;
    Series1: TFastLineSeries;
    SG_graph: TStringGrid;
    PopupMenu1: TPopupMenu;
    Pn_edit: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Pn_up: TPanel;
    Label4: TLabel;
    me_MinTm: TMaskEdit;
    meMaxTm: TMaskEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    me_MinFz: TEdit;
    me_MaxFz: TEdit;
    se_TickX: TSpinEdit;
    se_TickY: TSpinEdit;
    bt_Da: TButton;
    bt_Net: TButton;
    Panel2: TPanel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    N1: TMenuItem;
    N2: TMenuItem;
    Y1: TMenuItem;
    N3: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
TrendThread:TtrendThread;
 Form3: TForm3;
procedure StartTrend;
implementation
    uses U_Main;

  {$R *.dfm}

procedure StartTrend;
begin
TrendThread:=TtrendThread.Create(True);
 with TrendThread do begin
  Priority:=tpNormal;
  FreeOnTerminate:=True;
  Resume;
 end;
end;

Procedure TtrendThread.Execute;
var
d,t:TDateTime;
Hour, Min, Sec, MSec: Word;
begin
d:=time;
if d>Form3.Chart1.BottomAxis.Maximum then
  begin
    d:=Form3.Chart1.BottomAxis.Maximum;
    DecodeTime(d,Hour, Min, Sec, MSec);
    Min:=Min+3; //надо сделать проверку на минуты
    T:= EncodeTime(Hour, Min, Sec, MSec);
    Form3.Chart1.BottomAxis.SetMinMax(d,t);
  end;
Form3.Chart1.series[0].AddXY(d,value[9]);
Form3.SG_graph.Cells[1,0]:=FloatToStr(value[9]);
end;


procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TForm3.Timer1Timer(Sender: TObject);
begin
StartTrend;
sleep(100);
end;

procedure TForm3.FormCreate(Sender: TObject);
var d,t:TDateTime;
    Hour, Min, Sec, MSec: Word;
begin
LongTimeFormat:='HH:MM:SS.ZZ';{Н-нда...}
d:=Time;
DecodeTime( D, Hour, Min, Sec, MSec);
Min:=Min+3;
T:= EncodeTime(Hour, Min, Sec, MSec);
Chart1.BottomAxis.SetMinMax(d,t);
end;

end.
KuevProger вне форума Ответить с цитированием
Старый 27.04.2009, 09:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с ним можно было выставлять параметры графика
Какие из них?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2009, 12:10   #3
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какие из них?
мне надо сделать чтоб все эти параметры можно было выставлять

Код:
 type
    Panel1: TPanel;
    PopupMenu1: TPopupMenu;
    Pn_edit: TPanel;
    Pn_up: TPanel;
    me_MinTm: TMaskEdit;
    meMaxTm: TMaskEdit;
    me_MinFz: TEdit;
    me_MaxFz: TEdit;
    se_TickX: TSpinEdit;
    se_TickY: TSpinEdit;
    bt_Da: TButton;
    bt_Net: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;

Последний раз редактировалось KuevProger; 27.04.2009 в 12:13.
KuevProger вне форума Ответить с цитированием
Старый 27.04.2009, 12:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Интервал времени от и до;
Впервые слышу чтоб у Чарта такие параметры были...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2009, 12:16   #5
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию

Я хочу сделать чтоб при работе с графиком вызывалось контекстное меню и там в Pn_edit выбираешь необходимые параметры которые нужно изменить

Цитата:
Сообщение от Stilet Посмотреть сообщение
Впервые слышу чтоб у Чарта такие параметры были...
ммм... значет ченибуть буду кумекать... на насчет остальных?

Последний раз редактировалось Stilet; 27.04.2009 в 12:27.
KuevProger вне форума Ответить с цитированием
Старый 27.04.2009, 12:29   #6
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию

У меня по оси Х идет промежуток времени в 3 мин после этого онн очищается и идет заново можноли сделать чтоб промежуток выставлялся
с me_MinTm: TMaskEdit;
meMaxTm: TMaskEdit; или нет?
KuevProger вне форума Ответить с цитированием
Старый 27.04.2009, 12:29   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на насчет остальных?
Ты можеш нормально обьяснить что хочешь?
Во например - "диапазон значений" - что это по твоему, значения точек на графике. или масштаб показываемых точек?
Ну и по остальному, нормально обрисуй ситуацию
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2009, 12:46   #8
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию

диапазон значений-Количество значений по оси Y me_MinFz: TEdit;-мин
me_MaxFz: TEdit;-макс(пр. от 0 до 100). Делений по оси Х и по оси Y se_TickX: TSpinEdit;se_TickY: TSpinEdit;(пр. в промежутке м/у 0 и 1);
Интервал времени-промежуток времени выставляющийся по оси Х с me_MinTm: TMaskEdit;meMaxTm: TMaskEdit;. Ну и сетки по осям
ЗЫ понятно объяснил или нет...

Последний раз редактировалось KuevProger; 27.04.2009 в 12:58.
KuevProger вне форума Ответить с цитированием
Старый 30.04.2009, 10:48   #9
Karyaka
 
Регистрация: 14.04.2009
Сообщений: 4
По умолчанию

Чтобы изменять шкалу осей графика необходимо сначала отключить автоматическое формирование осей и задать потом новые значения
напр.

Код:
with chart1 do
  begin
   BottomAxis.Automatic:=false;
   BottomAxis.maximum:=100;
   BottomAxis.minimum:=-1;

   LeftAxis.Automatic:=false;
   LeftAxis.maximum:=100;
   LeftAxis.minimum:=0;
  end;

Последний раз редактировалось Stilet; 30.04.2009 в 11:10.
Karyaka вне форума Ответить с цитированием
Старый 04.05.2009, 12:28   #10
KuevProger
Пользователь
 
Регистрация: 16.03.2009
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Karyaka Посмотреть сообщение
Чтобы изменять шкалу осей графика необходимо сначала отключить автоматическое формирование осей и задать потом новые значения
напр.

Код:
with chart1 do
  begin
   BottomAxis.Automatic:=false;
   BottomAxis.maximum:=100;
   BottomAxis.minimum:=-1;

   LeftAxis.Automatic:=false;
   LeftAxis.maximum:=100;
   LeftAxis.minimum:=0;
  end;
А как присвоить bottomAxis к EDIT-ту? т.е чтоб можно было выставлять с едитов????
KuevProger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с динамичексим компонентом Sveta22 Помощь студентам 15 14.11.2008 17:26
Поделитесь компонентом Михаил Юрьевич Компоненты Delphi 2 27.04.2008 10:52
Помогите пожалуста с компонентом Terran Компоненты Delphi 3 02.02.2008 14:28
Работа с компонентом StringGrid! Abbatik Помощь студентам 2 24.11.2007 17:20