![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Одна процедура не видит другую!
Delhessh © (2012-03-07 22:55:00)Здравствуйте!
Проблема такая: в одном из гридов динамически создаю столбцы и так как их нет в режиме «дизайна», то программно хочу присвоить определенному событию на каждый вновь создаваемый столбец определенную процедуру. Нашел в интернете пример, который постарался модифицировать под себя, но не получилось.
1. Процедура, где я создаю столбцы
Procedure Load;
Var
ADBColumn: TcxGridDBColumn;
Begin
{…}
ADBColumn:=frmmain.cxGrid1DBTableView1.CreateColumn; {создаю новый столбец}
{…пропускаю ряд строчек кода :)}
ADBColumn.OnGetProperties:=GetColumnProperties; {вот на определенное событие столбца навешиваю свою процедуру}
End;
{процедура обработчик события}
procedure GetColumnProperties(Sender: TObject);
var
ADBColumn: TcxGridDBColumn;
begin
ADBColumn := TcxGridDBColumn(sender);
ShowMessage('ColName is '+ ADBColumn.Caption);
end;
Обе эти процедуры объявлены у меня сейчас в этом фрагменте программы:
{Глобальный VAR}
var
….
…
Procedure GetColumnProperties(Sender: TObject);
Procedure LoadTableOrders;
implementation
{$R *.dfm}
Находятся они в одном файле pas.
Суть в том, что в первой процедуре, когда я в строке ADBColumn.OnGetProperties:=GetColumnProperties;
писваиваю на обработчик свою процедуру, то компилятор ругается….
Что я делаю не так? Дайте пож-ста пример?
Anatoly Podgoretsky (2012-03-08 07:51:00) [1]> sniknik (07.03.2012 23:46:02) [2]
А вот это было и написано: выкини и забудь
Германн (2012-03-08 02:17:00) [2]
> Что я делаю не так?
Не купил/не прочитал учебник.
Palladin (2012-03-07 23:56:00) [3]интересно при чем тут "глобальный var" и описание процедур
sniknik (2012-03-07 23:46:00) [4]> Что я делаю не так?
не читаешь что пишет в "ругани". ошибки они не просто так, типа "не понимаю, значит выкинул и забыл". ошибки это важно.
Dimka Maslov (2012-03-07 23:23:00) [5]Уж если компилятор ругается, то не будет ли автор ветки настолько любезен, что напишет нам здесь весь опус этого сквернослова компилятора?
Хотя мы и догадываемся, что GetColumnPropertiesдолжно быть методом какого-либо объекта. Или статическим методом какого-либо класса.
type
TGetColumnProperties = class (TObject)
public
procedure Get(Sender: TObject)
end;
ADBColumn.OnGetProperties := TGetColumnProperties.Get;