AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Images nutzen eine mouseover-proz.! Geht das?

Ein Thema von maximi · begonnen am 23. Jan 2004 · letzter Beitrag vom 23. Jan 2004
Antwort Antwort
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#1

Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 13:45
Hallo!

Delphi-Quellcode:
   for i := 0 to 20 do
   begin
     Image[i] := TImage.Create(self);
     Image[i].Parent := parent;
     Image[i].onmousemove := menuskinmousenter(msg(?????))
   end;
Delphi-Quellcode:
procedure Tmenuskin.menuskinonmousenter(var msg : tmessage;;sender:TObject); message cm_mouseenter;
var i:Integer;
begin
  //Quellcode

    inherited;
end;
Also ich hab da einige Fehler im Quellcode. Vielleicht kann mir ja jemand helfen??

Danke
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 14:33
Du musst eine neue Klasse von TImage ableiten:

Delphi-Quellcode:
interface

// ...

type
  TMyImage = class(TImage)
  private
    procedure menuskinonmousenter(var msg : tmessage); message cm_mouseenter;
  end;

// ...

implementation

// ...

procedure TMyImage.menuskinonmousenter(var msg : tmessage);
begin
  //Quellcode

  inherited;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   for i := 0 to 20 do
   begin
     Image[i] := TMyImage.Create(self);
     Image[i].Parent := parent; // Hier müsste eigentlich auch self stehen,
                                // Aber ich weis ja nicht wie der Rest deines Codes aussieht
   end;
end;
  Mit Zitat antworten Zitat
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#3

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 14:58
Zitat:
Du musst eine neue Klasse von TImage ableiten:
Das ist mir schon klar. Das hab ich auch.
Jedem Image weise ich eine imagemousemove ereignis zu, aber
1. weiß ich nicht welchen parameter ich bei msg und
2. siehe punkt 1.


Danke
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#4

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 15:01
Keinen. Onmousemove ist ein event und gibt daher den parameter vor. Die Methode lässt sich nur auf andere Methoden umbiegen, die sowieso die gleichen Parameter haben.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#5

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 15:45
Zitat von maximi:
Das ist mir schon klar. Das hab ich auch.
Jedem Image weise ich eine imagemousemove ereignis zu, aber
1. weiß ich nicht welchen parameter ich bei msg und
2. siehe punkt 1.


Danke
Um weitere Verständnis-Probleme aus dem Weg zu schaffen:
1. Welches Eregnis willst du jetzt behandeln? OnMouseMove oder cm_mouseenter??
2. Welchen Code möchtest du dann während der Behandlung des Eregnisses ausführen?
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 19:10
Hi,

wo ist das Problem ?

Warum wollt Ihr erst eine neue Klasse erstellen ?

Ich würde das so machen :

Code:
  // innnerhalb der Mainform folgende Procedure Deklarieren(nicht in Private)
  procedure MouseMoveOnImages(Sender: TObject; Shift: TShiftState; X, Y: Integer);
und bei erzeugen der Images folgendes :

Code:
 for i := 0 to 20 do
   begin
     Image[i] := TImage.Create(self);
     Image[i].Parent := parent;
     Image[i].onmousemove := MouseMoveOnImages;
   end;
die Procedure könnte dann so aussehen :

Code:
procedure MouseMoveOnImages(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Var aktImg : TImage;
begin
  if Sender is not TImage then exit;
  aktImage := TImage(SEnder);
  / so und jetzt was Du mit dem Image machen willst
end;
Oder habe ich euch falsch verstanden ?

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 19:18
unit mit mouseenter und mouseleave ergeignis für timage und tbutton. Hätte die zwar lieber als anhang dran gepackt aber da kommt immer ne accessviolation
Delphi-Quellcode:
unit ELButton;

interface

uses StdCtrls, classes, Messages, controls, ExtCtrls;

type
  TELButton = class(TButton)
  private
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  published
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

  TELImage = class(TImage)
  private
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  published
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

  procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('ESFEB', [TELButton, TELImage]);
end;

procedure TELButton.CMMouseEnter(var Msg: TMessage);
begin
  if Enabled and Assigned(fOnMouseEnter) then fOnMouseEnter(Self);
end;

procedure TELButton.CMMouseLeave(var Msg: TMessage);
begin
  if Enabled and Assigned(fOnMouseLeave) then fOnMouseLeave(Self);
end;

procedure TELImage.CMMouseEnter(var Msg: TMessage);
begin
  if Enabled and Assigned(fOnMouseEnter) then fOnMouseEnter(Self);
end;

procedure TELImage.CMMouseLeave(var Msg: TMessage);
begin
  if Enabled and Assigned(fOnMouseLeave) then fOnMouseLeave(Self);
end;


end.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 21:12
Hallo SirThornberry,
ist Dir schon aufgefallen das Deine Komponenten die Ereignisse auch feuern wenn Enabled auf False steht ?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Images nutzen eine mouseover-proz.! Geht das?

  Alt 23. Jan 2004, 23:36
ist mir noch nicht aufgefallen. Danke für den Hinweis, werdsch mal mit abändern.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:16 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