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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 12:20   #1
Valera
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 86
По умолчанию Мигание кнопки SpeedButton

Добрый день.

Нужно, чтобы при нажатии на SpeedButton кнопка подмигивала некоторое время либо меняя цвет, либо фаску, а по истечении какого-то времени подсветилась одним цветом, отличным от цвета подмигивания.
Valera вне форума Ответить с цитированием
Старый 03.08.2010, 12:47   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Обрабатывайте событие OnClick;
Добавте Timer! И какую-нибудь глоб. переменную значение которой будете изменять по срабатыванию таймера до опр. значения(определит время мигания).
Ну а закрасить можно через канву(помоему)!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 13:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну а закрасить можно через канву(помоему)!
Разве канва есть у кнопок?
Тут ИМХО только переопределить класс кнопки:
Код:
unit Unit1;

interface

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

type
  TSpeedButton=class(Buttons.TSpeedButton)
   procedure wmp(var m:TWMPaint);message WM_PAINT;
  end;
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

{ TSpeedButton }

procedure TSpeedButton.wmp(var m: TWMPaint);
var c:TCanvas;
begin
if tag=0 then
 inherited
else begin
 c:=TCanvas.Create;
 c.Handle:=m.DC;
 c.Brush.Color:=clred;
 c.FillRect(ClientRect);
 c:=nil;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 SpeedButton1.Repaint;
 SpeedButton1.Tag:=not SpeedButton1.Tag;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2010, 13:01   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

можно примерно так помигать

Код:
var
  i: integer = 0;

implementation
......

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
  if i <> 10 then
  begin
    if SpeedButton1.Flat = false then
      SpeedButton1.Flat := true else
      SpeedButton1.Flat := false;
    inc(i);
  end else
  Timer1.Enabled := false;
end;
Не забываем говорить спасибо за помощь - это ведь так приятно

Последний раз редактировалось Sanprof; 03.08.2010 в 13:03.
Sanprof вне форума Ответить с цитированием
Старый 03.08.2010, 13:05   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Разве канва есть у кнопок?
С: TControlCanvas;
C.Control := Button1;
Вот те канва
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 13:07   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Hacker19_90
Я в том смысле что по умолчанию она у кнопок не предусмотренна в качестве свойства.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2010, 13:08   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я в том смысле что по умолчанию она у кнопок не предусмотренна в качестве свойства.
Ну мало ли не предусмотрена!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 13:27   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Разве канва есть у кнопок?
TSpeedButton - не виндовый контрол, а наследник TGraphicControl, поэтому канва у неё есть по-определению. Другое дело, что она protected.

Код:
type
  TDSB = class(TSpeedButton);

procedure TForm99.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TDSB(SpeedButton1).Canvas.Brush.Style := bsSolid;
  TDSB(SpeedButton1).Canvas.Brush.Color := clWhite;
  TDSB(SpeedButton1).Canvas.FillRect(Rect(0, 0, SpeedButton1.Width, SpeedButton1.Height));
end;
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.08.2010, 13:38   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Другое дело, что она protected.
Ладно, не будем разжигать битву буквочек, в любом случае ответы на вопрос даны, автору остается только правильно их понять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2010, 15:03   #10
Valera
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 86
По умолчанию

Спасибо всем. Буду разбираться.
Valera вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
убрать мигание на кнопке designer999 Общие вопросы Delphi 4 16.03.2010 17:33
SpeedButton mustang007 Общие вопросы Delphi 5 14.05.2009 19:44
Мигание текста в RichEdit Melevir Помощь студентам 3 28.09.2008 22:05
Мигание двоеточия Fantom Общие вопросы Delphi 5 27.06.2008 22:59
Мигание при движении Speeker Общие вопросы Delphi 1 14.02.2007 01:22