Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi NonVCL Flackern (https://www.delphipraxis.net/124486-nonvcl-flackern.html)

Mr_G 19. Nov 2008 22:40


NonVCL Flackern
 
Hallo zusammen...
Mein Problem scheint nicht unbekannt: Leider flackern die Controls meiner NonVCL-Applikation und ich weiß nicht was ich dagegen tun soll. Das Problem tritt beim verändern der Größe des Fensters auf. Ich reagiere wie folgt auf dieses Ereignis:
Delphi-Quellcode:
    WM_SIZE:
  begin
    //Steuerelemente ausrichten
    clWidth  := LoWord(lp);
    clHeight := HiWord(lp);

    MoveWindow(hwndBtBeenden, clWidth -105, clHeight -30, 100, 25, True);
    MoveWindow(hwndLvTypen, 5, 5, clWidth -10, clHeight -40, True);
    //...
  end;
Lieder stehe ich nun auf dem Schlauch wie ich das ganze unterbinden kann. Ich habe einen Beitrag gefunden laut dem WS_EX_COMPOSITED das ganze beheben soll. In der MSDN habe ich noch gelesen, dass das ganze noch mit WS_EX_TRANSPARENT für die Controls kombiniert werden muss. Leider bringt das so gar nichts: Unter Vista flackert nun alles dauerhaft ohne irgendwelche äußeren Einwirkungen und unter XP ist schlicht nichts mehr da was flackern könnte.
Leider finde ich keine Beispiellösung für dieses doch wohl häufige Problem (auch Luckies Demos flackern kräftig). Würde mich über ein par Tipps freuen!

lbccaleb 19. Nov 2008 23:30

Re: NonVCL Flackern
 
Mhh also bei mir flackern die Demos von Luckie nicht.. Liegt es vlt bei dir an was anderem nicht an der programmierung??

Luckie 20. Nov 2008 08:05

Re: NonVCL Flackern
 
Probier mal MSDN-Library durchsuchenWS_CLIPCHILDREN oder MSDN-Library durchsuchenws_clipsiblings anzugeben für das Hauptfenster als Fensterstil.

Mr_G 20. Nov 2008 11:20

Re: NonVCL Flackern
 
Zitat:

Zitat von lbccaleb
Mhh also bei mir flackern die Demos von Luckie nicht.. Liegt es vlt bei dir an was anderem nicht an der programmierung??

Also wenn ich den Fensterinhalt beim ziehen anzeigen lasse und die Fenster in der Größe verändere dann flackern die bei mir (getestet unter XP) auch.
Zitat:

Zitat von Luckie
Probier mal MSDN-Library durchsuchenWS_CLIPCHILDREN oder MSDN-Library durchsuchenws_clipsiblings anzugeben für das Hauptfenster als Fensterstil.

Danke für den Tipp! Ich kann das erst heute Nachmittag ausprobieren aber schonmal eine Frage: Soll ich das mit WS_EX_COMPOSITED verbinden?

Nebenbei: Wann sollte man eigentlich die Fenster "von Hand" bauen und wann sollte man Dialoge benutzen?

ok.de 20. Nov 2008 12:44

Re: NonVCL Flackern
 
Also beim Thema Flackern fällt mir ganz spontan das Stichwort "DoubleBuffered" ein.

Luckie 20. Nov 2008 12:54

Re: NonVCL Flackern
 
Hat hier aber nichts damit zu tun, da seine Kindfenster flackern, wenn er die Größe des Hauptfensters ändert.

SirThornberry 20. Nov 2008 13:06

Re: NonVCL Flackern
 
Zitat:

Zitat von Mr_G
Nebenbei: Wann sollte man eigentlich die Fenster "von Hand" bauen und wann sollte man Dialoge benutzen?

Hallo, erstelle bitte für diese neue Frage ein neues Thema. Zwar ist es nur eine kleine Frage nebenbei aber in einem eigenen Thema findet später ein anderer mit gleichem Problem die Lösung mit Hilfe der Suche schneller. Ansonsten geht die Antwort unter und kaum einer findet sie dann noch :)

Mr_G 20. Nov 2008 14:32

Re: NonVCL Flackern
 
So... habs nun mal mit WS_CLIPCHILDREN versucht und es hat funktioniert! Besten Dank! :dp:

@ SirThornberry: Wird gemacht...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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