Hola,
Yo utilizaría un componente "TActionList", concretamente prepararía una acción que asociaría con el botón de marras mediante su propiedad "Action". En el evento "OnExecute" de dicha acción haría lo que tuviera que hacerse, y, aprovechando el evento "OnUpdate" de la acción, haría algo parecido a esto:
Código Delphi
[-]
procedure TForm1.Action1Update(Sender: TObject);
begin
Action1.Enabled := ValidaEdits;
end;
procedure TForm1.Action1Execute(Sender: TObject);
begin
ShowMessage('Pudiste pulsar el botón...');
end;
function TForm1.ValidaEdits : boolean;
var
i: integer;
begin
Result := true;
for i := 0 to ComponentCount-1 do
begin
if (Components[i] is TEdit) and (TEdit(Components[i]).Text = '') then
begin
Result := false;
Exit;
end;
end;
end;
... o algo parecido. En definitiva, utilizaría el evento "OnUpdate" para validar los "TEdits" de forma que habilitara o no la acción del botón (y con ello el botón mismo).
Adjunto el proyecto de ejemplo que incluye el código de más arriba para que pueda verse "el asunto" funcionando.