Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компоненты: индикатор отклонения [D7, WinXP]


intNaked ©   (2007-04-26 12:00:00) 

Добрый день.

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

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

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


vl_chel   (2007-04-27 11:55:00) [1]

Есть готовое решение
привожу выдержку из 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;


clickmaker   (2007-04-26 15:25:00) [2]


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

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


Darvin   (2007-04-26 14:53:00) [3]

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


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

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

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

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


clickmaker   (2007-04-26 12:42:00) [5]


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

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


tesseract   (2007-04-26 12:40:00) [6]

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


clickmaker   (2007-04-26 12:38:00) [7]


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

PaintBox


Jeer   (2007-04-26 12:36:00) [8]


> ProgressBar


0 == 50


Наверх

Титульная страница Поиск, карта сайта Написать письмо