AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Abziehen von WS_EX_COMPOSITED = Flicker

Abziehen von WS_EX_COMPOSITED = Flicker

Ein Thema von MicMic · begonnen am 4. Feb 2021 · letzter Beitrag vom 12. Feb 2021
 
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Abziehen von WS_EX_COMPOSITED = Flicker

  Alt 4. Feb 2021, 18:08
Hallo, es könnte sein, dass es keine Möglichkeit gibt.
Ich optimiere gerade meine ListBox. Ich sende je nach Aktion WM_SETREDRAW mit TRUE oder FALSE. Das geht schneller und besser als:
Delphi-Quellcode:
NewExStyle := GetWindowLong(LB.Handle, GWL_EXSTYLE) or WS_EX_COMPOSITED;
SetWindowLong(LB.Handle, GWL_EXSTYLE, NewExStyle);
Aber bei manchen Aktionen nützt mir WM_SETREDRAW nicht (bzw. es geht wohl nicht wegen dem setzen von columns - genau hab ich da noch nicht geschaut). Da wäre wieder WS_EX_COMPOSITED besser. Das kann ich ja machen (das geht ohne Probleme) aber ich muss den Wert wieder abziehen. Das erreiche ich wohl so:
Delphi-Quellcode:
NewExStyle := GetWindowLong(LB.Handle, GWL_EXSTYLE);
SetWindowLong(LB.Handle, GWL_EXSTYLE, NewExStyle and not WS_EX_COMPOSITED);
Aber dann flickert die ListBox 1x auf. Das ist unschön. Habe auch schon "LockWindowUpdate" probiert. Geht leider nicht. Wenn es beim abziehen von WS_EX_COMPOSITED immer 1x flickert, dann nützt mir das ganze anschalten nicht. Ich kann leider nicht WS_EX_COMPOSITED immer an lassen. Dann macht WM_SETREDRAW wieder kein Sinn.

Jemand ne Idee wie ich beim abschalten von WS_EX_COMPOSITED das flickern wegbekomme?
  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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 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