AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Virtual Piano
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Piano

Ein Thema von EWeiss · begonnen am 8. Mär 2011 · letzter Beitrag vom 13. Apr 2019
 
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Virtual Piano

  Alt 2. Jul 2011, 21:50
Du weist schon wofür LockWindowUpdate verwendet wird
Zitat:
The LockWindowUpdate function disables or enables drawing in the specified window.
Only one window can be locked at a time.
Delphi-Quellcode:
  ' Fenster sperren:
LockWindowUpdate(WinHandle)

' ... mehrere Zeichenoperationen ...
  
  ' Fenster entsperren und neu zeichnen
LockWindowUpdate(0)
Genau deshalb habe ich es verwendet damit es nicht flackert
bzw. Solange nicht mehr resitz bis die sperrung aufgehoben ist.
Theoretisch würde ein WM_SETREDRAW ausreichen da es fast das gleiche tut nur es sperrt nicht das Window
vor dem Resitzen. !! Und darum geht es mir.

Was da auf XP passiert ist eine sache was hier auf Win7 geschieht eine andere.

SKAERO_AnchorEnum(WinHandle);

Repositioniert die Controls wenn ein Resitz statt findet
Und zwar in diesen speziellen Fall wo das Fenster gesperrt ist damit die Controls nicht erst nachher resizen
nachdem das Fenster wieder gezeichnet werden kann.

FVisible := False;

Sorgt dafür das kein neuzeichen stattfindet wenn das Flag gesetzt ist
Delphi-Quellcode:
      MidiTracker.FVisible := bool(LoWord(WP));
      if MidiTracker.FVisible then
      begin
        MidiTracker.GetLastSize(WinHandle);
        MidiTracker.DrawGrid(WinHandle);
        ShowWindow(SideBarFrame.Handle, SW_HIDE);
        ShowWindow(TopBarFrame.Handle, SW_HIDE);
        MidiTracker.PrintSideBar;
        MidiTracker.PrintTopBar;
      end
tssss.. verstehe ich nicht was du da machst.

Zitat:
Also sooooory @EWeiss falls es falsch rübergekommen ist!
Kein Beinbruch
Wollte nur meinen Standpunkt darlegen

boahh warum ist die schrift jetzt blau?

Ps:
Ach so vergessen!

Delphi-Quellcode:
    WM_SIZE:
    begin
      if assigned(MidiTracker) then
        if MidiTracker.FVisible then
          MidiTracker.ResizeWindow(WinHandle);
    end;
Wird ein Resitz ausgeführt und das flag FVisible ist true
dann wird im ResizeWindow das Flag direkt wieder auf false gesetzt.
Das hängt damit zusammen damit die ToolButton, SideBar, TopBar und das grid gleichzeitig sichtbar werden
und nicht nacheinander gezeichnet werden.

Wie gesagt das hat alles einen Sinn!
Deaktiviere ich alles das was du deaktiviert hast.. flackert mein Grid
und sieht so aus.

gruss

Geändert von EWeiss ( 2. Jul 2011 um 23:20 Uhr)
  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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Delphi-Forum.de - Array statisch/dynamisch oder TList fr Midi-Events This thread Refback 20. Sep 2011 14:59

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