Delphi 3 и создание приложений баз данных


8.4.5. Методы EditRangeStart, EditRangeEnd


procedure EditRangeStart;

procedure EditRangeEnd;

Эти методы предназначены для смены условий фильтрации, установленных ранее с использованием методов соответственно SetRangeStart и SetRangeEnd. Напомним, что сама фильтрация в этом случае выполняется методом Apply Range. Преимущества их использования ясны не всегда. Например, можно было бы предположить, что для рассмотренной в п.8.4.4 ситуации эти методы способны заменить использование CancelRange :

procedure TFormI.ButtonlClick(Sender: TObject);

var GrNumTrnpl, GrNumTmp2 : Integer;

const Num : Integer = 0;

begin

{проверка правильности Edit.Text}

INC(Num) ;

WITH Table1 do begin

IF Num = 1 THEN

begin

SetRangeStart;

FieldByName('GrNum').As Integer:= GrNumTrnp1;

SetRangeEnd;

FieldByName('GrNum').Aslnteger := GrNumTmp2;

ApplyRange;

end

ELSE

begin

EditRangeStart;

FieldByName('GrNum').Aslnteger:= GrNumTrnp1;

EditRangeEnd;

FieldByName('GrNum').Aslnteger := GrNumTmp2;

ApplyRange;

end;

END; {with}

end;

Однако результат будет таким же ошибочным. Указанный код будет правильно работать только в случае, когда индекс по 'GrNum' является принятым по умолчанию и в процессе работы не изменяется (представим, что в показанном выше примере мы удалили переключатели RadioGroupl для выбора текущего индекса). Однако в этом случае правильно работает и код

procedure TForm1.ButtonlClick(Sender: TObject);

var GrNumTrnp1,GrNumTmp2 : Integers;

begin

{проверка правильности Edit1.Text и Edit2.Text}

{фильтрация по начальному и конечному номеру группы}

WITH Tablel do begin

SetRangeStart;

FieldByName('GrNum') .Aslnteger:= GrNumTrnp1;

SetRangeEnd;

FieldByName('GrNum').Aslnteger := GrNumTmp2;

ApplyRange;

END; {with}

end;




Начало  Назад  Вперед



Книжный магазин