Ich habe eine bessere Lösung gefunden, die um einiges übersichtlicher ist...
Als erstes braucht man einen "Ersatz - Cursor" dem man ganz normal als Sprite erstellt.
Dazu natürlich noch die ganzen Sprites die man anklicken möchte...
Jetzt erstellt man für den Cursor - Sprite die Standard Kollisionsabfrage. Wenn dann der Cursor mit einem "klickbarem" Sprite kollediert, setzt man einfach einen best. Wert in eine best. Var.
In der OnClick Methode des DxDraw Steuerlements fragt man diese Var nun wieder ab und fertig ist der Spass
Hier noch mal ein paar Fetzten Source Code dafür...
Delphi-Quellcode:
Private
{ Private-Deklarationen }
Public
{ Public-Deklarationen }
End;
TMenu = Class(TImageSprite)
End;
TCursor = Class(TImageSprite)
Procedure DoMove(MoveCount: Integer); Override;
Procedure DoCollision(Sprite: TSprite; Var Done: Boolean); Override;
End;
Var
GeheZu: TMenu;
Einkaufen: TMenu;
Verkaufen: TMenu;
ECursor: TCursor;
WasIstAktiv: String;
[...]
Procedure TfrmMain.FormCreate(Sender: TObject);
Begin
// Blendet den Cursor aus.
Screen.Cursor := -1;
End;
Procedure TCursor.DoMove(MoveCount: Integer);
Begin
Collision;
End;
Procedure TCursor.DoCollision(Sprite: TSprite; Var Done: Boolean);
Begin
If Sprite = GeheZu Then WasIstAktiv := 'GeheZu';
If Sprite = Einkaufen Then WasIstAktiv := 'Einkaufen';
If Sprite = Verkaufen Then WasIstAktiv := 'Verkaufen';
End;
Procedure TfrmMain.DXDraw1Click(Sender: TObject);
Begin
If WasIstAktiv = 'GeheZu' Then
Begin
End;
End;
Hoffe das hat jemanden geholfen...
Grüsse,
Ricane