Ну, предаставленный код вполне правильный.
Просто внутри обработчика надо обращаться к тому компоненту, который вызвал этот обработчик, а не пытаться что-то вычислять, типа как-то так:
Код:
procedure TForm1.myGutterClick(Sender: TObject; Button: TMouseButton; X, Y, Line: Integer; Mark: TSynEditMark);
var
sed : TSynEdit;
begin
If Sender Is TSynEdit Then
Begin
sed := Sender As TSynEdit;
...
код с обращением через 'sed.'
...
End;
end;