Форум: "Media";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизСкрыть курсор Найти похожие ветки
← →
Максиммм (2006-03-07 06:09) [0]Как при проигрываниии клипа или фильма скрыть курсор мыши если она не двигается, а если есть движение снова показать (как в привычных плеерах) ..... Заранее спасибо ....
← →
grouzd[E]v © (2006-03-07 14:52) [1]ShowCursor и MouseMove
---
... we are walking on a thin line and you better avoid the risk ...
← →
Noby (2006-03-09 15:21) [2]Сделай так...
Type
TCursorVisibleEvent = procedure (Sender: TObject; Visible : Boolean) of object;
TVideoForm = class(TForm)
....
private
private
FIdleCursor : Integer; // через сколько убирать курсор
procedure MyIdleHandler(Sender: TObject; var Done: Boolean);
end;
implementation
....
procedure TVideoForm.FormCreate(Sender: TObject);
begin
FIdleCursor := 5000;
Application.OnIdle := MyIdleHandler;
end;
procedure TVideoForm.MyIdleHandler(Sender: TObject; var Done: Boolean);
var
pt : TPoint;
begin
Done := True;
if (FIdleCursor = 0) or (csDesigning in ComponentState) or (not IsFullScreen) then exit;
if (GetTickCount - LCursorMov >= Cardinal(FIdleCursor)) then
begin
if Cursor <> crNone then
begin
RememberCursor := Self.Cursor;
Cursor := crNone;
GetCursorPos(pt);
SetCursorPos(pt.x, pt.y);
if Assigned(FOnCursorVisible) then
FOnCursorVisible(nil, False);
end;
end
else
begin
if (not IsHidden)then
begin
IsHidden := True;
GetCursorPos(pt);
SetCursorPos(pt.x, pt.y);
if Assigned(FOnCursorVisible) then
FOnCursorVisible(nil, False);
end;
end;
end;
Удобно и работает как, к примеру, Bsplayer ;-).
← →
Noby (2006-03-09 15:39) [3]Да вот еще кое что забыл... Надо повесить на форму обработчик OnMouse Move :(
Type
...
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
isFullScreen : Boolean; // просто для проверки (если в маленком окне играет то курсор не прячем)
FOnCursorVisible : TCursorVisibleEvent;
RememberCursor : TCursor;
FIdleCursor : Integer;
LMousePos : TPoint;
LCursorMov : DWord;
IsHidden : Bool;
end;
...
implementation
procedure TVideoForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
MPos : TPoint;
begin
MPos := Point(X, Y);
if (LMousePos.X <> MPos.X) or (LMousePos.Y <> MPos.Y) then
begin
LMousePos.X := MPos.X;
LMousePos.Y := MPos.Y;
LCursorMov := GetTickCount;
begin
if self.Cursor = crnone then
begin
self.Cursor := RememberCursor;
if Assigned(FOnCursorVisible) then
FOnCursorVisible(self, True);
end
else
begin
if IsHidden then
begin
IsHidden := False;
if Assigned(FOnCursorVisible) then
FOnCursorVisible(Self, True);
end;
end;
end;
end;
end;
Ну вот вроде и все...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c