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
 
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
 


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:19 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