Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизКак бы мне попасть линией от начала до текущей позиции TrackBar Найти похожие ветки
← →
AV © (2012-07-18 15:57) [0]переопределил так
procedure TMyTB.Paint;
var
pw: integer;
pc: Integer;
begin
inherited;
pw := Canvas.Pen.Width;
pc := Canvas.Pen.Color;
Canvas.Pen.Width := 5;
Canvas.Pen.Color := clRed;
Canvas.MoveTo(10 , 0 );
Canvas.LineTo(Value * 4 , 0);
Canvas.Pen.Color := clGreen;
Canvas.MoveTo(10 , 5 );
Canvas.LineTo(Value * 3 , 5);
Canvas.Pen.Color := pc;
Canvas.Pen.Width := pw;
end;
картинка такая
http://ge.tt/4w82kfK
← →
AV © (2012-07-18 16:01) [1]Value - это Position
4, 3 - "коэффициенты"
как видно, 4(красным) - многовато
а 3 - почти, но тоже не то
а как правильно будет?
(не столько подгон до нужного интересует, сколько правило, по которому вычислять)
← →
Юрий Зотов © (2012-07-18 16:11) [2]> правило, по которому вычислять
Дык... Пропорция? Шкала же линейная.
← →
AV © (2012-07-18 16:25) [3]не соображу, какая
а если еще длина формы поменяется(трэкбары динамически создаются, под размеры формы) - то опять не то.
если так
Canvas.Pen.Color := clRed;
Canvas.MoveTo(10 , 0 );
Canvas.LineTo( Round( Width/100 * Value) , 0);
то так
http://ge.tt/1UennfK/v/0
← →
Юрий Зотов © (2012-07-19 03:28) [4]ЛП и ПП - ширина левого и правого полей трэкбара.
Canvas.MoveTo(ЛП , 0 );
Canvas.LineTo(ЛП + MulDiv(Width - ЛП - ПП, Value, 100));
← →
Юрий Зотов © (2012-07-19 03:35) [5]Точнее, так:
Canvas.MoveTo(ЛП , 0 );
Canvas.LineTo(ЛП + MulDiv(Width - ЛП - ПП, Position - Min, Max - Min));
← →
Юрий Зотов © (2012-07-19 03:59) [6]И посмотри сообщение TBM_GETCHANNELRECT.
← →
AV © (2012-07-19 09:42) [7]да, примерно, правильно. А дальше и не надо.
Спасибо.
← →
Юрий Зотов © (2012-07-19 09:57) [8]Можно попробовать уменьшить ошибку.
var D: Double;
Canvas.MoveTo(ЛП , 0 );
D := (Width - ЛП - ПП) * (Position - Min) / (Max - Min);
Canvas.LineTo(ЛП + Round(D));
← →
AV © (2012-07-19 11:17) [9]ага, точнее получается.
Все, сдаю как есть.
Спасибо, д.Юра!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.06 c