![]() |
Memo verhindert scrollen wenn auf VerticalScrollbox
Hi,
mal ganz off Topic und wegen Frust :evil: Programmiert eigentlich irgendjemand eine ernstzunehmende Anwendung für den mobile Bereich mit Delphi? Ich bezweifle das mittlerweile bei den ganzen Basics die nicht funktionieren so langsam. Also nun zum Thema :-D Wenn man ein Memo Feld auf eine VerticalScrollbox platziert und noch andere Elemente auf der Vertical Scrollbox hat, die Scrollbox also in der Theorie gescrollt werden können soll, dann verliert die Scrollbox diese Fähigkeit wenn ein MemoFeld auf ihr liegt und man versucht über das Memofeld zu scrollen. Das memoFeld frist also das Scroll Event von der Scrollbox. Mir ist schon klar, dass es wahrscheinlich damit zusammen hängt, dass das Memo selbst auch scrollbar ist, wenn es mehr text hat als es anzeigen kann, aber ich habe keinen direkten Weg gefunden wie ich das irgendwie einfach steuern könnte. Wisst ihr weiter? Ich bin aktuell folgende Lösung am Testen, aber nicht wirklich zufrieden, weil meine Form "Zuckt", funktionieren tut es aber zumindest schon mal.
Delphi-Quellcode:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin FPrevMousePosY := Y; FPrevMousePosX := X; end; procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); var lMemo: TCustomMemo; lRect: TRectangle; procedure ScrollVerticalby(_y: Single); begin lmemo.OnMouseMove := nil; VertScrollBox1.ScrollBy(0,_y); lmemo.OnMouseMove := Memo1MouseMove; end; begin lMemo := Sender as TCustomMemo; lRect := lMemo.Parent as TRectangle; if not Assigned(lMemo.VScrollBar) then ScrollVerticalby( Y - FPrevMousePosY) else if not lMemo.VScrollBar.Visible then begin ScrollVerticalby( Y - FPrevMousePosY); end else if (lMemo.VScrollBar.Value = lMemo.VScrollBar.Max) or (lMemo.VScrollBar.Value = lMemo.VScrollBar.Min) then ScrollVerticalby( Y - FPrevMousePosY); FPrevMousePosY := Y; FPrevMousePosX := X; end; procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FPrevMousePosY := 0; FPrevMousePosX := 0; end; |
AW: Memo verhindert scrollen wenn auf VerticalScrollbox
Zitat:
|
AW: Memo verhindert scrollen wenn auf VerticalScrollbox
Falls es jemand interessiert.
![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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