Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 21:19   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию Изменения дизайна TrackBar полностью, вопросец

Можна ли как-то в TrackBar'е изменить дизайн полностью? Рисую сам с нуля скины в AlphaSkins, но не хочеться ради 1 компонента....
FleXik вне форума Ответить с цитированием
Старый 09.12.2012, 22:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно, но придется всю отрисовку заново изобретать. В процедуре отрисовки предусматривать отрисовку шкалы и самой ручки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2012, 21:01   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

в AlphaSkins так как я хочу никак не сделать, знает ли кто как переделать TrackBar с нуля?
FleXik вне форума Ответить с цитированием
Старый 11.12.2012, 21:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Максимум что я могу предложить из своего опыта это вот такой пример топорнячкового скина:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls;

type
  TTrackBar=class(ComCtrls.TTrackBar)
   private
      procedure wmp(var w:TWMPaint); message WM_Paint;
      procedure ebg(var w:TWMEraseBkgnd); message WM_EraseBkgnd;
  end;
  TForm2 = class(TForm)
    TrackBar1: TTrackBar;
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

{ TTrackBar }

procedure TTrackBar.ebg(var w: TWMEraseBkgnd);
var r:TRect;
begin
 r.Left:=Position;r.Top:=0;r.Right:=r.Left+Height;r.Bottom:=r.Top+Height;
 with TCanvas.Create do begin
   Handle:=w.DC;
   Brush.Style:=bsFDiagonal;
   Brush.Color:=clRed;
   FillRect(ClientRect);
   Brush.Color:=clGreen;
   Brush.Style:=bsSolid;
   Ellipse(r);
   free;
 end;
end;

procedure TTrackBar.wmp(var w: TWMPaint);
var r:TRect; DC:TCanvasDC;
begin
 if tag=Position then Exit;
 DC:=GetDC(Handle);
 if DC=0 then exit;
 r.Left:=Position*width div Max;r.Top:=0;r.Right:=r.Left+Height;r.Bottom:=r.Top+Height;
 with TCanvas.Create do begin
   Handle:=DC;
   Brush.Style:=bsFDiagonal;
   Brush.Color:=clRed;
   FillRect(ClientRect);
 Brush.Color:=clGreen;
   Brush.Style:=bsSolid;
   Ellipse(r);
   free;
 end;
 ReleaseDC(Handle,dc);
 tag:=Position;
end;

procedure TForm2.TrackBar1Change(Sender: TObject);
begin
 Caption:=IntToStr(TrackBar1.Position);
end;

end.
Зато вместо отрисовки эллипса можешь какую нить картинку отрисовывать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2012, 00:54   #5
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Походу меня не совсем поняли...

Вот код:
Код:
Trackbar1.SelStart:=Trackbar1.Min;
Trackbar1.SelEnd:=Trackbar1.Position;
Вот скрин:


Нужно просто заменить картинки: ползунка, белой полосы по которой двигается ползунок и той синей фигни которая двигается вместе с ползунком, пробовал сделать в AlphaSkins так вот там нельзя сделать чтобы "синяя фигня двигалась вместе с ползунком", ползунок же и фон делается без проблем, но меня это не устраивает.

Вот скрин плеера:

Последний раз редактировалось FleXik; 12.12.2012 в 00:59.
FleXik вне форума Ответить с цитированием
Старый 12.12.2012, 09:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Походу меня не совсем поняли...
Походу ты меня тоже )
Я дал пример самостоятельной отрисовки. Как ты его будешь использовать дело твое. Что ты там будешь рисовать, картинки или фигуры - решать тебе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2012, 09:51   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А принципиально именно в AlphaScins?
Есть набор компонент, в который одни трекбары разных форм и расцветок входят, вот название, увы, не помню
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросец по потокам stlcrash Общие вопросы Delphi 8 11.07.2016 19:36
изменения дизайна сайта Lemo HTML и CSS 11 17.06.2010 10:54