Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Hoover-Effekt für TRichEdit (https://www.delphipraxis.net/153820-hoover-effekt-fuer-trichedit.html)

Schwedenbitter 17. Aug 2010 13:29

Hoover-Effekt für TRichEdit
 
Hallo,

nachdem ich nun gelernt habe, wie man TRichEdit um eine Zoom-Funktion erweitert, möchte ich das nun auch einfach handhabbar machen. Das Scrollen bei gedrückter linker Maustaste ist nicht so einfach und auch nicht jedem bekannt. Ich möchte daher ein TUpDown im TRichEdit platzieren, das eingeblendet wird (Visible:=True), wenn der Benutzer mit der Maus über dem TRichEdit ist, und ausgeblendet wird (Visible:=False), wenn die Maus TRichEdit wieder verlässt. Das ist mit OnMouseEnter und OnMouseLeave kein Problem, nur lässt sich TUpDown nicht anklicken.
Der Grund ist klar, weil ich TRichEdit sofort verlasse, wenn ich mit der Maus über TUpDown bin. Da TUpDown dadurch aber auch gleichzeitig ausgeblendet wird, gibt es einen Kreilauf, der in einem Flimmern endet.

Ich hoffe, mich verständlich ausgedrückt zu haben.

Hat jemand eine Idee, wie man das machen kann?

Gruß, Alex

patti 17. Aug 2010 14:08

AW: Hoover-Effekt für TRichEdit
 
Hoffe, ich hab dich jetzt richtig verstanden...

Würde beim OnMouseLeave vom RichEdit überprüfen, ob sich die Maus über dem UpDown befindet. Wenn ja -> UpDown nicht ausblenden. Zusätzlich musst du beim OnMouseLeave vom UpDown dann halt schauen, ob sich die Maus nun wieder im RichEdit befindet. Wenn nein -> UpDown ausblenden (hoffe, das funktioniert so wie ich mir das denke...)

mfg

Bummi 17. Aug 2010 14:13

AW: Hoover-Effekt für TRichEdit
 
Delphi-Quellcode:
procedure TForm5.RichEdit1MouseEnter(Sender: TObject);
begin
  UpDown1.Visible := true;
end;

procedure TForm5.RichEdit1MouseLeave(Sender: TObject);
var
  p:TPoint;
begin
  p := Updown1.ScreenToClient(mouse.CursorPos);
  UpDown1.Visible := (p.X>0) and (p.x <=Updown1.Width ) and (p.y>0) and (p.y <=Updown1.Height )
end;

Schwedenbitter 17. Aug 2010 15:11

AW: Hoover-Effekt für TRichEdit
 
Danke für die Antworten. Ich bin schwer begeistert. Insbesondere der Code von Bummi ist fast Copy, Paste, Fertig. Einzig die Bereichsüberprüfung muss jeweils für X und Y entweder >=0 oder >-1 sein, denn 0 ist auch ein sichtbarer/gültiger Wert. Ansonsten flackert es ein bisschen.

Tausend Dank :cheers:

Wie kann ich denn in der Überschrift ein [gelöst] einfügen. Vor der Umstellung des Forums habe ich das immer irgendwie hinbekommen ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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