AGB  ·  Datenschutz  ·  Impressum  







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

Hand-Cursor benutzen?

Ein Thema von Alexander · begonnen am 2. Sep 2003 · letzter Beitrag vom 4. Sep 2003
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Hand-Cursor benutzen?

  Alt 2. Sep 2003, 17:17
Hi,
ich möchte in meiner Anwendung einen HAnd-Cursor nutzen.
Der Cursor soll auf dem ganzen Bildschirm angezeigt werden.
ICh dachte bisher, dass ich das mit LoadCursor machen könnte, doch irgendwie klappt das ncith so wie ich will...
Es passiert nämlcih nichts...
Hier mal mein Versuch:
SetCursor(LoadCursor(hInstance, IDC_HAND)); Was genau habe ich falsch gemacht?
Danke schon mal
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Hand-Cursor benutzen?

  Alt 2. Sep 2003, 17:22
Hallo alexander,
Screen.Cursor := crHandPoint; bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: Hand-Cursor benutzen?

  Alt 2. Sep 2003, 18:07
Hehe..
Ja, aber das gilt nur innerhalb meiner Anwendung...
Ich möchte aber, dass das für den ganzen Bildschirm gilt.
Wie mache ich denn das?

PS: Das habe ich auch schon herausgefunden und mich geärgert, dass es nur für den Client-BEreich des Forms gilt...
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#4

Re: Hand-Cursor benutzen?

  Alt 2. Sep 2003, 18:59
Hallo alexander,
welchen Sinn sollte das haben? Meine Anwendung blockiert gerade das gesamte System?
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Hand-Cursor benutzen?

  Alt 2. Sep 2003, 19:25
Nö ich bastle mir gerade eine Art Farbpicker und ich dachte mir da kann man das Icon ganz gut für nehmen.
Wäre toll, wenn du/ihr nmir erzählen könntet, wo der fehler bei mir (oben im Code) liegt. ODer ob das ganz anders geht
DAnke schon mal
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Hand-Cursor benutzen?

  Alt 2. Sep 2003, 23:07
Damit bin ich weiter gekommen als mit SetCursor...
Code:
  SetSystemCursor(Screen.Cursors[crHandPoint], OCR_NORMAL);
Allerdings ist das noch immer nicht sicher. (Wenn eine Anwendung den Cursor ändert, damm muss man noch irgendwie auf die Nachricht WM_SETCURSOR reagieren.)
Außerdem habe ich es ohne Reboot nicht hinbekommen, den Cursor wieder auf das Original zurückzusetzen.

Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#7

Re: Hand-Cursor benutzen?

  Alt 3. Sep 2003, 00:11
Normalerweise wird nach Auslössen der Capturing Aktion erstmal die Maus im kompletten Desktopbereich deiner Anwednung exklusiv zugeordnet. Nun hat deine Anwendung die absolute Kontrolle über den Mousecursor.

Delphi-Quellcode:
procedure TForm1.ButtonCaptureClick(Sender: TObject);
begin
  
  SetCapture(Handle);
  Screen.Cursor := crHandPoint;
end;

procedure TForm1.FormMouseUp();
begin
  ReleaseCapture;
  Screen.Cursor := crDefault;
end;
Gruß Hagen
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#8

Re: Hand-Cursor benutzen?

  Alt 3. Sep 2003, 15:56
Super
Danke Hagen, funktioniert super.

Nur eine Frage habe ich ncoh. Laut MSDN müsste das doch auch mit meinem Code funktionieren, oder, was ist daran falsch?

PS: Jetzt gibt es auch gleich das Programm in der Freeware-Sparte
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Hand-Cursor benutzen?

  Alt 3. Sep 2003, 20:05
Zitat:
Nur eine Frage habe ich ncoh. Laut MSDN müsste das doch auch mit meinem Code funktionieren, oder, was ist daran falsch?
Es funktioniert auch, aber nur so lange wie du die Maus nach dem SetCursor() NICHT bewegst. Bei jeder Mausbewegung wird eine wm_SetCursor Message an das Fenster unter der Maus gesendet (wenn windows per wm_NCHitTest erkennt das sich was geändert hat). In diesem, und NUR in dieser Messagebehandlung ist es sinnvoll nun SetCursor() aufzurufen. Die VCL macht das aber schon alles selber und aktiviert den Cursor der mit Control.Cursor Property eingestellt wurde. Somit ist reine Windows API Programmierung zwar nett aber durch das Verhalten der VCL wird dies alles schon abgedeckt.

Gruß Hagen
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#10

Re: Hand-Cursor benutzen?

  Alt 4. Sep 2003, 15:07
OK.
Ich muss halt immer genau wissen, was falsch war. Sonst lernt man ja ncihts dazu.
OK. Danke!!
Alexander
  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 06:51 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