AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi JvItemsPanel1 OnMouseMove + OnMouseLeave
Thema durchsuchen
Ansicht
Themen-Optionen

JvItemsPanel1 OnMouseMove + OnMouseLeave

Ein Thema von youuu · begonnen am 10. Mai 2009 · letzter Beitrag vom 10. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 15:54
Hi

Ich benutze JvItemsPanel mit dem Event OnMouseMove, allerdings verfügt diese Komponente anscheinend nicht über das Event OnMouseLeave.

Kann mir jemand sagen wie ich dies dort einbauen könnte?

Die Komponente ist für mich deshalb so wichtig, da sie beim klicken nach innen geht, so das der User auch genau sieht welches Item er angeklickt hat.
Steven
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#2

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 16:16
Ich habe es sehr unelegant lösen können, aber das muss es doch etwas besseres geben?

Delphi-Quellcode:
procedure TFormKunden.JvTimer1Timer(Sender: TObject);
begin
  if FindDragTarget(Mouse.CursorPos, True)= JvItemsPanel1 then
  Begin
    if not Image then
    Begin
      JvItemspanel1.Visible := false;
      JvImage4.Visible := true;
      JvItemspanel1.Visible := true;
      Image := true;
    End;
  End
  else
  Begin
    if Image then
    Begin
      JvItemspanel1.Visible := false;
      JvImage4.Visible := false;
      JvItemspanel1.Visible := true;
      Image := false;
    End;
  End;
end;
Das viele Visible kommt daher, dass ansonsten das Image hinter dem Panel liegt, da das Image später sichtbar gemacht wird als der Panel.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 16:29
Leite die Komponente ab, und reagiere auf die folgenden Windows Messages:

MSDN-Library durchsuchenWM_MOUSELEAVE
MSDN-Library durchsuchenWM_MOUSEMOVE

Damit solltest du den gewünschten Effekt ausführen können!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#4

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 16:40
Habe dazu dieses Beipsiel gefunden

Delphi-Quellcode:
unit Mousepanel;

interface

uses
  Messages, SysUtils, Classes, Controls, ExtCtrls;

type
  tMousepanel = class(TPanel)
  private
    { Private-Deklarationen }
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [tMousepanel]);
end;

procedure tMousepanel.CMMouseEnter(var Message: TMessage);
begin
  if assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;

procedure tMousepanel.CMMouseLeave(var Message: TMessage);
begin
  if assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

end.
Allerdings verstehe ich nicht wie Delphi weiß für welchen Panel dies gültig ist.
Kann mir jemand das erklären?

Habe bislang noch nie soetwas machen müssen.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 16:48
An der stelle wird die Kompo von dem normalen Panel abgeleitet:
  tMousepanel = class(TPanel)
Deine Version musst du vom JVItemsPanel ableiten!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#6

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 17:50
Kriege es einfach nicht hin.

Delphi-Quellcode:
type
    TJvItemsPanel = class(TPanel);
  private
    { Private-Deklarationen }
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;
Delphi-Quellcode:
procedure TFormKunden.JvItemsPanel1.CMMouseLeave(var Message: TMessage);
begin
  if assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

Wirft er mir nur Fehler raus und kann nicht compelieren.

TJvItemsPanel.CMMouseLeave(var Message: TMessage); Ist schon nicht korrekt
Steven
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 18:00
Du sollst ja auch von TJvItemsPanel ableiten:
Delphi-Quellcode:
type
  tMousepanel = class(TJvItemsPanel)
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
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 18:01
Das kann auch nicht gehen. Wenn du den Fehler lesen würdest, würdest du sehen, dass die Prozedur nicht gefunden werden kann.
Erstens willst du vom TJvItemsPanel ableiten und nicht vom TPanel selbst.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#9

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 18:06
Zitat von DeddyH:
Du sollst ja auch von TJvItemsPanel ableiten:
Delphi-Quellcode:
type
  tMousepanel = class(TJvItemsPanel)
Achso.
Ich habe es so verstanden, das tmouspanel der neue panel ist und von TPanel abgeleitet wird.
Da ich tMousepanel nicht kenne.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: JvItemsPanel1 OnMouseMove + OnMouseLeave

  Alt 10. Mai 2009, 18:07
HeHe^^

Ich war mal so frei, obwohl du mit deiner gefundenen Unit ja schon mehr als die halbe Miete hattest

Im Bsp. Projekt achte auf die Form "Caption"!

Projekt mit allem drumm und drann angehängt!
Angehängte Dateien
Dateityp: zip ownjvitemspanel_147.zip (230,1 KB, 16x aufgerufen)
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:46 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