Показать сообщение отдельно
  #2  
Старый 27.11.2016, 19:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если я правильно понимаю, то тип кузова - это легковой (L) или грузовой (G). Тогда как-то так:
Код:
function FindAutoByParams(AData : TAvtopark; AType, AColor : String) : Boolean;
var
  I : Integer;
  Auto : TAvto;
begin
  Result := False;
  For I := 0 To AData.List.Count-1 Do
    Begin
       Auto := TAvto(AData.List.Items[i]);
       If ((AType = 'L') And (Auto Is TLegkov) And (AColor = (Auto As TLegkov).Color)) Or 
           ((AType = 'G') And (Auto Is TGruzov)) // У грузовых нет цвета
        Then 
          Begin 
            Auto.Print;
            Result := True;
          End;
    End;
end;

Вызов:
Код:
...
If Not FindAutoByParams(L,n,k) then writeln('Таких автомобилей нет');
// else - сама функция распечатает
...
Ответить с цитированием