Wenn du ein TMouseDown Ereignis auswertest, steht die Maustaste (die gerade gedrückt ist / sind) im Shift. Da kannst du mit ssLeft (musst genau gucken wie die hieß, bin mir gerade nicht sicher) und ssRight gucken welche der Tasten alles gedrückt sind
Delphi-Quellcode:
if ssLeft in Shift then
begin
..
end;
if ssRight in Shift then
begin
end;
Dabei schließt ein Shift natürlich nicht das gleichzeitige drücken der Tasten aus.
Während einer Mausbewegung (OnMouseMove) gilt das gleiche. Wird ein OnMouseUp Ereignis ausgelöst, so steht in MouseButton die Taste, die das Ereignis auslöste (in Shift weiterhin nur, was noch gedrückt ist).
Wenn du ein eigenen Listener schreibst, findest du im MS-Windows
SDK genaueres, wie eben diese Dinge codiert sind.
Gruß Der Unwissende