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

Вниз

TProgressBar - соотнести клик мышкой и свойство Position   Найти похожие ветки 

 
DDDeN   (2007-11-15 13:32) [0]

Есть прогресс бар, свойство Max может принимать различные значения. Как, имея координаты тыка мышки, связать их с свойством Position? Чтобы можно было устанавливать текущую позицию кликом мышки.

Получить координаты тыка просто:


procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ShowMessage("X = " + IntToStr(X) + ", " + "Y = " + IntToStr(Y));
end;


 
Kolan ©   (2007-11-15 13:38) [1]

Есть такой контрол TTrackBar на вкладке Win32 — он не сгодится? Он так умеет.


 
Anatoly Podgoretsky ©   (2007-11-15 13:54) [2]

А самому посчитать, это же задача из начальной школы, нахождение пропорций.


 
DDDeN   (2007-11-15 14:26) [3]


> Kolan ©   (15.11.07 13:38) [1]

Он, к сожалению не годится...


> Anatoly Podgoretsky ©   (15.11.07 13:54) [2]

Извините... Просто мозг уже не очень соображает :)


 
Vice____   (2007-11-15 14:27) [4]

ProgressBar1.Position:=  (((x)/(ProgressBar1.Width/100))*(ProgressBar1.Max/100);


 
Anatoly Podgoretsky ©   (2007-11-15 14:31) [5]

> DDDeN  (15.11.2007 14:26:03)  [3]

Вообще или сейчас?


 
DDDeN   (2007-11-15 14:35) [6]


> Вообще или сейчас?

Сейчас...
Сказывается конец рабочего дня


 
DDDeN   (2007-11-15 14:35) [7]


> Vice____   (15.11.07 14:27) [4]

Спасибо, но у данного метода есть погрешность при увеличении Х увеличивается и погрешность.


 
Германн ©   (2007-11-15 15:14) [8]


> Спасибо, но у данного метода есть погрешность при увеличении
> Х увеличивается и погрешность.

А справку почитать по событию OnMouseDown? И понять что есть Х в этом событии?


 
Anatoly Podgoretsky ©   (2007-11-15 15:40) [9]


> Спасибо, но у данного метода есть погрешность при увеличении
> Х увеличивается и погрешность.


> Сейчас...
> Сказывается конец рабочего дня

Тогда пройдет после отдыха.

> Спасибо, но у данного метода есть погрешность при увеличении
> Х увеличивается и погрешность.

Надо делать поправку, видимо 0 не равно началу шкалы, она чуть левее. Тоже по поводу конца шкалы, но это требует проверки.


 
DDDeN   (2007-11-16 04:30) [10]


> Германн ©   (15.11.07 15:14) [8]
А справку почитать по событию OnMouseDown? И понять что есть Х в этом событии?

В справке сказано: "X and Y are the pixel coordinates of the mouse pointer in the client area of the Sender." - Х и У - это координаты в пикселях указателя мыши в клиентской части компонента.


> Anatoly Podgoretsky ©   (15.11.07 15:40) [9]
Надо делать поправку, видимо 0 не равно началу шкалы, она чуть левее. Тоже по поводу конца шкалы, но это требует проверки.

Шкала начинается с нуля, я проверил опытным путем, а вот заканчивается не тем числов, которому равна ширина компонента, а на 3 пикселя меньше (при разных ширинах компонента).


 
Германн ©   (2007-11-16 04:34) [11]


> DDDeN   (16.11.07 04:30) [10]
>
>
> > Германн ©   (15.11.07 15:14) [8]
> А справку почитать по событию OnMouseDown? И понять что
> есть Х в этом событии?
>
> В справке сказано: "X and Y are the pixel coordinates of
> the mouse pointer in the client area of the Sender." - Х
> и У - это координаты в пикселях указателя мыши в клиентской
> части компонента.
>
>

Ага. Прочитал таки. И какие твои мысли по поводу "клиентской части компонента"?

А всё прочее от "округления".


 
DDDeN   (2007-11-16 08:55) [12]


> Германн ©   (16.11.07 04:34) [11]

ProgressBar1.ClientWidth


 
DDDeN   (2007-11-16 09:19) [13]

Решение найдено!!!

ProgressBar1.Position := (X * ProgressBar1.Max) div ProgressBar1.ClientWidth;


 
ht9   (2007-11-20 03:12) [14]

position:=round(X*(max-min)/width);



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1195729770
Layner
2007-11-22 14:09
2007.12.16
Как обновить интерфейс, что бы Transparent картики были прозрачн.


2-1195324052
programmist87
2007-11-17 21:27
2007.12.16
SaveDialog


2-1195630538
Neket
2007-11-21 10:35
2007.12.16
Округление


2-1195635334
FaTRuS
2007-11-21 11:55
2007.12.16
Поиск по всей базе данных


15-1195153697
Dark
2007-11-15 22:08
2007.12.16
Форум и управление сообщениями