Родились сегодня:
Кожухова Дарья


Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1031

Россия, пос. Теплоозёрск, ЕАО


ID: 226425

Konstantin Shvetski

Модератор

313

Россия, Северодвинск


ID: 401284

Михаил Александров

Советник

277

Россия, Санкт-Петербург


ID: 400669

epimkin

Профессионал

205


ID: 137394

Megaloman

Мастер-Эксперт

156

Беларусь, Гомель


ID: 404002

sglisitsyn

6-й класс

42


ID: 242862

Hunter7007

Мастер-Эксперт

29

Россия, Омск


8.10.3

30.10.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-03 01:16:01-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 109298

Раздел:  Pascal / Delphi / Lazarus
Автор вопроса: Семенов Владимир Леонидович
Дата: 13.11.2007, 22:37 Консультация закрыта
Поступило ответов: 2

Ждравствуйте уважаемые эксперты!!!
У меня вопрос?
Как сделать, чтобы компонент(Tchart) показывал график путем ввода данных в строку(Tedit)?
Не могу хочу написать прогу для расчета переодичности технического обслуживания с выводом графика переодичности ТО за год, а в интернете мало что есть. Ах да строк(Tedit) должно быть 12 шт, т.к. месяцев в году 12!!!!
За ранеее благодарю!!!!!

Ответ # 193744 от Gh0stik
Здравствуйте, Семенов Владимир Леонидович!

Вам достаточно на форму разместить Ваши 12 TEdit-ы, непосредственно сам TСhart и кнопку (TButton).
Далее создаем новую серию - контекстное меню на TСhart, пункт Edit Chart..., нажимаете кнопку Add и выбираете тип серии.

После этого достаточно в обработчик по нажатии конопки прописать такой код:
procedure TForm1.Button1Click(Sender: TObject);
var k: Integer;
vv:real;
begin
with Chart1 do
begin
LeftAxis.Automatic:=true;
BottomAxis.Automatic:=True;
end;

Chart1.Series[0].Marks.Visible:=true;
for k := 1 to 5 do
begin
vv:=StrToFloat(TEdit(FindComponent(format('Edit%d',[k]))).Text);
Chart1.SeriesList[0].AddXY(k,vv,'',clRed);
end;
end;


Замечание в строке
vv:=StrToFloat(TEdit(FindComponent(format('Edit%d',[k]))).Text);
желательно делать еще и проверку на то, что объект существует, а также на правильность конвертирования из строки в вещественное число при использовании StrToFloat(). Для этого рекомендую использовать защищенный блок:
try
...
except
...
end;


Good Luck!!!

Gh0stik

Посетитель
14.11.2007, 00:18
Ответ # 193823 от Стома С.С.
Здравствуйте, Семенов Владимир Леонидович!

Предлагаю вам свое решение может черезчур раздутое

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

Приложение:


Стома С.С.

Посетитель
14.11.2007, 12:20
Мини-форум консультации # 109298
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 244

Gluck

9-й класс

Рейтинг: 61

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 43

Вадим Исаев ака sir Henry

Мастер-Эксперт

Рейтинг: 2

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0