Eigentlich ist an dem gezeigten Quelltext, hier mal mit delphi-Tags
Delphi-Quellcode:
const
cuHand = 1;
cuFaust = 2;
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[cuHand] := LoadCursor(HInstance, 'Cursor_1');
Screen.Cursors[cuFaust]:= LoadCursor(HInstance, 'Cursor_2');
PaintBox1.Cursor := cuFaust;
end;
nichts falsch.
Alle Systemcursors haben einen Wert kleiner oder gleich Null.
Dem zufolge sollte das Beispiel funktionieren.
Was ich mir vorstellen kann ist, das die Cursors nicht geladen wurden.
Einfach mal wie folgt überprüfen:
Delphi-Quellcode:
const
cuHand = 1;
cuFaust = 2;
procedure TForm1.FormCreate(Sender: TObject);
function LoadCursorFromResource(Instance: hInst; ResName: PChar): HCURSOR;
begin
Result := LoadCursor(Instance, ResName);
if Result = 0 then
ShowMessage(format('Cursor "%s" konnte nicht geladen werden.', [ResName]));
end;
begin
Screen.Cursors[cuHand] := LoadCursorFromResource(HInstance, 'Cursor_1');
Screen.Cursors[cuFaust] := LoadCursorFromResource(HInstance, 'Cursor_2');
PaintBox1.Cursor := cuFaust;
end;
Ohne diese Abfrage über eine Hilfsvariable wird im Falle das der Cursor nicht
geladen bzw. in der Resource gefunden wurde keine Fehlermeldung erzeugt.
Der Rückgabewert von LoadCursor ist im Fehlerfall Null (0) das heisst der
Defauldcursor (IDC_ARROW) würde geladen / angezeigt.