Главная страница
    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.47 MB
Время: 0.009 c
1-11180
AlexeyMir
2002-10-24 15:27
2002.11.04
Регистрация


7-11504
Arkan
2002-07-07 10:35
2002.11.04
Модем


3-11091
Dennis S
2002-10-15 01:52
2002.11.04
Помогите прочесть в TStringGrid


14-11382
Ich Hasse
2002-10-12 22:36
2002.11.04
Delphi 7???


14-11491
Artemkin
2002-10-16 19:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский