HTMLViewer D2009 Scrollen?
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:
Jetzt möchte ich aber, dass immer der letzte Eintrag angezeigt wird, sprich ganz nach unten Scrollen.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; Aber wie stell ich das an? |
Re: HTMLViewer D2009 Scrollen?
Ich muss es immer zuerst Posten damit ich es dann selber erkenne. :-D
Delphi-Quellcode:
HtmlViewer1.VScrollBarPosition := HtmlViewer1.Height;
|
Re: HTMLViewer D2009 Scrollen?
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. |
Re: HTMLViewer D2009 Scrollen?
Zitat:
Delphi-Quellcode:
OutputWindow.VScrollBarPosition := OutputWindow.MaxVertical;
Zitat:
Delphi-Quellcode:
if OutputWindow.VScrollBarPosition > OutputWindow.MaxVertical - 35 then
OutputWindow.VScrollBarPosition := OutputWindow.MaxVertical; |
Re: HTMLViewer D2009 Scrollen?
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 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