Вниз
Скачать: CL | DM;

Странный метод   Найти похожие ветки 

← →
зодиак   (2010-02-03 13:54) [0]

Разъясните мне пожалуйста, в чем тайный смысл метода FindRecord в Db.pas, и дальнейший эго вызовы.

function FindRecord(Restart, GoForward: Boolean): Boolean; virtual;

...

function TDataSet.FindRecord(Restart, GoForward: Boolean): Boolean;
begin
 Result := False;
end;

function TDataSet.FindFirst: Boolean;
begin
 Result := FindRecord(True, True);
end;

function TDataSet.FindLast: Boolean;
begin
 Result := FindRecord(True, False);
end;

function TDataSet.FindNext: Boolean;
begin
 Result := FindRecord(False, True);
end;

function TDataSet.FindPrior: Boolean;
begin
 Result := FindRecord(False, False);
end;


← →
Сергей М. ©   (2010-02-03 13:57) [1]

Ну как в чем ?

В поиске записи, разумеется ..


← →
зодиак   (2010-02-03 13:57) [2]

дальнейший эго вызовы =  дальнейшие его вызовы
Сорри.


← →
TUser ©   (2010-02-03 13:58) [3]


> virtual;

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


← →
зодиак   (2010-02-03 13:58) [4]


> Сергей М. ©   (03.02.10 13:57) [1]

Дык он же ее не находит. НИКОГДА.


← →
oldman ©   (2010-02-03 14:00) [5]


> зодиак   (03.02.10 13:58) [4]
> Дык он же ее не находит. НИКОГДА.


Находит. Но никому не говорит.


← →
Сергей М. ©   (2010-02-03 14:00) [6]


> он же ее не находит. НИКОГДА.
>


А как он может найти, если он попросту не знает что где и как конкретно искать ?
Об этом знают конкретные наследники этого класса, перекрывшие метод FindRecord ..


← →
зодиак   (2010-02-03 14:02) [7]


> TUser ©   (03.02.10 13:58) [3]

А если потомка нет? И вызывается, например, FindLast, которая паблик


← →
Сергей М. ©   (2010-02-03 14:05) [8]


> если потомка нет?


А нет потомка - нет и смысла использования TDataSet.
На то он и TDataSet, чтобы предоставить некий унифицированный интерфейс, абстрагированный от конкретных реализаций.


← →
зодиак   (2010-02-03 14:14) [9]


> Сергей М. ©   (03.02.10 14:05) [8]

Ясно, спасибо.


← →
Dimka Maslov ©   (2010-02-03 17:56) [10]

А могли бы этот метод объявить абстрактным и при его неперекрытии в потомках генерировалось бы исключение типа "абстракт эррор"


← →
tesseract ©   (2010-02-03 22:06) [11]


> при его неперекрытии в потомках генерировалось бы исключение
> типа "абстракт эррор"


Что сильно бы радовало всех его потомков :-) А то завели моду всякие XML датасеты без поиска делать.


← →
xayam ©   (2010-02-03 22:10) [12]


> tesseract ©   (03.02.10 22:06) [11]
> Что сильно бы радовало всех его потомков :-) А то завели
> моду всякие XML датасеты без поиска делать.

заглушки еще никто не отменял. Хотя я согласен: xml-датасет должен быть с поиском! :)



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.053 c
15-1271077786
12
2010-04-12 17:09
2010.08.27
Зачем сия картинка? http://delphimaster.ru/i/1x1.gif


15-1270388228
Дмитрий С
2010-04-04 17:37
2010.08.27
Как убрать веб браузер при загрузке delphi 2010.


2-1274076522
Ильдарик_13
2010-05-17 10:08
2010.08.27
Фильтрация связанных таблиц


2-1275564908
Б
2010-06-03 15:35
2010.08.27
Как узнать физические размеры монитора?


15-1268204901
DOOM
2010-03-10 10:08
2010.08.27
что можно узнать по ip-адресу?




   Наверх