Filtrowanie + komunikat

0

Witam... Piszę program bazodanowy, i jak w każdej bazie powinna być możliwość filtrowania jej. Samo filtrowanie pięknie chodzi, ale mam problem, mianowicie użytkownik do Edita wpisuje dane według których ma być przefiltrowana baza, naciska przycisk i następuje filtrowanie.
PROBLEM:
W momencie kiedy Edit jest pusty(brak jakichkolwiek wpisanych danych), a mimo to użytkownik naciska przycisk Filtruj wyskakuje błąd.
Próbowałem wstawiać swoje komunikaty, cudowałem z "if, then" i nic nie pomaga.
PYTANIE:
Jak powinna wyglądać procka aby przy pustym Edicie i naciśniętym przycisku Filtruj program podał komunikat.
Fragment kodu:

private
    { Private declarations }
     Function FiltrDla : String;
  public
    { Public declarations }
  end;
procedure TForm6.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
// metoda obslugi zdarzenia OnFilterRecord
begin
Accept := DataSet[FiltrDla] = Edit1.Text;
end;
procedure TForm6.Button1Click(Sender: TObject);
begin
   With Table1 Do
     Begin
          OnFilterRecord := Nil;
            Filter := FiltrDla + ' = ' + #39 + Edit1.Text + #39;
             Filtered := True; // aktywowanie filtra
0

Może po prostu w momencie gdy masz pustego Edita to filtr ustaw jako pusty (tj. ''). Wystarczy przechwycić tą jedną sytuację i wszystko gra (możesz to zrobić np. w zdarzeniu OnKeyUp). Nie wiem czy o to Ci chodziło, ale zastanów się nad tą opcją.

0

Niestety to nie to wywala błąd, nawet usunąłem filtr przez
Table1.Filtered:=False;
i też wywala błąd.
Szukam dalej.

0

moze zrob tak jesli wpisujesz w edit cokolwiek i wciskasz button ktory uruchamia funkcje filtru to napisz
If edit1,text:='' then exit ;

a jesli masz blad to uzyj
Try
on except do ... end

0
W OnChange tego Edita:

If Edit1.Text='' then Edit1.Text:='0';
0

a moze proszczej:

procedure TForm6.Edit1Change(Sender:TObject);
begin
Button1.Enabled:=(Length(Trim(Edit1.Text))>0);
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1