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

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

Написание компонент и TDataLink [D6]


ton2 ©   (2002-11-14 12:07:00) 

Пишу свой компонент который содержит поле Edit в котором отображается номер текущей записи датасета, Label показывающий число записей в датасете и кнопки навигации. связываю мой новый компонент с датасетом через TDataLink. чтоб отловить момент когда изменяется положение курсора в датасете пытаюсь использовать DataSetChanged, вот так:
FDataLink := TDataLink.Create;
FDataLink.DataSetChanged:=DSChange;
где DSChange - моя процедура обработки события. когда пытаюсь откомпилировать - говорит DataSetChanged - необъявленый идентификатор хотя в TDataLink имеется этот метод, говорится в хелпе. если не через DataSetChanged как еще можно отловить изменение датасета?


ЮЮ   (2002-11-14 12:54:00) [1]

>неужели придется создавать класс производный от TDataLink и в нем переписывать метод DataSetChanged?

Естественно. Посмотри например TGridDataLink.
Переопределенный метод

procedure TGridDataLink.DataSetChanged;
begin
FGrid.DataChanged;
FModified := False;
end;

позволяет при вызове этого метода провести некоторые действия внутри своего компонента и вызвать, при необходимости, обработчики событий уже своего компонента

procedure TCustomDBGrid.DataChanged;
begin
if not HandleAllocated then Exit;
UpdateRowCount;
UpdateScrollBar;
UpdateActive;
InvalidateEditor;
ValidateRect(Handle, nil);
Invalidate;
end;


SaS13   (2002-11-14 12:45:00) [2]

type
TForm1 = class(TForm)
...
procedure MyAfterScroll(DataSet: TDataSet);
..
end;

в теле:
Table1.onAfterScroll := MyAfterScroll;


ton2   (2002-11-14 12:40:00) [3]

AfterScroll тоже пробовал и то же самое


SaS13   (2002-11-14 12:37:00) [4]

2 ton2
tDataSet.AfterScroll не подойдет?


ton2   (2002-11-14 12:29:00) [5]

как же тогда среагировать на изменение данных в датасете? неужели придется создавать класс производный от TDataLink и в нем переписывать метод DataSetChanged?


SaS13   (2002-11-14 12:29:00) [6]

ЮЮ © (14.11.02 12:24)
сорри,
даже не посмотрел :))


ЮЮ   (2002-11-14 12:24:00) [7]

DataSetChanged - это метод TDatalink, а не Event;


ton2   (2002-11-14 12:16:00) [8]

то же самое. Ощибка: onDataSetChanged - необъявленный идентификатор.


SaS13   (2002-11-14 12:10:00) [9]

FDataLink := TDataLink.Create;
FDataLink. onDataSetChanged:=DSChange;


Наверх

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