AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TMemo automatisch scrollen

Ein Thema von elmar.faber · begonnen am 18. Feb 2015 · letzter Beitrag vom 19. Feb 2015
Antwort Antwort
elmar.faber

Registriert seit: 10. Sep 2007
Ort: Neustadt (Hessen)
37 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

TMemo automatisch scrollen

  Alt 18. Feb 2015, 10:35
Hallo,

in einem XE3 Projekt scrolle ich automatisch an das untere Ende in einem Memo Feld:

LogMemo.VScrollBar.Value := LogMemo.VScrollBar.Max;

Unter XE7 ist aber VScrollbar Protected, wie scrolle ich hier automatisch ans Ende????

Viele Grüße
Elmar Faber
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.135 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 10:47
LogMemo.GoToTextEnd(); ?
  Mit Zitat antworten Zitat
elmar.faber

Registriert seit: 10. Sep 2007
Ort: Neustadt (Hessen)
37 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#3

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 12:16
Damit setzt ich den Cursor zwar ans Ende aber der sichtbare Bereich verändert sich leider nicht...
Elmar Faber
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 12:22
Unter XE7 ist aber VScrollbar Protected, wie scrolle ich hier automatisch ans Ende????
Wenn VScrollbar nur Protected ist, dann mach sie doch mit einer Helperklasse von TMemo zugreifbar.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 12:24
Ich mach das so:

Delphi-Quellcode:
        mem_input.SetFocus;
        mem_input.CaretPos := Point(0,Zeile);
        SendMessage(mem_input.Handle, EM_SCROLLCARET, 0, Zeile);
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.135 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 12:25
Damit setzt ich den Cursor zwar ans Ende aber der sichtbare Bereich verändert sich leider nicht...
Sicher? Bei mir springt er immer ans Ende des Textes sodass die letzten Zeichen sichtbar sind. Egal ob WordWrap an oder aus. Getestet auf Windows, XE7.

Ich mach das so:
Damit werden wir wohl nicht weiterkommen, denn es geht um FireMonkey, nicht um die VCL.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TMemo automatisch scrollen

  Alt 18. Feb 2015, 12:32
Damit werden wir wohl nicht weiterkommen, denn es geht um FireMonkey, nicht um die VCL.
Ist mir glatt entgangen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
elmar.faber

Registriert seit: 10. Sep 2007
Ort: Neustadt (Hessen)
37 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#8

AW: TMemo automatisch scrollen

  Alt 19. Feb 2015, 11:27
So der Tip mit der Helperklasse hat mir die Lösung gebracht:

Delphi-Quellcode:
unit MemoHelperU;

interface

Uses System.Classes, FMX.Memo, FMX.Layouts;

type
  TMemoHelper = class helper for FMX.Memo.TMemo
  private

  published
    procedure AutoScroll;

  end;

implementation

procedure TMemoHelper.AutoScroll;
Begin
  if Self.VScrollBar = nil then
    ApplyStyleLookup;

  if Self.VScrollBar <> nil then Begin
    Self.GoToTextEnd;
    Self.VScrollBar.Value := Self.VScrollBar.Max;
    Self.Repaint;
  End;
End;
Dann erfolgt der Aufruf im Programmcode nur noch mit

LogMemo.AutoScroll

Vielen Dank für die Hilfe!
Elmar Faber
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.135 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: TMemo automatisch scrollen

  Alt 19. Feb 2015, 11:34
Ich wundere mich trotzdem immer noch- Er verschiebt bei dir wirklich den sichtbaren Bereich bei GoToTextEnd() nicht? Ich nutze XE7 ohne Update 1 und er tut es...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:16 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