Autor Beitrag
lars
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 29.09.02 21:07 
Wenn ich es richtig sehe, geht es mit den Standart Möglichkeiten von Delphi nur, einen Mauszeiger von beschränkter Größe (so aus dem Kopf 32*32 Pixel glaube ich) zu benutzten. Jedenfalls habe ich es so probiert und es ging nur so. Ist das richtig, und weiß anderenfalls jemand wie es möglich ist, größere Mauszeiger zu implementieren?

sänks
Lars
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Di 01.10.02 16:20 
Mit der Windows-API-Funktion SetCursor() kannst du den Cursor setzen. Soweit ich das sehe, solltest du SetCursor() als Antwort auf die WM_SETCURSOR-Nachricht aufrufen, aber theoretisch geht's jederzeit.

Der einzige Parameter ist (Überraschung) ein Handle zu einem Cursor. LoadImage gibt beispielsweise, wenn du damit einen Cursor lädst, einen solchen Handle zurück.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Di 01.10.02 16:58 
oder du arbeitest mit einem Bild. So habe ich das zum Beispiel bei meinem 3D-Pong gemacht (gut, da war's ein Würfel...)

Löschst den Mauszeiger (damit er nicht mehr da ist)
Malst ein bild (der neue Mauszeiger)
Positionierst das Bild auf die Koordinaten der Maus (jedesmal wenn sich die Maus bewegt)

Fazit: Bild wandert mit der Maus und sieht aus wie ein Mauszeiger

@ OregonGhost: Kann man denn nun mit SetCursor() beliebig große Cursor machen? Davon hast du nix geschrieben.

Tschüß
Thomas

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 01.10.02 17:16 
also die normalen *.cur bzw. *.ani dateien sind in win auf 32*32 limitiert.

Die einzige möglichkeit die ich kenne wäre die von Tommie-lie.

_________________
In the beginning was the word.
And the word was content-type: text/plain.
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Sa 05.10.02 17:15 
Theoretisch kann ein Cursor beliebige Maße haben, ebenso wie Icons. Laut PSDK muss ein Cursor unbedingt die Maße von GetSystemMetrics(SM_CXCURSOR) * GetSystemMetrics(SM_CYCURSOR) haben. Das wird in der Tat in den meisten Fällen 32*32 sein. In der Praxis zeigt sich, dass du beliebige Cursor setzen kannst, aber der Cursor auf 32*32 verkleinert wird.

UND: Die *.cur- und *.ani-Dateien haben denselben Aufbau wie .ico-Dateien und sind NICHT auf 32*32 beschränkt. Jedenfalls lässt sich bei mir anstandslos eine 48*48.cur-Datei als Cursor setzen, nur halt dass sie verkleinert wird.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 05.10.02 19:11 
Hättest du dir das ncht apsren können? Was bringt es denn, wenn ich doppelt so viele Pixel in meinem Bild habe, wenn nachher sowieso nur die Hälfte angezeigt wird. Anders: Was bringt ein 64*64-Pixmap, wenn der Cursor sowieso auf 32*32 gestaucht wird? Nix, oder? Also ist die einzige wirklich funktionierende Lösung meine, mit dem Bild.
Sind ICO-Dateien nicht auch nur Bitmaps mit 'ner anderen Endung? mMan kann doch mit diesem altenn Paint normale Bitmaps machen und die dann als Icons verwenden. War es nicht mal so?
Wenn ja, dann kann der Cursor natürlich jede beliebige Größe haben. Problem ist halt nur, daß es nicht angezeigt wird...

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 05.10.02 19:57 
ico sind nicht gelcih bmp !!!

in einem iconn editor (microangelo) ab ich z.B. eine transparente farbe und eine invertierte farbe. ausserdem kann ein ico Icons in vielen verscheidenen Massen und farbtiefen haben !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 05.10.02 20:42 
Gut, der Alpha-Kanal.
Aber ich meine doch vom Aufbau. Zumindest scheint Windows (95 und 98) BMP auch als Icons anzunehmen, selbst wenn die Endung ICO und nicht BMP ist...

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Fr 11.10.02 18:19 
Fakt ist, dass jedes einzelne Abbild (jedes einzelne Icon) einer Icon-Ressource vom Aufbau her einer Bitmap gleicht, aber noch weitere Angaben, wie bereits beschrieben, zu Transparenz/Invertieren (was übrigens nicht der Alphakanal ist, den können sowohl Icons als auch Bitmaps haben) und zum Hotspot enthält.
Davon abgesehen kann eine Icon-Ressource wie gesagt auch jede Menge einzelner Abbilder enthalten.

Natürlich kann man einfach eine Bitmap statt eines Cursor zeichnen, aber das funktioniert nur innerhalb der Fenster der Anwendung bzw. man sollte eigentlich nicht außerhalb des eigenen Fensters zeichnen.
Dass LoadImage() und Co. eine Bitmap auch als Icon laden können ist eine andere Sache. Dann hat dieses Icon aber auch nur eine Farbtiefe und Auflösung, keine Transparenz und keinen Hotspot.

Bleibt noch die Frage wozu man in einer Anwendung, die kein Spiel ist, einen dermaßen großen Cursor braucht. In einem Spiel kann es ohnehin sinnvoller sein, den Cursor entweder selbst zu zeichnen oder soweit hardwareseitig unterstützt die Grafikkarte das übernehmen zu lassen, da weiß ich aber nicht, wie groß so ein Cursor sein kann.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.