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
 
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
 


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 21:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz