Entweder hängt sich dein Popup in die Messagebehandlung der Komponente(n) rein, wo es angehängt wurde,
oder es gängt sich ins KeyPreview der Form, oder in TApplicationtEvents.OnMessage und schaut dort nach der Tastenkombi,
oder es registriert sich einen globalen Shortcut.
Gibt TMemo.CaretPos (GetCaretPos) nicht die Position in Zeile:Spalte zurück?
Ich dachte das Popup benötigt allerding X:Y in Pixeln und das auch noch in Screen-Koordinaten, anstatt in Komponenten-Koordinaten.
(ClientToScreen)
Und besser wäre
if (Shift = [ssCtrl]) and (Key = Ord('T')) then
, denn sonst reagiert der Vergleich auch auf Strg+Alt+T oder auf AltGr+T.
PS:
Delphi-Quellcode:
PopupMenu.PopupComponent := Self; {z.B. das Memo, also falls man im OnPopup auf das PopupComponent zugreifen will, um zu wissen in welchem Control das Popup aufgemacht wurde}
PopupMenu.Popup(X, Y);