Главная страница
    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
Время: 1.294 c
2-1275846857
worldmen
2010-06-06 21:54
2010.08.27
TMediaPlayer воспроизведение используя БД


2-1265618447
yantux
2010-02-08 11:40
2010.08.27
Как сделать компонент и добавить в tool palette?


15-1266163521
БарЛог
2010-02-14 19:05
2010.08.27
Окружность-круг, а квадрат, треугольник и etc не имеют "пары"


4-1217672834
DeadMeat
2008-08-02 14:27
2010.08.27
Отключение скринсейвера


15-1265662957
Kerk
2010-02-09 00:02
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский