Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Как заставить кнопку мигать ?   Найти похожие ветки 

 
kudatsky   (2007-11-04 10:59) [0]

Речь идёт о кнопках TButton,TBitBtn,TSpeedButton,TToolButton


 
homm ©   (2007-11-04 11:19) [1]

Мысленным усилием.
Ни разу не видел, что-бы кнопка мегала. Что нужно?


 
kudatsky   (2007-11-04 11:28) [2]

Делаю голосовой Help, а сопровождать его будет мигание кнопок.
В общем, у меня только-что нечто получилось. Может, на этом и остановлюсь.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(Counter);
if Odd(Counter) then
  ToolButton3.ImageIndex:=2
  else
  ToolButton3.ImageIndex:=4;
end;

Т.е. мигание идёт за счёт смены картинок.


 
homm ©   (2007-11-04 11:37) [3]

Что такое «мигать»?


 
homm ©   (2007-11-04 11:43) [4]

Может быть так подойдет?

procedure TForm1.Timer1Timer(Sender: TObject);
var
 r: TRect;
 DC: HDC;
begin
 GetWindowRect(Button1.Handle, R);
 DC := GetDC(0);
 BitBlt(DC, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, DC, R.Top, R.Left, PATINVERT);
 ReleaseDC(0, DC);
end;


 
kudatsky   (2007-11-04 12:13) [5]

Хорошая мысль. Но получается только с TButton и его потомками, т.к. к
TToolButton нет свойства Handle


 
Anatoly Podgoretsky ©   (2007-11-04 12:24) [6]


> kudatsky   (04.11.07 11:28) [2]

У TButton нет свойства ImageIndex


 
Kolan ©   (2007-11-04 12:37) [7]

> Делаю голосовой Help

Сними видео и не мучайся.


 
homm ©   (2007-11-04 12:38) [8]

> [5] kudatsky   (04.11.07 12:13)
> TToolButton нет свойства Handle

Вот так работает с любым контроллом.

procedure TForm1.Button1Click(Sender: TObject);
var
 DC: HDC;
 Ctrl: TControl;
begin
 Ctrl := Image1;
 Inc(Counter);

 if Odd(Counter) then begin
   if (Ctrl is TWinControl) then begin
     DC := GetDC((Ctrl as TWinControl).Handle);
     BitBlt(DC, 0, 0, Ctrl.Width, Ctrl.Height, 0, 0, 0, PATINVERT);
     ReleaseDC((Ctrl as TWinControl).Handle, DC);
   end else begin
     DC := GetDC(Ctrl.Parent.Handle);
     BitBlt(DC, Ctrl.Left, Ctrl.Top, Ctrl.Width, Ctrl.Height, 0, 0, 0, PATINVERT);
     ReleaseDC(Ctrl.Parent.Handle, DC);
   end;
 end else begin
   Ctrl.Invalidate;
 end;
end;


 
kudatsky   (2007-11-04 12:55) [9]

Удачное решение. Спасибо !



Страницы: 1 вся ветка

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
2-1194093148
kolj
2007-11-03 15:32
2007.11.25
Помогите пожалуйста


15-1192786540
atruhin
2007-10-19 13:35
2007.11.25
Где найти описание uxtheme.dll


15-1192955430
Virgo_Style
2007-10-21 12:30
2007.11.25
"экстраполяция" рисунка


15-1192731111
Чайник
2007-10-18 22:11
2007.11.25
Это троян? Или что?


3-1183999224
Yurij-7
2007-07-09 20:40
2007.11.25
FireBird Export and Import Data