Главная страница
    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-1181793974
mrFreeman
2007-06-14 08:06
2007.07.15
Процедура для запуска внешних EXE-файлов


15-1181669771
Ivannn
2007-06-12 21:36
2007.07.15
DDE


15-1181819723
ArtemESC
2007-06-14 15:15
2007.07.15
Где можно скачать драйвер для CardReader?


2-1182524043
nord489
2007-06-22 18:54
2007.07.15
Работа с датой


2-1182165273
Inga
2007-06-18 15:14
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский