Вверх ↑
Этот топик читают: Гость
Ответов: 230
Рейтинг: 1
#1: 2014-02-14 01:04:52 ЛС | профиль | цитата
почему иногда когда нажимаешь скрыть,на панель не действует анимация,она просто пропадает
code_33068.txt
карма: 1

0
файлы: 1code_33068.txt [915B] [220]
Ответов: 1343
Рейтинг: 31
#2: 2014-02-14 18:25:13 ЛС | профиль | цитата
это у тебя что то чисто системное (возможно прорисовка заедает)

проверил Win 7 64
норм
карма: 2

0
Ответов: 2059
Рейтинг: 132
#3: 2014-02-14 18:48:13 ЛС | профиль | цитата
XP - тоже работает.
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#4: 2014-02-14 20:00:32 ЛС | профиль | цитата
Rysik, flint2, а если на кнопку не нажимать, а быстро щёлкнуть мышкой ?
lll0 писал(а):
иногда когда нажимаешь скрыть,на панель не действует анимация,она просто пропадает
Подтверждаю.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1343
Рейтинг: 31
#5: 2014-02-14 21:12:28 ЛС | профиль | цитата
пусть тогда будет так:

Warning!
Защита от детей!

code_33071.txt


карма: 2

0
файлы: 1code_33071.txt [1.1KB] [257]
Ответов: 230
Рейтинг: 1
#6: 2014-02-15 16:27:04 ЛС | профиль | цитата
Rysik, все равно иногда не работает
------------ Дoбавленo в 16.27:
в самом компоненте ошибка
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#7: 2014-02-15 16:30:09 ЛС | профиль | цитата
lll0 писал(а):
в самом компоненте ошибка
В каком ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 230
Рейтинг: 1
#8: 2014-02-15 16:40:32 ЛС | профиль | цитата
Tad, вот,ппочему-то именно когда скрываешь панель
code_33079.txt
------------ Дoбавленo в 16.39:
вот в этом
Add(UseWinAnimation,139697,161,245)
{
ControlManager="1"
Time=700
ActivationMode=1
SLIDE=0
VER_POSITIVE=0
}

------------ Дoбавленo в 16.40:
то работает,то нет
карма: 1

0
файлы: 1code_33079.txt [870B] [180]
Разработчик
Ответов: 26153
Рейтинг: 2127
#9: 2014-02-15 17:45:08 ЛС | профиль | цитата
lll0 писал(а):
в самом компоненте ошибка

Компонент ни делает ничего, кроме как устанавливает нужные флаги и запускает API функциюю AnimateWindow, находящуюся в user32.dll
------------ Дoбавленo в 17.45:
lll0, попробуй задокументировать функцию перерисовки окна, не исключено, что она лишняя

procedure THIUseWinAnimation._work_doAnimation;
var
sControl: PControl;
dwFlags: DWord;
begin
if not Assigned(_prop_ControlManager) then exit;
sControl := _prop_ControlManager.ctrlpoint;
case _prop_ActivationMode of
0: dwFlags := AW_ACTIVATE;
1: dwFlags := AW_HIDE;
end;
if _prop_CENTER then dwFlags := AW_CENTER or dwFlags;
if _prop_SLIDE then dwFlags := AW_SLIDE or dwFlags;
if _prop_HOR_POSITIVE then dwFlags := AW_HOR_POSITIVE or dwFlags;
if _prop_HOR_NEGATIVE then dwFlags := AW_HOR_NEGATIVE or dwFlags;
if _prop_VER_POSITIVE then dwFlags := AW_VER_POSITIVE or dwFlags;
if _prop_VER_NEGATIVE then dwFlags := AW_VER_NEGATIVE or dwFlags;
AnimateWindow(sControl.Handle, _prop_Time, dwFlags);
// RedrawWindow(sControl.Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
end;
Если все будет работать нормально, то я исправлю.
карма: 22

0
Ответов: 230
Рейтинг: 1
#10: 2014-02-15 21:02:49 ЛС | профиль | цитата
nesco,вот что получилось
unit hiUseWinAnimation;

interface

