AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Richedit scrollen, aber ohne Fokus

Ein Thema von himitsu · begonnen am 4. Dez 2012 · letzter Beitrag vom 5. Dez 2012
Antwort Antwort
Foren-Tage 2017
DIE Konferenz für Delphi-Entwickler mit vielen Vorträgen und ganztägigen Workshops, veranstaltet u.A. von der Delphi-PRAXiS und Embarcadero.
21.-23. September 2017 in Hamburg · Mehr Infos unter forentage.de.
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.216 Beiträge
 
Delphi XE3 Professional
 
#1

Richedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 16:46
n'abend die Damen und Herren,

kann man denn wirklich nicht soein besch** TRichEdit scrollen, ohne daß es Fokus besitzt?

WM_VSCROLL oder EM_SCROLLCARET funktionieren nur, wenn das RichEdit den Fokus hat.


Die Lösung: Fokus merken, Richedit fokusieren, scrollen und Fokus zurücksetzen ist voll für'n A**.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 5. Dez 2012 um 12:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Rechedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 16:54
den kennst Du?
http://fgaillard.com/2010/11/richedi...olling-strike/
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.216 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Rechedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 17:16
Nee, kannte ich nicht, aber funktioniert auch nicht

Delphi-Quellcode:
    log.SelStart := log.Perform(EM_LINEINDEX, log.Lines.Count, 0);
    B := log.HideSelection;
    try
      log.HideSelection := False;
      log.Perform(EM_SCROLLCARET, 0, 0);
    finally
      log.HideSelection := True;//B;
    end;
Hat das Ding den Fokus, dann geht's, aber Ohne geht's nicht.
(egal ob der Fokus in der Form oder in einer anderen Form liegt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 4. Dez 2012 um 17:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
5.602 Beiträge
 
Delphi 7 Personal
 
#4

AW: Rechedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 17:20
Blöde Frage, wo steht der Cursor?
Und die andere Möglichkeit mit dem Scroll bis zum Ende?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten
sondern Deinen Anweisungen
Do it with Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.080 Beiträge
 
Delphi 5 Professional
 
#5

AW: Rechedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 17:22
Für ein TMemo verwende ich EM_LINESCROLL (im TForm.OnMouseWheel). Keine Ahnung, ob das auch bei TRichEdit funktioniert.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.216 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Rechedit scrollen, aber ohne Fokus

  Alt 4. Dez 2012, 17:25
Blöde Frage, wo steht der Cursor?
Am Anfang der letzten Zeile
Zitat:
log.SelStart := log.Perform(EM_LINEINDEX, log.Lines.Count, 0);

Wie gesagt, egal welche Variante ich nutze, also WM_VSCROLL oder EM_SCROLLCARET,
es funktioniert immer nur, wenn der Fokus beim Richedit liegt, aber da ist er nunmal nicht.

[add]
Und EM_LINESCROLL funktioniert auch nicht.

Perform und SendMessage machen auch keinen Unterschied.



Praktisch dürften jetzt wohl auch alle "zwei RichEdits synchron scrollen"-Codes nicht mehr funktionieren.
(und alle Thread dazu, welche ich fand, waren auch mindestens 5 Jahre alt ... also von da, wo es noch ging)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 5. Dez 2012 um 12:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.216 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Richedit scrollen, aber ohne Fokus

  Alt 5. Dez 2012, 13:26
Es gab ein paar Probleme mit einer unit ... die wurde nicht mit kompiliert
Nja, aktuell sieht es so aus. (weiter testen werd' ich das jetzt aber nicht)

geht nicht:
EM_SCROLLCARET
EM_SCROLLCARET + HideSelection-Trick

geht:
WM_VSCROLL + SB_BOTTOM

ungetestet/weiß nicht:
EM_LINESCROLL
WM_VSCROLL + SB_ENDSCROLL
WM_VSCROLL + SB_LINEDOWN
WM_VSCROLL + SB_PAGEDOWN
GetScrollRange + SetScrollPos(Max)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 5. Dez 2012 um 13:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Richedit scrollen, aber ohne Fokus

  Alt 5. Dez 2012, 14:53
Delphi-Quellcode:
procedure TFormMain.Timer1Timer(Sender: TObject);
begin
  RichEdit1.Lines.BeginUpdate;
  RichEdit1.Lines.Append(FormatDateTime('hh:nn:ss:zzz', Now));
  RichEdit1.Perform(WM_VSCROLL, SB_BOTTOM, 0);
  RichEdit1.Lines.EndUpdate;
end;
  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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf