Delphi beliebte Fehler: Grid auf einem Formular erhält nicht den Focus

Das Problem:

Ein Eingabedialog wird mit Showmodal aufgerufen und das Grid im Eingabedialog erhält nicht den Fokus und ist auch mit der Maus nicht anklickbar.

Die Lösung

Schuld war der Aufruf des Eingabedialogs im Hauptformular der Anwendung bereits im OnFormActivate Ereignis, ohne der Anwendung Zeit zu geben alle bis dahin anstehenden Ereignisse abzuarbeiten.

procedure Tam_Main.FormActivate(Sender: TObject);
begin
  // Der Anwendung Zeit geben, alle bisher anstehenden Ereignisse abzuarbeiten.
  Application.ProcessMessages;
  am_Eingabe.Execute;
end;