uses Windows,Kol,Share,Debug,Win;

type
THIUseWinAnimation = class(TDebug)
private
public
_prop_Time: integer;
_prop_ActivationMode: byte;
_prop_CENTER: boolean;
_prop_SLIDE: boolean;
_prop_HOR_POSITIVE: boolean;
_prop_HOR_NEGATIVE: boolean;
_prop_VER_POSITIVE: boolean;
_prop_VER_NEGATIVE: boolean;

_prop_ControlManager:IControlManager;
procedure _work_doAnimation(var _Data:TData; Index:word);
procedure _work_doActivationMode(var _Data:TData; Index:word);
procedure _work_doCENTER(var _Data:TData; Index:word);
procedure _work_doSLIDE(var _Data:TData; Index:word);
procedure _work_doHOR_POSITIVE(var _Data:TData; Index:word);
procedure _work_doHOR_NEGATIVE(var _Data:TData; Index:word);
procedure _work_doVER_POSITIVE(var _Data:TData; Index:word);
procedure _work_doVER_NEGATIVE(var _Data:TData; Index:word);
end;

implementation

function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; stdcall; external 'user32.dll' name 'AnimateWindow';

procedure THIUseWinAnimation._work_doAnimation;
var
sControl: PControl;
dwFlags: DWord;
begin
if not Assigned(_prop_ControlManager) then exit;
sControl := _prop_ControlManager.ctrlpoint;
case _prop_ActivationMode of
0: dwFlags := AW_ACTIVATE;
1: dwFlags := AW_HIDE;
end;
if _prop_CENTER then dwFlags := AW_CENTER or dwFlags;
if _prop_SLIDE then dwFlags := AW_SLIDE or dwFlags;
if _prop_HOR_POSITIVE then dwFlags := AW_HOR_POSITIVE or dwFlags;
if _prop_HOR_NEGATIVE then dwFlags := AW_HOR_NEGATIVE or dwFlags;
if _prop_VER_POSITIVE then dwFlags := AW_VER_POSITIVE or dwFlags;
if _prop_VER_NEGATIVE then dwFlags := AW_VER_NEGATIVE or dwFlags;
AnimateWindow(sControl.Handle, _prop_Time, dwFlags);
//RedrawWindow(sControl.Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
end;

procedure THIUseWinAnimation._work_doActivationMode;
begin
_prop_ActivationMode := ToInteger(_Data);
end;

procedure THIUseWinAnimation._work_doCENTER;
begin
_prop_CENTER := ReadBool(_Data);
end;

procedure THIUseWinAnimation._work_doSLIDE;
begin
_prop_SLIDE := ReadBool(_Data);
end;

procedure THIUseWinAnimation._work_doHOR_POSITIVE;
begin
_prop_HOR_POSITIVE := ReadBool(_Data);
end;

procedure THIUseWinAnimation._work_doHOR_NEGATIVE;
begin
_prop_HOR_NEGATIVE := ReadBool(_Data);
end;

procedure THIUseWinAnimation._work_doVER_POSITIVE;
begin
_prop_VER_POSITIVE := ReadBool(_Data);
end;

procedure THIUseWinAnimation._work_doVER_NEGATIVE;
begin
_prop_VER_NEGATIVE := ReadBool(_Data);
end;

end.
карма: 1

0
Ответов: 824
Рейтинг: 138
#11: 2014-02-15 21:06:58 ЛС | профиль | цитата
nesco писал(а):
Если все будет работать нормально, то я исправлю.
На Win 7 x64 работает!
карма: 1

0
Ответов: 230
Рейтинг: 1
#12: 2014-02-15 21:18:00 ЛС | профиль | цитата
все равно иногда просто пропадает..
или я может не то что-то сделал
------------ Дoбавленo в 21.18:
теперь проблемы с перерисовкой
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2014-02-15 22:13:00 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:34:52
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#14: 2014-02-15 22:20:09 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:34:52
карма: 0

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#15: 2014-02-15 22:34:07 ЛС | профиль | цитата
lll0 писал(а):
теперь проблемы с перерисовкой

Как проявляются эти проблемы
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)