На Дельфи не писал со времён win 3.11, но пишу на C++Builder. В принципе, те же яйца: вид сбоку.
В обработчике мышиного события кроме координат указателя X и Y есть параметр типа TShiftState. Это набор (Set) из значений типа ssShift (нажат Shift), ssCtrl (нажат Ctrl), ssLeft (нажата левая кнопка мыши), ssRight (нажата правая кнопка мыши) и т. д. Код для проверки состояния на языке Паскаль выглядит примерно так (не ручаюсь):
if (Shift.Contains(ssRight)) then do_something;
Неактивен