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

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

Помогите чайнику! [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]

Ну, если очень хочется, то можно так - делаешь переменную - позиция скроллбара. Потом проверка - если пользователь тянет мышкой над картинкой, то изменять значение этой переменной. Когда она меняется перерисовываешь картинку а поверх неё рисуешь/копируешь тот елемент за который как будто тянет пользователь.

Я знаю что это не совсем то эффективно или оптимально, но у меня работает.


Наверх

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