![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Написание компонент и 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;