AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mouseover bei Object Bevel / Cursor ausblenden
Thema durchsuchen
Ansicht
Themen-Optionen

Mouseover bei Object Bevel / Cursor ausblenden

Ein Thema von taktaky · begonnen am 24. Sep 2007 · letzter Beitrag vom 25. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
taktaky
(Gast)

n/a Beiträge
 
#1

Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 11:01
Hallo,

ich möchte den Cursor nur auf den Bereich Bevel ausblenden

Ist das möglich?
ich möchte den Befehl : Screen.Cursor := crNone ausführen, wenn der Cursor gerade auf Bevel sich befindet



---------------
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#2

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 11:08
Wie wäre es mit Bevel1.Cursor:=crNone?
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#3

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 11:53
Zitat von pstruh:
Wie wäre es mit Bevel1.Cursor:=crNone?
Hallo

ich habe meine Frage nicht gut ausgedrückt

Ich möchte den Cursor auf den Bereich Bevel1 ein- und ausblenden durch Click auf Bevel1 selbst

Momentan verwende ich ein Click auf ein Button :
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
if Button7.Caption='einblendenthen
  begin

   Button7.Caption:='ausblenden';
   Bevel1.Cursor:=crNone
   else

   begin
   Button7.Caption:='einblenden';
   ShowCursor(true); // show cursor
   end;

end;
Ist das möglich?


Gruß
______________
  Mit Zitat antworten Zitat
Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 12:08
Zitat von taktaky:
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
if Button7.Caption='einblendenthen
  begin

   Button7.Caption:='ausblenden';
   Bevel1.Cursor:=crNone
   else

   begin
   Button7.Caption:='einblenden';
   ShowCursor(true); // show cursor
   end;

end;
Oh weh. Und diesen Code lässt Delphi durchgehen? Keine Warnungen?

Denn von der Logik her ist der Code nicht schlüssig. Schau ihn dir doch noch mal mit anständiger Formatierung (Einrückungen) an und überlege vor allem wo Bereiche beginnen und enden...

Nutze die Möglichkeit, den Komponenten eigenene Namen zu geben. "Button7" wird dir nichts mehr sagen, wenn du ihn mal 1 Monat nicht mehr gesehen hast.
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#5

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 13:18
Durch Click auf das Bevel den Cursor ein-/ausschalten? Das ist ja beim Wiedereinschalten des BevelCursors dann ein "Blindflug" - aber immerhin. Du könntest z.B. die FensterProzedur des Bevels benutzen; also "Bevel.WindowProc". Innerhalb der Prozedur reagierst du z.B. auf WM_LButtonUp und schaltest den Cursor an/aus.
Gruß
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#6

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 13:39
Zitat von Alien426:
Oh weh. Und diesen Code lässt Delphi durchgehen? Keine Warnungen?
Ja, ohne Error und ohne Wahrnung. Es funktioniert.

Aber wie gesagt, ich möchte dies durch einen Klick auf Bevel1 selbst durchführen und nicht einen Klick auf ein Button


------------
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#7

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 13:41
Zitat von pstruh:
Durch Click auf das Bevel den Cursor ein-/ausschalten? Das ist ja beim Wiedereinschalten des BevelCursors dann ein "Blindflug" - aber immerhin. Du könntest z.B. die FensterProzedur des Bevels benutzen; also "Bevel.WindowProc". Innerhalb der Prozedur reagierst du z.B. auf WM_LButtonUp und schaltest den Cursor an/aus.
Gruß
Nicht ganz kappiert


_________
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#8

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 15:29
Nun habe ich ein anderes Problem,

auf mein Form liegt eine fremde Anwendung. Der Cursor wird nicht ausgeblendet !
screen.Cursor:=crNone hilft nicht!

Wie kann man den Cursor ausbleden, wenn er auf die fremde Anwendung bewegt?

Die fremde Anwendung befindet sich auf Panel1.




______________
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#9

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 15:30
Hallo taktaki,
dann wollen wir mal versuchen es zu erklären (bin da leider keine Experte):

Jedes (?) fensterbasierte Control hat eine Schnittstelle, die die von Windows an das Control gesendeten Botschaften entgegennimmt und verteilt. Wenn man sich in diese Prozedur "einklinkt", kann man auf diese Botschaften reagieren, noch bevor das Control darauf reagieren kann und dadurch das Verhalten des Controls beeinflussen. Zitat der Hilfe: "Mit Hilfe von WindowProc können Sie die Fensterprozedur des Steuerelements vorübergehend ersetzen oder unterklassifizieren". Weitere Infos findest du in der Windows-Hilfe zu "WindowProc".

Folgende Schritte sind notwendig:

1. Deklaration der Zeigervariablen für die Originaladresse (lokal im Implementationsteil deiner Unit), z.B.
var BevelOrgWinProc : TWndMethod; 2. "Einklinken" deiner eigenen Fensterprozedur (im OnCreate deines Formulars), z.B.
Delphi-Quellcode:
BevelOrgWinProc :=Bevel.WindowProc; // Originaladresse merken
Bevel.WindowProc:=myBevelWinProc; // deine eigene Fensterprozedur "einklinken"
3. Deklaration deiner eigenen Fensterprozedur (im private-Abschnitt deiner Unit), z.B.
Delphi-Quellcode:
procedure TForm1.myBevelWinProc(var Msg:TMessage);

   procedure ToggleCursor;
   begin
     if Bevel.Cursor=crDefault then Bevel.Cursor:=crNone
                               else Bevel.Cursor:=crDefault;
   end;
    
begin
  if Msg.Msg=WM_LButtonUp then ToggleCursor // Reaktion von LeftButtonUp
                                                     // soll verändert werden
                                                       
                          else BevelOrgWinProc(Msg); // sonst Original aufrufen
end;
Das sollte eigentlich den gewünschten Effekt haben...
Gruß

PS: und bitte >> kapieren mit EINEM k
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Mouseover bei Object Bevel / Cursor ausblenden

  Alt 24. Sep 2007, 15:39
Zitat von pstruh:
PS: und bitte >> kapieren mit EINEM k
Und einem p
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:30 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