Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #10  
Старый 13.10.2010, 20:03
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

вот тут я когда-то переделывал TrackBar для плеера
добавил событие OnUserChange, которое вызывается только если положение слайдера вручную меняется юзером
Код:
unit MediaTrackBar;

interface

uses
  SysUtils, Classes, Controls, ComCtrls;

type
  TMediaTrackBar = class(TTrackBar)
  private
    FMouseDown: Boolean;
    FOnUserChange: TNotifyEvent;
  protected
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    procedure Changed;override;  
  public
    constructor Create(AOwner: TComponent);override;
  published
    property OnUserChange: TNotifyEvent read FOnUserChange write FOnUserChange;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TMediaTrackBar]);
end;

{ TMediaTrackBar }

procedure TMediaTrackBar.Changed;
begin
  if FMouseDown then
  begin
    if Assigned(FOnUserChange) then
      FOnUserChange(Self);
  end;
  inherited Changed;
end;

constructor TMediaTrackBar.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FMouseDown:=False;
end;

procedure TMediaTrackBar.MouseDown(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FMouseDown:=True;
  inherited MouseDown(Button,Shift,X,Y);
end;

procedure TMediaTrackBar.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  FMouseDown:=False;
  inherited MouseUp(Button,Shift,X,Y);
end;

end.
P.S готовый компонент для Delphi 7

Последний раз редактировалось ryderx34, 13.10.2010 в 20:06.
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025