AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTMLViewer D2009 Scrollen?

Ein Thema von cherry · begonnen am 8. Jul 2009 · letzter Beitrag vom 23. Jul 2009
Antwort Antwort
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#1

HTMLViewer D2009 Scrollen?

  Alt 8. Jul 2009, 09:27
Hi

Toms hat mich auf folgende Kompo aufmerksam gemacht: HTMLViewer D2009

Ich brauche die Komponente für mein kleines Chat Programm. Hab mal folgenden Testcode erstellt:

Delphi-Quellcode:

var
  Form1: TForm1;
  HtmlCode: TStringList;

.
.
.

procedure TForm1.AddHTML(Text: AnsiString);
begin
  HtmlCode.Delete(HtmlCode.Count-1);
  HtmlCode.Delete(HtmlCode.Count-1);
  HtmlCode.Add('
');
  HtmlCode.Add(Text);
  HtmlCode.Add('</body>');
  HtmlCode.Add('</html>');
  HtmlViewer1.LoadFromString(HtmlCode.Text);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AddHTML(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HtmlCode := TStringList.Create;
  HtmlCode.Add('<html>');
  HtmlCode.Add('<body bgcolor="#FFFFFF">');
  HtmlCode.Add('Hallo');
  HtmlCode.Add('</body>');
  HtmlCode.Add('</html>');

  HtmlViewer1.LoadFromString(HtmlCode.Text);
end;
Jetzt möchte ich aber, dass immer der letzte Eintrag angezeigt wird, sprich ganz nach unten Scrollen.
Aber wie stell ich das an?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#2

Re: HTMLViewer D2009 Scrollen?

  Alt 8. Jul 2009, 09:29
Ich muss es immer zuerst Posten damit ich es dann selber erkenne.

HtmlViewer1.VScrollBarPosition := HtmlViewer1.Height;
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#3

Re: HTMLViewer D2009 Scrollen?

  Alt 23. Jul 2009, 14:01
Deine Idee ist ja schon nicht schlecht, aber ich beschäftige mich gerade auch mit dem Problem.
Und mir ist aufgefallen, dass du einen kleinen Fehler in deiner Lösung hast.
Mit HtmlViewer1.Height bekommst du nur die Höhe des HtmlViewer und nicht des Dokumenteninhalts.
Das heisst wenn dein HtmlViewer 200 hoch ist, scrollt der immer nur bis Position 200 und sobald dein Text im Fenster mehr als 200 hoch ist bleibt der einfach stehen mit dem scrollen.

Ich habe das problem jetzt mit HTML Anker gelöst, kann man einfach bei Google finden.

Dort ist mir aber auch aufgefallen, wenn man durch das Fenster scrollt um alte Nachrichten zu lesen, scrollt der beim ankommen einer Nachricht direkt wieder nach unten.
Das müsste man noch irgendwie lösen indem man abfragt ob das Fenster ganz nach unten gescrollt ist.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: HTMLViewer D2009 Scrollen?

  Alt 23. Jul 2009, 14:19
Zitat von XXcD:
Deine Idee ist ja schon nicht schlecht, aber ich beschäftige mich gerade auch mit dem Problem.
Und mir ist aufgefallen, dass du einen kleinen Fehler in deiner Lösung hast.
Mit HtmlViewer1.Height bekommst du nur die Höhe des HtmlViewer und nicht des Dokumenteninhalts.
Das heisst wenn dein HtmlViewer 200 hoch ist, scrollt der immer nur bis Position 200 und sobald dein Text im Fenster mehr als 200 hoch ist bleibt der einfach stehen mit dem scrollen.
Das Problem habe ich bereits erkannt kurz nach dem letzten Posting. Habe nur vergessen die richtige Lösung erneut zu posten:

OutputWindow.VScrollBarPosition := OutputWindow.MaxVertical;
Zitat von XXcD:
Dort ist mir aber auch aufgefallen, wenn man durch das Fenster scrollt um alte Nachrichten zu lesen, scrollt der beim ankommen einer Nachricht direkt wieder nach unten.
Das müsste man noch irgendwie lösen indem man abfragt ob das Fenster ganz nach unten gescrollt ist.
Das ist ja auch nicht so ne Sache... Probier mal was in der Art:
Delphi-Quellcode:
if OutputWindow.VScrollBarPosition > OutputWindow.MaxVertical - 35 then
  OutputWindow.VScrollBarPosition := OutputWindow.MaxVertical;
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#5

Re: HTMLViewer D2009 Scrollen?

  Alt 23. Jul 2009, 15:16
Jo funktioniert einwandfrei man muss nur noch die höhe von HtmlViewer mit reinrechnen:

Delphi-Quellcode:
position:=HTMLViewer1.VScrollBarPosition;
...
//Inhalt laden
...
if position > HTMLViewer1.MaxVertical - HTMLViewer1.Height - 35 then
begin
  HTMLViewer1.VScrollBarPosition := HTMLViewer1.MaxVertical;
end
else
begin
HTMLViewer1.VScrollBarPosition:=position;
end;
  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 01:11 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