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

Вниз

Как узнать, кто является Sender ом?   Найти похожие ветки 

 
Alex_C   (2008-06-20 10:38) [0]

Допустим: при вызове PupUp меню, нужно изменить цвет или font компонента, который его вызвал.
Пробовал так:
(Sender as TControl).Font := FontDialog1.Font - возникает ошибка при компиляции "Undeclared identifier: font", хотя у TContro по хелпу св-во font есть.


 
clickmaker ©   (2008-06-20 10:40) [1]

PopupComponent?


 
Ega23 ©   (2008-06-20 10:43) [2]


> хотя у TContro по хелпу св-во font есть.


Только оно у TControl - protected property


 
TUserClass   (2008-06-20 10:52) [3]

Можно так ... тока не знаю хорошо ли :

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Button1: TButton;
   procedure Label1Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   procedure ChangeFont (Sender : TObject);
 end;

var
 Form1: TForm1;

implementation
procedure TForm1.ChangeFont (Sender : TObject);
begin
 If Sender.ClassName = "TLabel" then begin
   (Sender as TLabel).Font.Style := (Sender as TLabel).Font.Style + [fsBold];
 end else If Sender.ClassName = "TButton" then begin
   (Sender as TButton).Font.Style := (Sender as TButton).Font.Style + [fsBold];
 end else If Sender.ClassName = ...
end;
{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin
 ChangeFont (Sender);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ChangeFont (Sender);
end;


 
Ega23 ©   (2008-06-20 10:58) [4]


> тока не знаю хорошо ли :


Не хорошо.


 
TUserClass   (2008-06-20 11:01) [5]

Удалено модератором


 
Alex_C   (2008-06-20 11:02) [6]

Всем спасибо! Все понял!
Самое простое так:

(PopupMenu.PopupComponent as TLabel).Font.Assign(FontDialog.Font);


 
Ega23 ©   (2008-06-20 11:04) [7]


> (PopupMenu.PopupComponent as TLabel).Font.Assign(FontDialog.
> Font);


if (PopupMenu.PopupComponent is TLabel) then
TLabel(PopupMenu.PopupComponent).Font.Assign(...)


 
Игорь Шевченко ©   (2008-06-20 11:06) [8]


> Самое простое так:


> (PopupMenu.PopupComponent as TLabel).Font.Assign(FontDialog.
> Font);


Самое некривое через GetObjectProp и Assign



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
15-1212697734
No_Dead
2008-06-06 00:28
2008.07.20
Автоподстройка заблокир.


2-1214108702
WebSQLNeederrr
2008-06-22 08:25
2008.07.20
Выход из цикла, но не выход из процедуры? Как?


2-1213756132
Beluy
2008-06-18 06:28
2008.07.20
Memo в Quick Report


1-1195232021
wipr
2007-11-16 19:53
2008.07.20
Окно программы становится недоступным (программа не отвечает)


2-1213692159
vint45
2008-06-17 12:42
2008.07.20
Потоки. Нужна ли синхронизация?