![]() |
Wie schnell reagiert Delphi
Hallo,
was muss man tun, damit Delphi schnell reagiert ? ich habe z.B. ein Panel1 erstellt, das auf MouseOver reagiert, leider wenn ich den Cursor darüber sehr schnell anfahre, dann passiert nichts, nur wenn ich den Cursor langsam bewege !!!
Delphi-Quellcode:
Delphi kann nie den Cursor erwischen !!!
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin ShowMessage('ich habe dich erwischt'); end; ____ |
Re: Wie schnell reagiert Delphi
Das ist kein Delphi- sondern ein Windows-Problem.
|
Re: Wie schnell reagiert Delphi
Kann ich nicht nachvollziehen. Habs grad mit WinXP Pro und D5 Pro ausprobiert und ich kann gar nicht schnell genug mit dem Cursor über das Panel huschen, dass keine Meldung erscheint. Vielleicht ist deine CPU-Auslastung einfach ziemlich hoch?
|
Re: Wie schnell reagiert Delphi
Wenn du den Cursor mal schnell bewegst, wirst du feststellen, dass er sich nicht flüssig von A nach B bewegt, sondern springt. Genauere Daten kommen nicht herein. Wenn dein Panel also genau zwischen zwei Mauspositionen liegt, bekommt es keine Meldung. Es gibt normalerweise auch keine Notwendigkeit, auf solche Bewegungen zu reagieren.
@malo, roter Kasten: Mach das Panel mal relativ klein, dann wirst du's schon sehen. |
Re: Wie schnell reagiert Delphi
Zitat:
Ich habe versucht mit einem Timer das Problem zu lösen, leider immer noch nicht geschaft --- |
Re: Wie schnell reagiert Delphi
Delphi-Quellcode:
So z.B.
procedure TForm1.Timer1Timer(Sender: TObject);
begin if not PtInRect(Rect(Left,Top,Left + Width, Top + Height),Mouse.CursorPos) then Close; end; |
Re: Wie schnell reagiert Delphi
Zitat:
--- |
Re: Wie schnell reagiert Delphi
Zitat:
Ich wollte den selben Code um das Form2 aufzurufen (und zu beenden), dann wird das Form2 zwar aufgerufen auch wenn ich sehr schnell den Cursor bewege, erscheint aber danach eine Fehlermeldung:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin if PtInRect(Rect(Left,Top,Left + Width, Top + Height),Mouse.CursorPos) then Form2.ShowModal(); end; |
Re: Wie schnell reagiert Delphi
Das war der Code für Form2, um es beim Verlassen zu beenden (auch wenn Form1 da steht).
|
Re: Wie schnell reagiert Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Ja Form2 wird wie gewünscht beendet mit Timer1
Ich muss aber auch das Form2 mit einem anderen Timer genauso einblenden lassen Wie kann ich nun Form2 aufrufen, wenn der Cursor auf Panel2 kommt? Aber genuso mit einem anderen Timer und nicht so:
Delphi-Quellcode:
Oder stimmt was @OregonGhost gesagt hat und können wir dafür nicht machen ?
procedure TForm1.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin Form2.ShowModal(); end; Also mit dem Code kann ich Form2 einblenden, wenn der Cursor auf Form1 kommt. Ich möchte aber das Form2 einblenden, wenn der Cursor auf Panel2 kommt und nicht auf Form1 :
Delphi-Quellcode:
Leider kann man keinen Timer auf Panel anlegen.
procedure TForm1.Timer1Timer(Sender: TObject);
begin if PtInRect(Rect(Left,Top,Left + Width, Top + Height),Mouse.CursorPos) then Form2.ShowModal(); end; ----------- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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 by Thomas Breitkreuz