Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mouseover bei Object Bevel / Cursor ausblenden (https://www.delphipraxis.net/100187-mouseover-bei-object-bevel-cursor-ausblenden.html)

taktaky 24. Sep 2007 11:01


Mouseover bei Object Bevel / Cursor ausblenden
 
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



---------------

pstruh 24. Sep 2007 11:08

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Wie wäre es mit Bevel1.Cursor:=crNone?

taktaky 24. Sep 2007 11:53

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

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='einblenden' then
  begin

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

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

end;
Ist das möglich?


Gruß
______________

Alien426 24. Sep 2007 12:08

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von taktaky
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
if Button7.Caption='einblenden' then
  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.

pstruh 24. Sep 2007 13:18

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
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ß

taktaky 24. Sep 2007 13:39

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

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


------------

taktaky 24. Sep 2007 13:41

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

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


_________

taktaky 24. Sep 2007 15:29

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
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.




______________

pstruh 24. Sep 2007 15:30

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
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.
Delphi-Quellcode:
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

DeddyH 24. Sep 2007 15:39

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von pstruh
PS: und bitte >> kapieren mit EINEM k

Und einem p :mrgreen:

pstruh 24. Sep 2007 15:43

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
huhuhuhuhuhuhuhuhu - EIGENTOR !!!!!!!!!!!!!! :oops:

taktaky 24. Sep 2007 16:29

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo pstruh,

so habe ich deinen Vorschlag eingebaut !



____________

s-off 24. Sep 2007 16:33

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
:!: :!: :!: Schaut es Euch lieber nicht an :!: :!: :!:

Jetzt mal ernsthaft - wenn man doch über Wochen hinweg merkt, dass Hopfen und Malz verloren ist, warum unternimmt dann niemand etwas?

DeddyH 24. Sep 2007 16:58

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Au weia :pale:
@taktaky: Mach doch lieber erstmal was ganz einfaches, damit Du die Grundlagen einigermaßen auf die Reihe bekommst. So wird das auch in den nächsten Monaten nichts.

taktaky 24. Sep 2007 17:03

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von s-off
:!: Schaut es Euch lieber nicht an :!:

Du bist nicht eingeladen :twisted:

Es gibt leider ein paar User in diesem Forum, die die Themen kreisen und bauen nur Mißt, Kritik, Auseinandersezung, ... ohne Ende

Ich hoffe, dass bald in dem Forum eine Ignoriere-Option kommt :mrgreen:



_________

Nuclear-Ping 24. Sep 2007 17:54

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Oh man Taktaky ... da findet sich wieder einer, der so nett ist und dir alles Mundgerecht vorkaut und du bekommst es wiedermal nicht hin. Kein Stück Anstrengung, keine Minute nachdenken. Ne, einfach Screenshot machen, ins Forum kleben und rumheulen. Sowas wie dich hab ich echt noch nicht erlebt ... :wall: ... Wann gibst du's denn endlich auf?

taktaky 24. Sep 2007 18:02

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von Nuclear-Ping
Wann gibst du's denn endlich auf?

Wenn tot bin :mrgreen:

kalmi01 24. Sep 2007 18:03

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von Nuclear-Ping
Oh man Taktaky ... da findet sich wieder einer, der so nett ist und dir alles Mundgerecht vorkaut und du bekommst es wiedermal nicht hin. Kein Stück Anstrengung, keine Minute nachdenken. Ne, einfach Screenshot machen, ins Forum kleben und rumheulen. Sowas wie dich hab ich echt noch nicht erlebt ... :wall: ... Wann gibst du's denn endlich auf?

NEIN !!!
Bitte nicht !
Ich schreibe gerade eine Doku-Soap ("Das verkannte Genie", oder so).
Bin erst bei Folge 7329.
Ich brauche noch Material !
Bitte, bitte, bitte :zwinker: :zwinker: :zwinker: :zwinker:
Lasst ihn weitermachen :mrgreen:

Die Muhkuh 24. Sep 2007 18:06

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von taktaky
Zitat:

Zitat von Nuclear-Ping
Wann gibst du's denn endlich auf?

Wenn tot bin :mrgreen:

[sarkasmus]Hoffentlich bald...[/sarkasmus]

DeddyH 24. Sep 2007 18:11

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Mein Dozent in der Umschulung zu einem meiner Mitschüler:
Zitat:

Ich sehe, Sie machen sehr viel am Computer. Ich sehe aber auch, dass Sie keine Ahnung von dem haben, was Sie da tun.
Ich weiß auch nicht, wieso mir das jetzt wieder einfällt :mrgreen:

Nuclear-Ping 24. Sep 2007 18:27

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Vielleicht ist dein Mitschüler ja Taktaky. :mrgreen:

DeddyH 24. Sep 2007 18:28

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Falls er Pole ist, könnte das sogar sein :mrgreen:

pstruh 24. Sep 2007 18:34

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
dzien dobry!
Also wenn taktaky Pole ist, dann kann er unsere Sprache schon verdammt gut - ich würde das nie so gut auf polnisch hinbekommen!
(das muss ja auch mal gesagt werden!)

taktaky 24. Sep 2007 22:16

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Zitat:

Zitat von Die Muhkuh
Zitat:

Zitat von taktaky
Zitat:

Zitat von Nuclear-Ping
Wann gibst du's denn endlich auf?

Wenn tot bin :mrgreen:

[sarkasmus]Hoffentlich bald...[/sarkasmus]

Ich hoffe, dass du der älterste Mann der Welt werden kannst :mrgreen:

taktaky 24. Sep 2007 23:07

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin ein Schritt weiter

Was ist mit OrgWinProc !!!


Gruß


_______

Nuclear-Ping 25. Sep 2007 11:30

Re: Mouseover bei Object Bevel / Cursor ausblenden
 
Ein weiteres Zeichen dafür, dass du's lieber sein lassen solltest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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