|
Вопрос # 1 392/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты! Необходимо удалять часть графика Chart с помощью мыши выделением. Как можно создать такой обработчик событий. Да часть графика должна удаляться от min до max по вертикали. Подскажите пожалуйста буду примного благодарен!
 |
Вопрос задал: Lion (статус: Посетитель)
Вопрос отправлен: 4 марта 2008, 07:35
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 6 марта 2008, 05:37; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 4 марта 2008, 23:11 [#1]:
Наверно я огорчу, но TChart не предназначен для такого. Можно попробывать разбить график на две части и рисовать два
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Lion (статус: Посетитель), 5 марта 2008, 03:37 [#2]:
Хочу немного пояснить свой вопрос!
Данные снимаются с АЦП, сохраняются в текстовый файл, а оттуда уже отображаются на графике. По снятым данным необходимо произвести расчёт, но для него необходимо отбросить часть графика с помехами. Такие части находятся в начале и в конце графика. Мне необходимо хотя бы определять точку по оси Х с момента выделения, а затем в текстовом файле эти данные убрать.
Надеюсь мой вопрос понятен.
|
|
Вадим К (статус: Академик), 5 марта 2008, 22:19 [#3]:
Ну тогда можно по простому. Ставим две кнопки с названиями "выбрать начано диапазона" и "выбрать конец дианазона". Заводим глобальную переменную diapazon (или как свойство формы) типа integer;
с следующим условием 1 - выбираем начало диапазона, 2 - конец, 0 - неопределённость. (такие состояния всегда надо).
по клику на первую кнопку записываем diapazon := 1; для второй - 2.
Теперь нужно для Chart создать событие MouseDown и туда пишем такое
case diapazon of
1: begin
x1 := Series1.XScreenToValue(X);
y1 := Series1.YScreenToValue(Y);
point1select :=true;
end;
2:
begin
x2 := Series1.XScreenToValue(X);
y2 := Series1.YScreenToValue(Y);
point2select :=true;
end;
end;
<code>
и для кнопки "расчёт" (или может она будет называеться "обработка") пишем такое
<code>
if not (point1select and point2select) then
begin
ShowMessage('Надо выбрать точку начала и конца!');
exit;
end;
//
//а тут собственно обработка
В целом, это идея, а вы развивайте
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Lion (статус: Посетитель), 6 марта 2008, 05:37 [#4]:
Спасибо очень помогло! Дальше разберусь сам.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|