AGB  ·  Datenschutz  ·  Impressum  







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

Neuzeichnen TScrollbox, aber Fensterflackern

Offene Frage von "sieppl"
Ein Thema von sieppl · begonnen am 11. Okt 2004 · letzter Beitrag vom 14. Okt 2004
Antwort Antwort
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

Neuzeichnen TScrollbox, aber Fensterflackern

  Alt 11. Okt 2004, 09:03
Hallo,

eine bestehende Applikation benutzt eine TScrollBox, diese schmiert bekanntlich beim Scrollen.
Mit diesem Code am Anfang der betreffenden Unit habe ich einen MessageHandler reingeschmuggelt.
Der wird auch sauber aufgerufen.

Delphi-Quellcode:
type TScrollBox = class(Forms.TScrollBox)
  private
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  end;

type MainForm = class(TForm)
...

//geklaut von TCustomListView.WMVScroll !!
procedure TScrollBox.WMVScroll(var Message: TWMVScroll);
var
  Before, After: Integer;
begin
  Before := GetScrollPos(ScrollboxHandle, SB_VERT);
  inherited;
  After := GetScrollPos(ScrollboxHandle, SB_VERT);
  if (Before <> After) then
    InvalidateRect(ScrollboxHandle, nil, True);
end;
Den CartScrollBoxHandle hole ich mir bei Form.Onactivate:
ScrollBoxHandle := ScrollBox.Handle; Der Handle hat auch einen Wert. Die Funktion habe ich vom TCustomListView geklaut. Beim Scrollen eines ListViews wird nur der ListView neugezeichnet. Bei mir wird anscheinend das komplette Fenster neugezeichnet, da es flackert. Bei Update, Repaint, Invalidate das gleiche. (wäre auch unlogisch)

Ideen?

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#2

Re: Neuzeichnen TScrollbox, aber Fensterflackern

  Alt 11. Okt 2004, 20:28
Hatte ich auch mal. Setz mal die entsprechenden DoubleBuffered auf True.
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#3

Re: Neuzeichnen TScrollbox, aber Fensterflackern

  Alt 11. Okt 2004, 21:39
soll ich die scrollbox auf Double-Buffered setzen oder die Scrollbox?

Macht beides irgendwie keinen Sinn. Die Scrollbox flackert sowieso nicht. DoubleBuffered macht auch keinen Unterschied. (hab's ausprobiert)

Beim Fenster ist DoubleBuffered unlogisch, da es auch nicht flackert wenn der ListView gescrollt wird.

Es ist auch einfach falsch, dass das ganze Fenster neugezeichnet wird, obwohl dies nur bei der Scrollbox geschehen soll.

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#4

Re: Neuzeichnen TScrollbox, aber Fensterflackern

  Alt 14. Okt 2004, 12:13
sorry für den push, aber das Problem ist echt nervig und
ich kann mir nicht vorstellen, dass keiner hier vor mir
einen sauberen ScrollBox-Repaint hingelegt hat.
Andere funktionierende Ansätze sind auch willkommen.
Sebastian
  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 17:42 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