Have you tried using TSynEdit.CanRedo and TSynEdit.CanUndo?
You can simplify the code like this:
btnUndo.Enabled:=SynEdit.CanUndo; mnuUndo.Enabled:=SynEdit.CanUndo; popmnuUndo.Enabled:=SynEdit.CanUndo; btnRedo.Enabled:=SynEdit.CanRedo; mnuRedo.Enabled:=SynEdit.CanRedo; popmnuRedo.Enabled:=SynEdit.CanRedo;
You can simplify it even more if you link the button and the menu items to a TAction. All you would have to do to enable/disable all associated controls is to set the Action's Enabled property instead of en-/disabling them one by one.