You have two options: your solution uses the less preferable one of passing string literals to a query. In this case, you have to 'escape' the value that you are passing, eg
ADOTable1.Filter := 'Date > ''' + Edit1.Text + '''';
This will result in a line like
ADOTable1.Filter := 'Date > ''27-Sep-69'''
The better solution is to use a parameterised query
select <whatever> from table
where date > :p1
You pass the parameter in the following manner
ADOTable.parambyname ('p1').asdate:= strtodate (edit1.text);
I admit that I don't use ADO components so that syntax may be slightly off, but it's the syntax used for Firebird.
Parameters are better than using raw text values because you don't have to worry about adding the correct number of quotation marks, and no one can pass in a bad value. Imagine what would happen if edit1.text contained '27-Sep-65;Drop table1'; - this could delete your table from the database!