Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Cursor Resource Einbinden klapt nicht warum ?

  Alt 24. Jul 2009, 09:38
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.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat