Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c