Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1182084487
Knob
2007-06-17 16:48
2007.07.15
Смещение компонентов Image


15-1181976549
Aust
2007-06-16 10:49
2007.07.15
Перезагрузка


15-1181625712
boriskb
2007-06-12 09:21
2007.07.15
Коллекция книг по компьютерной тематике,


15-1181550809
hahol_64_rus
2007-06-11 12:33
2007.07.15
оболочки


3-1176798492
TableUser
2007-04-17 12:28
2007.07.15
Как сохранить данные своего типа?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский