Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

Цветная кнопка TSpeedButton и иже с ними   Найти похожие ветки 

 
Stocker!   (2002-10-22 12:24) [0]

Кто подскажет как сделать кнопочку цветной в зависимости от значения какой либо переменной делаю так
procedure TForm1.Button1Click(Sender: TObject);
var Rect1:Trect; old:TBrush;flag:boolean;
begin
if flag then
begin
Rect1:=Rect(Form1.SpeedButton1.Left,Form1.SpeedButton1.Top,
Form1.SpeedButton1.Left+Form1.SpeedButton1.width,
Form1.SpeedButton1.top+Form1.SpeedButton1.height);
old:=Canvas.Brush;
Canvas.Brush.Color:=clBlue;
Form1.Canvas.FillRect(Rect1);
Canvas.Brush:=old;
end;
обрабатывается клавиша Button1 закрашиваем SpeedButton1, но при подставлении этого кода для SpeedButton или при нажатии на кнопку она становится цветом фона ... в чем причина?


 
Snake   (2002-10-22 12:36) [1]

Дело в том, что нужно перерисовывать кнопку в событии что-то вроде OnPaint. Ты попробуй поперемещай форму за границы экрана - она тоже обесцветится. У кнопки есть метод Paint, если не ошибаюсь, вот его-то и нужно перекрывать и в нем отрисовывать то, что нужно.


 
Stocker!   (2002-10-22 12:52) [2]

2 Snake: события OnPaint и метода Paint для SpeedButton нет, только для самой формы, чего делать?


 
Skier   (2002-10-22 12:55) [3]

>Stocker!
Советую : не париться, а
сходить на www.torry.net,
там этих кнопок навалом...

Заодно и посмотришь реализацию...


 
Stocker!   (2002-10-23 07:49) [4]

а с кодом значит здесь никто не подскажет


 
Andrey007   (2002-10-23 09:52) [5]

Чтобы перехватывать событие OnPaint у TSpeedButton, надо написать наследника TSpeedButton.

...
type
TNewSpeedButton=class(TSpeedButton)
private
FOnPaint: TNotifyEvent;
public
property Canvas;
protected
procedure Paint; override;
published
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
end;

implementation

procedure TNewSpeedButton.Paint;
begin
if Assigned(FOnPaint) then FOnPaint(Self)
end;


 
Stocker!   (2002-10-23 11:08) [6]

2Andrey007 Может я чего то недопонимаю нелбзя поподробнее разжевать...
Как мне создасть SpeedButton на форме TForm1 чтобы класс у неё был не TSpeedButton, а TNewSpeedButton


 
Separator   (2002-10-23 11:24) [7]

with TNewSpeedButton.Create(self) do
begin
Parent:= self;
Left:= 10;
Top:= 10;
Width:= 32;
Height:= 32;
Name:= "Button2"
end;


 
Stocker!   (2002-10-23 11:30) [8]

2Andrey007 Может я чего то недопонимаю нелбзя поподробнее разжевать...
Как мне создасть SpeedButton на форме TForm1 чтобы класс у неё был не TSpeedButton, а TNewSpeedButton


 
Separator   (2002-10-23 11:34) [9]


> Stocker! (23.10.02 11:30)

Смотри что я написал


 
Stocker!   (2002-10-23 11:39) [10]

2 Sepearator Добавил этот код в TForm1.Create но на форме кнопочка не появилась
P.S. Извиняюсь за флейм


 
Separator   (2002-10-23 11:43) [11]

просто у Andrey007 ошибка.

procedure TNewSpeedButton.Paint;
begin
if Assigned(FOnPaint) then FOnPaint(Self);
inherited Paint
end;



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

Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-11396
RV
2002-10-17 12:19
2002.11.04
Про железки. Переходник с PCI на USB


6-11373
JohnBurg
2002-09-04 11:50
2002.11.04
Не пойму почему вылетает ошибка


1-11225
Юрий
2002-10-22 22:53
2002.11.04
Как создать событие в компоненте?


4-11554
Slym
2002-09-23 07:19
2002.11.04
Где и как хранить данные ассоциированные с определенным окном


6-11355
AndrX
2002-09-01 19:47
2002.11.04
Как програмно выключить комп?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский