Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 61 стр.

UptoLike

Составители: 

62
8. Для просмотра всех объектов, надо определить метод TMy-
App.Show, в котором реализуется проход по списку и обращение к методу
Show каждого объекта списка.
9. Для поиска объекта в списке можно реализовать вспомогательную
функцию Find, в которую передается ключ поиска, например find_name :
string. Функция возвращает указатель на объект, если объект найден и nil в
случае неудачного поиска
.
Function Find(find_name:string):PEmployee;
Var p:PItem;
Begin
p:=beg;
while (p<>nil) and (p^.Item^.GetName<>find_name) do p:=p^.next;
if p^.item^.GetName=find_name then
Find:=p^.Item
else Find:=nil;
End;
Метод, который показывает найденный объект (например, метод
TMApp.FindObject), может использовать стандартные функции Input-
BoxRect для ввода ключа поиска и MessageBox для вывода сообщения:
if InputBoxRect(r,'Поиск по имени ','',s,35)=cmOk then
begin
employee:=Find(s);
if employee<>nil then employee^.Show
else MessageBox ('Объекта с таким именем нет', nil,+mfOkButton);
end
10. Метод, который выполняет корректировку объекта, может быть
реализован следующим образом: сначала выполняется поиск корректируе
-
мого объекта с помощью вспомогательной функции Find, которая возвра-
щает указатель на нужный объект. Если этот указатель не равен nil, то
формируется диалоговое окно, в которое заносятся поля объекта, обработ-
чик команд диалогового окна выполняет добавление откорректированного
объекта в список, а старый объект удаляется с помощью метода DeleteOb-
ject:
Procedure TMyApp.DeleteObject;
Var employee:PEmployee;
pwd:PNewDialog;
r:TRect;
Begin
employee:=Find(name);
                                    62

        8. Для просмотра всех объектов, надо определить метод TMy-
App.Show, в котором реализуется проход по списку и обращение к методу
Show каждого объекта списка.
        9. Для поиска объекта в списке можно реализовать вспомогательную
функцию Find, в которую передается ключ поиска, например find_name :
string. Функция возвращает указатель на объект, если объект найден и nil в
случае неудачного поиска.
Function Find(find_name:string):PEmployee;
Var p:PItem;
Begin
p:=beg;
while (p<>nil) and (p^.Item^.GetName<>find_name) do p:=p^.next;
if p^.item^.GetName=find_name then
Find:=p^.Item
else Find:=nil;
End;
Метод, который показывает найденный объект (например, метод
TMApp.FindObject), может использовать стандартные функции Input-
BoxRect для ввода ключа поиска и MessageBox для вывода сообщения:
if InputBoxRect(r,'Поиск по имени ','',s,35)=cmOk then
begin
employee:=Find(s);
if employee<>nil then employee^.Show
else MessageBox ('Объекта с таким именем нет', nil,+mfOkButton);
end
        10. Метод, который выполняет корректировку объекта, может быть
реализован следующим образом: сначала выполняется поиск корректируе-
мого объекта с помощью вспомогательной функции Find, которая возвра-
щает указатель на нужный объект. Если этот указатель не равен nil, то
формируется диалоговое окно, в которое заносятся поля объекта, обработ-
чик команд диалогового окна выполняет добавление откорректированного
объекта в список, а старый объект удаляется с помощью метода DeleteOb-
ject:
Procedure TMyApp.DeleteObject;
Var employee:PEmployee;
      pwd:PNewDialog;
      r:TRect;
Begin
…
employee:=Find(name);