Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одна процедура не видит другую!


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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо