Dann schlage ich vor, dass du kurz die Nachrichtenschleife abarbeitest:
Delphi-Quellcode:
// ...
if (button = mbRight) and (iRow > 0) and (iRow < RowCount) then
begin
Row := iRow;
Application.ProcessMessages;
ContextRow := iRow;
pt := ClientToScreen(Point(x, y));
PopUpMenu1.Items.Find('delete').Enabled:= row = irow;
PopUpMenu1.Popup(pt.x, pt.y);
Row := iSelected;
end
// ...