AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerdefinierter Cursor

Ein Thema von DelphiUser123 · begonnen am 29. Mai 2024 · letzter Beitrag vom 4. Jun 2024
Antwort Antwort
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#1

Benutzerdefinierter Cursor

  Alt 29. Mai 2024, 15:45
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

AW: Benutzerdefinierter Cursor

  Alt 29. Mai 2024, 16:18
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/...".
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Mai 2024 um 14:13 Uhr)
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
244 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Benutzerdefinierter Cursor

  Alt 30. Mai 2024, 09:51
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.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Stolle58

Registriert seit: 4. Aug 2023
Ort: Frankfurt
20 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Benutzerdefinierter Cursor

  Alt 30. Mai 2024, 11:39
Oder du benutzt einen Resource-Editor.

Im Internet gibt es jede Menge frei Resource- Editoren.
Eine Googlesuche schaft abhilfe.
Reinhold
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#5

AW: Benutzerdefinierter Cursor

  Alt 1. Jun 2024, 00:51
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.
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
244 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Benutzerdefinierter Cursor

  Alt 1. Jun 2024, 07:19
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
Miniaturansicht angehängter Grafiken
cursorres.png  
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#7

AW: Benutzerdefinierter Cursor

  Alt 4. Jun 2024, 01:21
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?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz