Ich weiß nicht ob das hier so richtig ist, aber ich habe "versucht" ein SpriteCursor zu erstellen.
Es verhält sich wie ein normaler/s (
) Sprite:
Also man muss es erstellen und ein Bild zuweisen:
Delphi-Quellcode:
AdCursor := TAdSpriteCursor.Create(AdSpriteEngine);
AdCursor.Image := AdImageList.Find('cursor');
Und dann muss man nur noch in der Zeichenroutine den Cursor zeichnen (ich konnte das bisher noch nicht auslagern):
Delphi-Quellcode:
if AdDraw.CanDraw then
begin
// ... vorbereiten
AdCursor.Draw;
// Sonsnst noch irgendwas zeichnen
// und alles abschließen
end;
Um den Cursor nun bewegen zu lassen muss man ".Visible" auf "true" setzen. Zusätzlich kann man auch noch ein "ActionPoint" setzen. Der gibt an, wo "geklickt" werden soll.
Delphi-Quellcode:
AdCursor.ActionPoint := AdRelativePoint(0,0);
AdCursor.Visible := true;
Normalerweise ist er oben links. Aber bei einen Fadenkreuz sollte man den Mittelpunkt nehmen.
Die Funktion
AdRelativePoint
erwartet dafür eine relative Zahl (am besten zwischen 0 und 1) für den X und Y Versatz.
Ein Sache zu "Visible":
Wenn man den Cursor anzeigen lässt, dann stellt er alle Controls, welche sich auf den gleichen Control von dem AdDraw (dessen Engine der Curosr gehört) befinden, und deren Untercontrols so ein, dass dort kein Cursor erscheint. Schaltet man es wieder aus, wird der "crDefault" Cursor verwendet.
Leider wird der Spritecursor hinter den Controls angezeigt oder das AdDraw wird vor den Controls gesetzt...
PS: Eine statische Möglichkeit gibt es noch nicht.
PPS: Igel, wenn du möchtest, kannst du ihn standardmäßig einbauen.
PPPS: Ja ich weiß, dass Cursor eigentlich den Curet beschreibt, aber wir belassen es mal dabei