Форум: "Основная";
Текущий архив: 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