Главная страница
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.016 c
6-1164715186
-=MAXIMUS=-
2006-11-28 14:59
2007.06.24
как отправить на URL файл XML и получить ответ?


2-1180607805
Serg1968
2007-05-31 14:36
2007.06.24
О запуске копии формы


8-1160757993
Minesweeper
2006-10-13 20:46
2007.06.24
Flash- обмен информацией с формой


9-1152798901
VolanD666
2006-07-13 17:55
2007.06.24
Правильно ли я делаю?


2-1180854110
Kley
2007-06-03 11:01
2007.06.24
Exel из Делфи