Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
22.05.2012, 12:53:07
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Einsteiger Forum
| | |-+  Ereignisse OnMouseEnter und OnMouseLeave bei einer TForm
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Ereignisse OnMouseEnter und OnMouseLeave bei einer TForm  (Gelesen 2325 mal)
NafeX
Jr. Member
**
Offline Offline

Beiträge: 91


118340910
« am: 07.04.2002, 18:27:35 »

hi,
wie kann ich bei einer TForm die ereignisse OnMouseEnter und OnMouseLeave verwenden?
ich habe den tip [a href="http://www.swissdelphicenter.ch/de/showcode.php?id=1068" target="_blank"]http://www.swissdelphicenter.ch/de/showcod...ode.php?id=1068[/a] schon gelesen aber der hilft mir auch nicht weiter da ich nicht weiss was ich mit dem code machen muss...

danke
Gespeichert
Kylix
Gast
« Antworten #1 am: 07.04.2002, 18:33:25 »

Hi ,ich kann dir mit einem Code helfen, was stellst du dir denn vor? Was soll passieren?
Hab da deine Frage nicht ganz verstanden. Vll hilft dir jemand anders.
Gespeichert
Lightning
Hero Member
*****
Offline Offline

Beiträge: 670

100856543
WWW
« Antworten #2 am: 07.04.2002, 18:35:31 »

du kannst beinahe bei jeder komponente eine mouseevent verwenden. markierst du ein objekt, z.b. einen button, dann kannst du links in den ereignissen des objekts die mouseevents einstellen, z.b. onmousemove. klicke einfach doppelt in das feld daneben und schreibe da normal einen quellcode rein.
kleines beispiel:
Code:
unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

  private

    { Private declarations }

  public

    { Public declarations }

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

begin

showmessage('test');

end;



end.
Gespeichert

Lightning is my name, the night is my element, I'm full of energy, I am energy
NafeX
Jr. Member
**
Offline Offline

Beiträge: 91


118340910
« Antworten #3 am: 07.04.2002, 18:47:19 »

danke fürs schnelle antworten...

@lightning: das problem ist das viele komponente (z.B. ein tbutton) kein OnMouseEnter oder OnMouseLeave ereigniss haben.

@Kylix: es sollte bei dem ereigniss OnMouseEnter eine 2te form gezeigt werden, also form2.show. und bei dem ereigniss OnMouseLeave sollte die die 2te form wieder verschwinden, also form2.hide...

thx
Gespeichert
Kylix
Gast
« Antworten #4 am: 07.04.2002, 18:52:42 »

Sehr gut. Also ich denke mal du brauchst da keinen Code, oder? ;) *lol*
Gespeichert
NafeX
Jr. Member
**
Offline Offline

Beiträge: 91


118340910
« Antworten #5 am: 07.04.2002, 18:57:36 »

???
das problem ist das es keine OnMouseEnter und OnMouseLeave Ereignisse bei der TForm gibt!
Gespeichert
Lightning
Hero Member
*****
Offline Offline

Beiträge: 670

100856543
WWW
« Antworten #6 am: 07.04.2002, 19:02:12 »

ich hab das auch schon mal gemacht, nur wie? ich teste das eben, bekommst gleich nen code.
Gespeichert

Lightning is my name, the night is my element, I'm full of energy, I am energy
Lightning
Hero Member
*****
Offline Offline

Beiträge: 670

100856543
WWW
« Antworten #7 am: 07.04.2002, 20:20:12 »

ich weiß nichtmehr wo ich das hab, ich finds einfach nichtmehr. ich hab das auf eine meiner cds gebrannt, aber ich weiß nichtmehr wo. ich hab ne cd auf der hab ich sämtliche delphi projekte von mir, nur welche das ist, naja, ich hab einige cds :).
also das problem ist es, dass es keinen onmouseleave für die form gibt (oder ich kenn keine). die onmousemove prozedur beinhaltet die integer variablen "X" und "Y". diese sind die cursorpositionen der maus auf der form. mit diesen kannst du zumindest definieren in welchem bereich die form erscheinen soll, also z.b. im bereich 0-10/0-20. so kannst du eigentlich auch sagen, dass die 2. form auf allen cursorpositionen erscheinen soll, oder du schreibst das erscheinen einfach in den onmousemove rein. nun musst du halt noch definieren, dass an den rändern die form wieder geschlossen werden soll (das währe dein "onmouseleave"). also an den positionen 0/Y und X/0 und den beiden maximalwerten für X und Y. diese cursorpositionen werden so aber nur ermittelt falls du mit der maus auch auf der form bist. das problem an der sache ist, dass wenn du schnell über den rand der form ziehst die form erhalten bleibt, weil die position nicht schnell genug ermittelt wird (warum auch immer). drum würde ich da ein kleines polster einbauen, oder rausfinden wieso er da nicht schnell genug die positionen findet.
es ist zwar nicht die eleganteste lösung, aber so kannst du auch auf verschiedenen positionen der form1 verschiedene sachen einblenden. oder eben an den rändern die form2 ausblenden. musst nur darauf achten, dass die 1. form auch den focus behält, wenn sie den nicht hat, dann wird ja nicht weiter nach positionen gesucht.
falls jemand ne andere elegantere lösung hat, würde mich auch interessieren. außerdem, warum der beim schnellen ziehen, die position nicht ermittelt.
Gespeichert

Lightning is my name, the night is my element, I'm full of energy, I am energy
NafeX
Jr. Member
**
Offline Offline

Beiträge: 91


118340910
« Antworten #8 am: 07.04.2002, 20:33:04 »

vielen dank für eure hilfe. ich habe es jetzt endlich auf eine ''elegantere'' art geschaft.
habe so wie in dem tip [a href="http://www.swissdelphicenter.ch/de/showcode.php?id=1068" target="_blank"]http://www.swissdelphicenter.ch/de/showcod...ode.php?id=1068[/a] die komponente tflatpanel umgeändert. es funktioniert perfekt.

thx nafex
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS