![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите чайнику! [D4, Win95/98]
Grimlen © (2002-02-08 09:26:00)Подскажите, можно ли сделать из компонента TIMAGE скролбар как в WINAMP если можно то подскажите как.
Grimlen (2002-02-11 18:17:00) [1]Joiro.
Спасибо подвить та подвинула но, не совсем туда куда нужно.
Проблема заключается в следующем.
Первое, задержка с мышкой. Не хочет ползти за ней, а ползет только когда форма почти закончилась или совсем не ползет. Второе это то, что надо чтобы полз по таймеру, когда ставлю таймер с интервалом по умолчанию, да и с другим тоже slider, куда то убегать начинает за форму при этом растягивает ее.
.: Joiro :. (2002-02-11 11:09:00) [2]На форму поставь Shape 8*255 и в OnMouseMove вот это:
procedure TSG_MAIN.CSlidersMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
if ssleft in shift then
begin
Target := tshape(Sender);
MSlider := Y div 4; // Это переменная
if MSlider < 0 then MSlider := 0 else if MSlider > 64 then MSlider := 64; // Это чтобы не выходило за
SG_MAIN.Canvas.Brush.Color := clGray;
SG_MAIN.Canvas.FillRect(Rect(Target.Left,Target.Top+MSlider*4,Target.Left+9,Target.Top+3+MSlider*4));
end;
end;
Тут вместо TImage используется Shape а вместо картинки рисуется прямоуголник (Fillrect) но поменять на Copyrect из картинки и будет ползунок как в скинах.
Target - это чтобы можно одну и ту же функцию использовать для ряда слайдеров.
MSlider - это переменная с позицией - div 4 потому что ползунок 4 пикселя высотой а <0 и >64 потому что Shape 255 пикселей высотой.
Ещё надо добавить перерисовку фона каждый раз когда двигается ползунок.
Да, не слишком ясно, но в нужную сторону, я думаю подвинет.
Grimlen (2002-02-11 09:57:00) [3]Joiro.
А, можно пример а, то я что-то не совсем понял, как это все делается.
3d[Power].
А, где я могу достать этот самый RXLib ?
3d[Power] (2002-02-09 19:05:00) [4]В RxLib есть обскинованный трэкбар
.: Joiro :. (2002-02-09 15:00:00) [5]Ну, если очень хочется, то можно так - делаешь переменную - позиция скроллбара. Потом проверка - если пользователь тянет мышкой над картинкой, то изменять значение этой переменной. Когда она меняется перерисовываешь картинку а поверх неё рисуешь/копируешь тот елемент за который как будто тянет пользователь.
Я знаю что это не совсем то эффективно или оптимально, но у меня работает.