![]() |
TImage --> OnMouseLeave
Hallo,
ich hatte mir zufällig irgendwo die WINDOWS Vista Caption Button runtergeladen - einmal "Active" & "Inactive" - und dachte mir, die zusammen mit bsNone in mein Projekt mit einzubinden. :arrow: ABER: TImage bietet mir leider ledeglich ein OnMouseMove und kein OnMouseLeave Ereignis an. Folgendes hatte ich eigentlich vor: Ich setzt auf die Form das "Inactive" Bild und gebe dem OnMouseMove Ereignis den Befehl das Bild in das "Active"-Bild zu wechseln. Aber es muss natürlich auch rückwürkend funktinieren, da ja der Button bei WINDOWS auch nicht immer aktiv is, wenn man einmal mit der Maus drüberfährt. Kennt Ihr ne kostenlose Image-Komponente, die PNG unterstützt und ein "vorgefertigtes" OnMouseLeave Ereignis hat? Wenn nicht, vielleicht könnt Ihr mir helfen, dem normalen TImage das Ereignis schmackhaft zu machen. Ach ja ... hätte ich fast vergessen: Was muss ich denn für einen Imagewechsel dem Ereignis zuweisen:
Delphi-Quellcode:
Der Quellcode ist bestimmt falsch in seiner Art, oder? :oops: :oops:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin TImage1.load=("....PNG"); end; end. Thx. mfG Störtebeker P.S.: Hoffe, der Text ist nicht allzukompliziert. |
Re: TImage --> OnMouseLeave
Und wieder schlägt ganz unerwartet und überraschend die Suche zu:
![]() Den Bug habe ich mittlerweile behoben. Der Code ist allerdings in der Firma. Da komme ich frühstens am Donnerstag dran. |
Re: TImage --> OnMouseLeave
Also, irgendwie lässt sich das Teil nicht installieren.
Delphi kommt dann immer mit: Zitat:
|
Re: TImage --> OnMouseLeave
Habe mal in der Suche weiter gesucht und einen code von den Schweizern gefunden:
Delphi-Quellcode:
{
Folgende unit ist eine visuelle Komponente abgeleitet von TImage, welche zusätzlich die 2 Ereignisse OnMouseEnter und OnMouseLeave beinhaltet. } { The following unit is a visual component inherited of TImage, which has the 2 additional events OnMouseEnter and OnMouseLeave. } unit ImageEx; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TImageEx = class (TImage) private { Private declarations } FOnMouseLeave: TNotifyEvent; FOnMouseEnter: TNotifyEvent; procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE; protected { Protected declarations } procedure DoMouseEnter; dynamic; procedure DoMouseLeave; dynamic; public { Public declarations } published { Published declarations } property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; procedure Register; implementation procedure Register; begin RegisterComponents('Additional', [TImageEx]); end; { TImageEx } procedure TImageEx.CMMouseEnter(var msg: TMessage); begin DoMouseEnter; end; procedure TImageEx.CMMouseLeave(var msg: TMessage); begin DoMouseLeave; end; procedure TImageEx.DoMouseEnter; begin if Assigned(FOnMouseEnter) then FOnMouseEnter(Self); end; procedure TImageEx.DoMouseLeave; begin if Assigned(FOnMouseLeave) then FOnMouseLeave(Self); end; end. Copyright © by SwissDelphiCenter.ch kommt Delphi auch mit: Zitat:
Delphi-Quellcode:
meckert Delphi im Bereich "TImageEx = class (TImage)" mit:
{
Folgende unit ist eine visuelle Komponente abgeleitet von TImage, welche zusätzlich die 2 Ereignisse OnMouseEnter und OnMouseLeave beinhaltet. } { The following unit is a visual component inherited of TImage, which has the 2 additional events OnMouseEnter and OnMouseLeave. } unit ImageEx; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type Form1 = class (TForm) TImageEx = class (TImage) private { Private declarations } FOnMouseLeave: TNotifyEvent; FOnMouseEnter: TNotifyEvent; procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE; protected { Protected declarations } procedure DoMouseEnter; dynamic; procedure DoMouseLeave; dynamic; public { Public declarations } published { Published declarations } property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; procedure Register; implementation procedure Register; begin RegisterComponents('Additional', [TImageEx]); end; { TImageEx } procedure TImageEx.CMMouseEnter(var msg: TMessage); begin DoMouseEnter; end; procedure TImageEx.CMMouseLeave(var msg: TMessage); begin DoMouseLeave; end; procedure TImageEx.DoMouseEnter; begin if Assigned(FOnMouseEnter) then FOnMouseEnter(Self); end; procedure TImageEx.DoMouseLeave; begin if Assigned(FOnMouseLeave) then FOnMouseLeave(Self); end; end. Zitat:
mfG Störtebeker |
Re: TImage --> OnMouseLeave
Zitat:
|
Re: TImage --> OnMouseLeave
Naja, ich muss doch den Queeltext irgendwie in mein Delphi integrieren. Und ich dachte halt ich öffne ne neue Unit --> Unit1 und kopiere dahin den Text. Wie gesagt, ich habe noch nicht soviel Erfahrung mit dem Einfügen von "fremden" Units.
Wie muss ich das denn machen? |
Re: TImage --> OnMouseLeave
Hallo Störtebecker,
die unit Forms kannst Du möglicherweise entfernen (wenn nicht eine benutzte Eigenschaft diese benötigt). Dann müsstest Du vermutlich den Ordner der Unit Forms sicher noch in die zu durchsuchenden Ordner aufnehmen, damit der Compiler diese Unit auch findet... Nach Deiner Deklaration von Form1 fehlt ein Semikolon. Diese Deklaration ist aber ohnehin unnötig. Die Komponente kannst Du dann in Deinem Projekt zur Laufzeit erzeugen. Um sie in die IDE einzufügen musst Du sie installieren. In der Prozedur "Register" steht, wo sie dann aufzufinden ist. Stahli Nachtrag: Hab in der Eile übersehen: "Error in module Unit1: Declaration of class TForm1 is missing or incorrect." Muß wohl aus Deiner eigenen Unit stammen - nicht aus der ImageEx... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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