Главная страница
    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.47 MB
Время: 0.035 c
2-1195548135
Латышев
2007-11-20 11:42
2007.12.16
Выделение мышкой текста в окне чужого приложения


5-1164191017
Master_
2006-11-22 13:23
2007.12.16
MiTeC System Information Component - где взять!


11-1181309742
heilong
2007-06-08 17:35
2007.12.16
проблема с LVItemHeight в TKOLListView


2-1195587796
vaska
2007-11-20 22:43
2007.12.16
приведение cardinal


15-1195058193
VmR
2007-11-14 19:36
2007.12.16
По какому принципу изменяют версию программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский