Ich hatte dir das Ereignis OnChanging() nahegelegt, aber du wirst besser wissen, welches Ereignis für dich richtig ist.
Auf jedenfall solltest du kein Post() ausführen ohne vorher den State des DataSet zu prüfen - etwa so:
Delphi-Quellcode:
procedure TEditForm.PageControlChanging(Sender: TObject;
var AllowChange: Boolean);
begin
with Sender as TPageControl do
if (ActivePage = GridPage) and (ZQuery.State <> dsBrowse) then
ZQuery.Post;
end;
Freundliche Grüße