Программа электронного каталога автомобилей, страница 5

        ActionAddAllelementExecute(Sender);// Посмотреть все записи об автомобилях в StringGrid

     end;

     Memo1.Lines.Add('----------------------------------------');

   end;

end;

procedure TForm1.ActionDeleteExecute(Sender: TObject); //Удалить текущую запись

var

   s: string;// строка для получения записи об автомобиле

   bool: Boolean; // переменная которая принимает значение True, если найден хотябы один автомобиль для удаления.

begin

    //устанавливаем указатели на начало списка

   car:=carBegin;

   bool:= false;

   // проверка на наличие в массиве хотя бы одного автомобиля

   if carBegin = nil then

       ShowMessage('В базе нет не одной записи!!!')

   else

   begin

     While car<>nil do // цикл While по всем автомобилям

     begin

        // поиск на соответствие марок автомобилей, если не введена марка автомобиля,

        //то считается что марка может быть любой

        if(car^.markaCar_=EditMarkaCar.Text)or(Length(EditMarkaCar.Text)=0)then

           // поиск на соответствие маделей автомобилей, если не введена мадель автомобиля,

           //то считается что мaдель может быть любой

           if(car^.modelCar_=EditModelCar.Text)or(Length(EditModelCar.Text)=0)then

               //поиск на соответствие тип кузова автомобилей, если не введена тип кузова автомобиля,

               // то считается что тип кузова может быть любой

               if(car^.typBasketCar_=EditTypBasketCar.Text)or(Length(EditTypBasketCar.Text)=0)then

                   // поиск на соответствие объема двигателя автомобилей,

                   //если не введен объем двигателя автомобиля,

                   //то считается что объем двигателя может быть любым

                   if(Length(EditVolumeEngineCar.Text)=0)or

                     (car^.volumeEngineCar_=StrToFloat(EditVolumeEngineCar.Text))then

                       //поиск на соответствие максимальной мощности автомобилей,

                       //если не введен максимальная мощность автомобиля,

                       //то считается что максимальная мощность может быть любым

                       if(Length(EditMaxPowerCar.Text)=0)or

                         (car^.maxPowerCar_=StrToInt(EditMaxPowerCar.Text))then

                           //поиск на соответствие расхода топлива автомобилей,

                           //если не введен расход топлива автомобиля,

                           //то считается что расход топлива может быть любым

                           if(Length(EditConsuptionFuelCar.Text)=0)or

                             (car^.consuptionFuelCar_=StrToInt(EditConsuptionFuelCar.Text))then

                           begin

                               if bool = false then

                               begin

                                  bool:=true;

                                  Memo1.Lines.Add('Delete >> из базы удалена следующая запись:');

                               end;

                               //  формируем строку содержащую все сведения об автомобиле

                               s:='Delete>> '+car^.markaCar_+' '+car^.modelCar_+' /'+car^.typBasketCar_+' /';

                               s:=s+FloatToStr(car^.volumeEngineCar_)+'л /'+IntToStr(car^.maxPowerCar_)+'лс /';

                               s:=s+IntToStr(car^.consuptionFuelCar_)+'л/100';

                               // добавляем ее в Memo

                               Memo1.Lines.Add(s);

                               Delete();

                           end;

        car:=car^.next_;// переходим к следующему элементу списка

     end;

     //Проверяем  были  записи

     if bool = false then //записей нет

        Memo1.Lines.Add('Delete >> По вашему запросу не найдено ни одной записи.');

     Memo1.Lines.Add('----------------------------------------');

   end;

end;

procedure TForm1.ActionAddBeforeExecute(Sender: TObject); //Добавить перед текущим элементом

var

   s: string;// строка для получения записи об автомобиле

begin  // проверка на заполнение полей

   if (Length(EditMarkaCar.Text)=0)or (Length(EditModelCar.Text)=0)or

      (Length(EditTypBasketCar.Text)=0)or (Length(EditVolumeEngineCar.Text)=0)or

      (Length(EditMaxPowerCar.Text)=0)or (Length(EditConsuptionFuelCar.Text)=0)then

       ShowMessage('Все поля должны быть заполнены!!!')

   else

   begin

      new(car);// выделить память для элемента списка

      // усли текущий элемент не выбран, то текщим элементом

      //будет последний элемент списка

      if carCurrent=nil then carCurrent:=carEnd;

      // получаем от пользователя:

      car^.markaCar_ :=EditMarkaCar.Text;  // Марка

      car^.modelCar_ :=EditModelCar.Text;  // Модель

      car^.typBasketCar_ :=EditTypBasketCar.Text;  // Тип кузова

      car^.volumeEngineCar_ :=StrToFloat(EditVolumeEngineCar.Text); //Oбъем двигателя

      car^.maxPowerCar_ :=StrToInt(EditMaxPowerCar.Text); // Максимальная мощность

      car^.consuptionFuelCar_ :=StrToInt(EditConsuptionFuelCar.Text); // Расход топлива в городе,л/100 км (на новой машине!)

      //Вызываем процидуру Добавить перед текущим элементом

      AddBefore();

      //  формируем строку содержащую все сведения об автомобиле

      s:='Add before>> '+car^.markaCar_+' '+car^.modelCar_+' /'+car^.typBasketCar_+' /';

      s:=s+FloatToStr(car^.volumeEngineCar_)+'л /'+IntToStr(car^.maxPowerCar_)+'лс /';

      s:=s+IntToStr(car^.consuptionFuelCar_)+'л/100';

      // добавляем ее в Memo

      Memo1.Lines.Add(s);

   end;

end;

procedure TForm1.ActionAddAfterExecute(Sender: TObject);//Добавить после текущего элемента

var

   s: string;// строка для получения записи об автомобиле