AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Memo verhindert scrollen wenn auf VerticalScrollbox
Thema durchsuchen
Ansicht
Themen-Optionen

Memo verhindert scrollen wenn auf VerticalScrollbox

Ein Thema von fisipjm · begonnen am 9. Okt 2024 · letzter Beitrag vom 10. Okt 2024
Antwort Antwort
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#1

Memo verhindert scrollen wenn auf VerticalScrollbox

  Alt 9. Okt 2024, 17:34
Hi,

mal ganz off Topic und wegen Frust
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
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Memo verhindert scrollen wenn auf VerticalScrollbox

  Alt 9. Okt 2024, 17:36
Programmiert eigentlich irgendjemand eine ernstzunehmende Anwendung für den mobile Bereich mit Delphi?
Ganz ehrlich: jahrelang versucht und dann FMX in die Tonne getreten, genau aus eben diesen Gründen. Ich bin dann erst zu Ionic und später zu Flutter gewechselt, aber mittlerweile übernehmen meine Kollegen die mobile Entwicklung.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#3

AW: Memo verhindert scrollen wenn auf VerticalScrollbox

  Alt 10. Okt 2024, 12:11
Falls es jemand interessiert.
https://embt.atlassian.net/servicede...tal/1/RSS-2086
https://embt.atlassian.net/servicede...tal/1/RSS-2087
  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 11:15 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