Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Benutzerdefinierter Cursor (https://www.delphipraxis.net/215217-benutzerdefinierter-cursor.html)

DelphiUser123 29. Mai 2024 14:45

Benutzerdefinierter Cursor
 
Hallo liebes Forum,

in der Delphi Dokumentation wird beschrieben, wie mit Vcl.Forms.TScreen.Cursors ein benutzerdefinierter Cursor erstellt wird. "...verwenden Sie entweder zwei Bitmaps (ein Bitmap für das normale Bild und ein Bitmap für das Maskenbild) zum Erstellen eines Symbols..." Was ist mit Maskenbild Bitmap gemeint? Wie erzeuge ich so ein Bitmap? Kann ich bei dem (normalen) Bitmap generell die Größe anpassen- so dass Kinder die App leichter bedienen können?

Vielen Dank für Antworten.

himitsu 29. Mai 2024 15:18

AW: Benutzerdefinierter Cursor
 
Zitat:

oder führen Sie die folgenden Schritte aus
Willst du nicht lieber das ODER machen?



Ein Schwarz/Weiß-Bitmap, zum Ausschneiden,
quasi als Alpha-Kanal, dort wo die Pixel des normalen Bitmaps transparent sein sollen, bzw. wo nicht.
Ich glaub es war Schwarz=Transparent und Weiß=SicherbarerPixelDesCursors.

siehe ICONINFO.hbmColor und ICONINFO.hbmMask für MSDN-Library durchsuchenCreateIconIndirect

https://learn.microsoft.com/en-us/wi...teiconindirect
https://learn.microsoft.com/en-us/wi...nuser-iconinfo





Es ist die Erweiterung vom MSDN-Library durchsuchenCreateCursor,
wo man zwei Masken-Bitsmaps angeben konnte, eines für AND und das Andere für XOR,
also Bitmap für Transparenz und eines für die "Farbe", wobei Farbe dort bedeutet "invertierte Farbe des drunterliegenden Pixels des Desktop/Fenster/...".

TomyN 30. Mai 2024 08:51

AW: Benutzerdefinierter Cursor
 
Die Cursorgröße gibt windows vor, man kann sie aber global einstellen, daher vermute ich, dass man über windows (WMI ?) da irgendwie ran käme, man würde aber sicherlich global umstellen.

Stolle58 30. Mai 2024 10:39

AW: Benutzerdefinierter Cursor
 
Oder du benutzt einen Resource-Editor.

Im Internet gibt es jede Menge frei Resource- Editoren.
Eine Googlesuche schaft abhilfe.

DelphiUser123 31. Mai 2024 23:51

AW: Benutzerdefinierter Cursor
 
In der Delphi Dokumentation steht:

"1. Erstellen Sie die Cursor-Ressource mithilfe eines Ressourcen-Editors.
2. Deklarieren Sie eine Cursor-Konstante mit einem Wert,der mit einer vorhandenen Cursor-Konstanten nicht in Konflikt steht.
3. Ermitteln Sie mit Hilfe der Windows API-Funktion LoadCursor ein Handle für den neuen Cursor.
4. Setzen Sie die Cursors-Eigenschaft, die von der neu deklarierte Cursor-Konstante indiziert ist, auf das von LoadCursor ermittelte Handle."

Den ersten Punkt habe ich ausgeführt mit meiner Datei "RedBigCursor.res". Da ich nur ein Laie bin komme ich nicht klar mit der restlichen Anleitung, insbesondere dem Handle. Kann jemand den Code posten?

Nochmals Danke.

TomyN 1. Jun 2024 06:19

AW: Benutzerdefinierter Cursor
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab die Cursor unter Prjekt -> Ressourcen und Bilder hinzugefügt und dann mache ich im Programm einfach folgendes

Delphi-Quellcode:
procedure TSATMAT.LoadCursors;
var CursorLoadID: Cardinal;
begin
  CursorLoadID := LoadCursor(hInstance, 'CUCURVE');
  screen.Cursors[cuCu] := CursorLoadID;
  CursorLoadID := LoadCursor(hInstance, 'CUPEQQ');
  screen.Cursors[cuPEQ] := CursorLoadID;
  CursorLoadID := LoadCursor(hInstance, 'REDDOT');
  screen.Cursors[cuRD] := CursorLoadID;
  CursorLoadID := LoadCursor(hInstance, 'CURED');
  screen.Cursors[cuRed] := CursorLoadID;
end;
Und dann halt screen.cursor := cuCu

DelphiUser123 4. Jun 2024 00:21

AW: Benutzerdefinierter Cursor
 
Hallo, Danke @TomyN. Es gelingt mir, den Code mit einer VCL Anwendung zu realisieren, ich habe jedoch eine Firemonkey App. Ich bin auf diese Aussage gestoßen:
Zitat:

Unfortunately, FireMonkey does not support custom cursors.
Wäre es sinnvoll alles in eine VCL Anwendung zu übertragen und dann mit einem Emulator zu arbeiten, wenn man die App auf Android bedienen möchte?

Oder gibt es doch noch eine Möglichkeit einen eigenen Cursor in Firemonkey zu haben?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz