Polar_bear |
Отправлено: 08.04.2005, 08:01 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Доброе время суток есть вот такой код
CODE |
void __fastcall TDV_SpravForm::LabeledEdit3Exit(TObject *Sender)
{
Series1->XValue=StrToFloat(LabeledEdit3->Text)/1000;
}
|
Дело в том что этот код не проходит При компиляции выдается такая ошибка [C++ Error] DV_Sprav_Unit.cpp(169): E2193 Too few parameters in call to '_fastcall TChartSeries::SetXValue(int,const double)'
Напрямую обратиться в функции SetXValue() не удается она в классе объявлена в private. А что тогда делать куда засунуть этот второй параметр и что это за параметр? Дело в том что мне нужно в последствии получить значение YValue. Как его можно найти задавая значение XValue. Спасибо[CODE]
Отредактировано Polar_bear — 08/04/2005, 08:03
|
|
AVC |
Отправлено: 08.04.2005, 08:18 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
XValues Example
Many things can be done with the XValues property.
For example, you can modify its values (thus forcing the Chart to repaint):
This will change the 35th point horizontal value to 10.
LineSeries1->XValues->Value[35] = 10 ;
|
Оно ? |
|
Polar_bear |
Отправлено: 11.04.2005, 06:00 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Ммм... не совсем мне нужно просто узнать чему будет равен YValue при определенном XValue который выбираю я. Ну и как это сделать.
|
|
** Rius |
Отправлено: 11.04.2005, 06:17 |
|
Не зарегистрирован
|
Типа такого?CODE | for(int i=0; i<Series1->XValues->Count(); i++)
{
double f = 100.0;
double x = Series1->XValues->Value[i];
if(SameValue(f, x, 0.01)) Caption = Series1->YValues->Value[i];
} | |
|
Polar_bear |
Отправлено: 15.04.2005, 05:46 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Уже ближе. Но я хочу вот как. В Edit1 пользователь заносит число- это заначение Х. А во Edit2 программа возвращает значение Y. График уже построен.
|
|
Rius |
Отправлено: 15.04.2005, 08:21 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
CODE | double xs = Edit1->Text.ToDouble();
for(int i=0; i<Series1->XValues->Count(); i++)
{
double x = Series1->XValues->Value[i];
if(SameValue(xs, x, 0.01)) RichEdit1->Lines->Add(Series1->YValues->Value[i]);
} |
Если точка на линии графика, а не на точке построения, надо сравнивать соседние значения x и интерполировать y.
|
|
Polar_bear |
Отправлено: 19.04.2005, 05:57 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Ааа... вот откуда ноги растут .Об интерполяции я даже не думал Ну понял... большое спасибо. Модераторы, закрывайте тему
Отредактировано Polar_bear — 19/04/2005, 06:00
|
|