Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
зодиак   (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 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.064 c
15-1267133405
Юрий
2010-02-26 00:30
2010.08.27
С днем рождения ! 26 февраля 2010 пятница


4-1226996099
Сергей
2008-11-18 11:14
2010.08.27
Как вывести Диалог свойств Windows К оприделённому файлу ?


2-1275314584
worldmen
2010-05-31 18:03
2010.08.27
группировать по месяцу


2-1274878317
Delphist2
2010-05-26 16:51
2010.08.27
копирование из spinedit


15-1273558498
@!!ex
2010-05-11 10:14
2010.08.27
Дешевое копирование выходит за рамки ПО.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский