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

Вниз

SpeedButton   Найти похожие ветки 

 
авыф   (2007-06-20 17:18) [0]

Вы не подскажете как получить доступ к свойству Color(он protected) из программы...
т.е. мне надо задать по клику на этой кнопке чтоб у нее цвет фона изменился...
как это сделать неподскажете, а то выдает ошибку: Cannot access protected symbol %s.%s
как поборать эту ошибку?


 
Германн ©   (2007-06-20 17:35) [1]


> Вы не подскажете как получить доступ к свойству Color(он
> protected)

type
 TMySpeedButton = class(TSpeedButton)
 end;
 ...
 TMySpeedButton(SpeedButton1).Color:=...


 
авыф   (2007-06-21 09:54) [2]

почему-то не работает...
подскажите что не так делаю?
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   SpeedButton1: TSpeedButton;
   procedure SpeedButton1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

type
 TMySpeed = class(TSpeedButton)
end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
 i: Integer;
begin
 TMySpeed(SpeedButton1).Color:=clRed;
end;

end.


 
iXT ©   (2007-06-21 09:57) [3]

Многоточие пропустил


 
авыф   (2007-06-21 10:01) [4]


> iXT

ок... =)
unit Unit1;

interface

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

type
TForm1 = class(TForm)
  SpeedButton1: TSpeedButton;
  procedure SpeedButton1Click(Sender: TObject);
private
  { Private declarations }
public
  { Public declarations }
end;

type
TMySpeed = class(TSpeedButton)
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

//............

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i: Integer;
begin
TMySpeed(SpeedButton1).Color:=clRed;
end;

end.


 
iXT ©   (2007-06-21 10:14) [5]

1.
>  SpeedButton1: TSpeedButton;

2.


 
iXT ©   (2007-06-21 10:14) [6]

2.> type
> TMySpeed = class(TSpeedButton)
> end;

3. Делай выводы :)


 
Однокамушкин   (2007-06-21 10:27) [7]


> авыф   (21.06.07 09:54) [2]
> почему-то не работает...
> подскажите что не так делаю?

Если посмотреть исходники TSpeedButton, а конкретно - его метода Paint, легко убедиться, что свойство Color используется в одном случае: при рисовании кнопки с Flat=True и Transparent=False в ненажатом состоянии, причём когда мышь не находится над кнопкой, во всех остальных случаях значение Color просто игнорируется... Поставьте нужные значения Flat и Transparent и сами увидите эффект... Так что если вам нужно полностью перекрасить кнопку, таким простым способом тут не обойтись, надо делать полноценного наследника от TSpeedButton и самому переписвать там метод Paint...


 
авыф   (2007-06-21 10:31) [8]

unit Unit1;

interface

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

type
 TMySpeed = class(TSpeedButton)
end;

type
 TForm1 = class(TForm)
   SpeedButton1: TMySpeed;
   procedure SpeedButton1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 TMySpeed(SpeedButton1).Color:=clRed;
end;

end.

а так ошибка возникает:
класс TSpeedButton не найден...


 
авыф   (2007-06-21 10:35) [9]


> Однокамушкин

тогда наверное лучше использовать другие компоненты, я правильно понял?
ладно, будем искать более простые в этом плане компоненты... спасибо всем!



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

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

Наверх




Память: 0.49 MB
Время: 0.014 c
2-1182524043
nord489
2007-06-22 18:54
2007.07.15
Работа с датой


4-1170780588
capkoh
2007-02-06 19:49
2007.07.15
Модальное окно на WinAPI


15-1182147912
de.
2007-06-18 10:25
2007.07.15
Расценки за создание размещение и обновления сайта...


15-1180439882
Эй.
2007-05-29 15:58
2007.07.15
Можно ли...


15-1181925222
Predfer
2007-06-15 20:33
2007.07.15
Bluetooch-окружение