Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Компоненты: индикатор отклонения   Найти похожие ветки 

 
intNaked   (2007-04-26 12:00) [0]

Добрый день.

Встала задача реализации в Delphi двухстороннего индикатора отклонений.
Индикатор, скажем в стиле ProgressBar, также должен иметь свойства Min(LeftValue), Max(RightValue) и "точка нуля"(Center). Так вот в зависимости от значения Position должен отклонятся в одну из сторон от точки нуля: влево или вправо. В частности точка нуля может совпадать с граничными точками.

Подскажите пожалуйста, какими путями можно это сделать, возможно без написания своего компонента, или может уже есть готовые?! Буду признателен!

С уважением, intNaked


 
Jeer ©   (2007-04-26 12:36) [1]


> ProgressBar


0 == 50


 
clickmaker ©   (2007-04-26 12:38) [2]


> без написания своего компонента

PaintBox


 
tesseract ©   (2007-04-26 12:40) [3]

два прогресбара, на вскидку.


 
clickmaker ©   (2007-04-26 12:42) [4]


> [3] tesseract ©   (26.04.07 12:40)

а он может от конца показывать?


 
intNaked   (2007-04-26 12:53) [5]

2 ПрогрессБара не катит, он действительно назад не показывает.

> [1] 0 == 50
Это что значит?

А как это можно сделать с помощью PainBox?


 
Darvin ©   (2007-04-26 14:53) [6]

Панель тонкая - шкала. Панель другая поверх первой - индикатор. И далее двигаешь вторую панель, управляя свойством Left второй панели, используя положение и размеры первой панели.


 
clickmaker ©   (2007-04-26 15:25) [7]


> как это можно сделать с помощью PainBox?

рисовать в событии OnPaint
Canvas.FillRect и т.п.


 
vl_chel ©   (2007-04-27 11:55) [8]

Есть готовое решение
привожу выдержку из dfm только то что описівает Вашу проблему
object TrackBar1: TTrackBar

   Min = -10

   Position = 0
   SliderVisible = False
   SelEnd = 0
   SelStart = -1

 end

Следует помнить, что SelStart < SelEnd иначе закраска не произойдет

пример как пользоваться надеюсь на твои значения пересчитаешь сам
procedure
TForm1.SpinEdit1Change(Sender: TObject);
begin
 if SpinEdit1.Value < 0 then begin
   TrackBar1.SelEnd := 0;
   TrackBar1.SelStart := SpinEdit1.Value;
 end else begin
   TrackBar1.SelStart := 0;
   TrackBar1.SelEnd := SpinEdit1.Value;
 end;

end;



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
15-1180039843
Nic
2007-05-25 00:50
2007.06.24
Хороший учебник по дискретной математике


2-1180593796
Soi_
2007-05-31 10:43
2007.06.24
Сортировка данных


2-1180547867
aidyn
2007-05-30 21:57
2007.06.24
Как загрузить текстовый файл в Delphi?


2-1180442520
Alexdeil
2007-05-29 16:42
2007.06.24
SQL запрос по дате и времени


15-1180352115
boriskb
2007-05-28 15:35
2007.06.24
Планы США по освоению космоса на 20 лет