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
Antwort Antwort
Seite 31 von 35   « Erste     21293031 3233     Letzte »    
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 05:46 Uhr)
 
EWeiss
 
#301
  Alt 2. Jul 2011, 22: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 ( 3. Jul 2011 um 00:20 Uhr)
  Mit Zitat antworten Zitat
alfold

 
Delphi 7 Enterprise
 
#302
  Alt 2. Jul 2011, 23:52
Will ja nicht unken, selbst auf Win7 läuft es ohne die anderen Einträge besser
Delphi-Quellcode:
 Resizing := True;<--nicht notwendig

  // Neuzeichnen sperren
  LockWindowUpdate(WinHandle);<---überflüssig
  SendMessage(WinHandle, WM_SETREDRAW, 0, 0);<--- reicht vollkommen
  FVisible := False; <--nicht notwendig

  SKAERO_AnchorEnum(WinHandle);<---nicht notwedig wird auch ohne neu positioniert
....
....
....
 FVisible := True;<-- nicht notwendig

  // Aktualisiere die Seiten und TopBars
  PrintSideBar;<---nicht notwendig da grid eh noch nicht zusehen und flackert
  PrintTopBar;;<---nicht notwendig da grid eh noch nicht zusehen und flackert

.....
.....
  // Neuzeichnen wieder erlauben
  SendMessage(WinHandle, WM_SETREDRAW, 1, 0);
  LockWindowUpdate(0);<--nicht notwendig

  Resizing := False;<---nicht notwendig
Wenn ich die also weglasse, müsste es ja schlimmer werden, dem ist aber nicht so. Im Genteil Windows selber bleibt ruhiger.


Glaub doch einfach auch anderen mal was. Oder siehst Du dies als persöhnlichen Angriff an, wenn man feststellt das dies oder jenes doppeltgemoppelt ist
oder sogar einfacher ist.

kommt mir jedenfalls so vor

Ps: Grid ist beim Resize weder auf Win7 noch auf XP bei mir zu sehen auch im originalem.

Gruss alfdold

Geändert von alfold ( 2. Jul 2011 um 23:55 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#303
  Alt 2. Jul 2011, 23:57
Zitat:
Oder siehst Du dies als persöhnlichen Angriff an
Nööö

Ich hab ein Bild angehängt und dir gesagt das es bei mir Flackert und das resultat bei
deaktivierten einträgen siehst du auf meinen Anhang.

Es geht hier um Fakten so wie sie bei mir auftreten das hat nicht's mit 'Persönlich' zu tun

Freut mich ja das du da weitermachst..
Zitat:
Ps: Grid ist beim Resize weder auf Win7 noch auf XP bei mir zu sehen auch im originalem
Oh da mußt noch mal schaun was deaktiviert hast Hihihi nichts für ungut.
Welche Version? Die letzte?


PS:
Brrr...
Resizing := False;<---nicht notwendig
Zitat:
Ist notwendig damit du die Scrollbar nicht bedienen kannst wenn ein Song am spielen ist!
bzw.. diese während des Resitz des Fenster nicht aktualsiert das geschieht später.

gruss

Geändert von EWeiss ( 3. Jul 2011 um 00:04 Uhr)
  Mit Zitat antworten Zitat
alfold

 
Delphi 7 Enterprise
 
#304
  Alt 3. Jul 2011, 00:14
Zitat:
Welche Version? Die letzte?
Jo, die zum DL da ist

und so sieht es, beim ändern der grösse, bei mir auf win7 und xp aus. Original nichts geändert!!
Und windows flackert! die anderen geöffneten Fenster!
Ändere ich das in meiner version passiert das nicht!

Gruss alf
Miniaturansicht angehängter Grafiken
resize.jpg  

Geändert von alfold ( 3. Jul 2011 um 00:18 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#305
  Alt 3. Jul 2011, 00:19
Bei mir so nichts geändert.

Abgesehen von der Uhr
Nach dem resitz natürlich.

PS:
Gerade nochmal letzte version geladen und keine probleme
Wird alles richtig angezeigt.

Zitat:
Und windows flackert! die anderen geöffneten Fenster!
Ja das liegt an LockWindowUpdate wird von MSN ja auch drauf hingewiesen.
Dann mach es halt weg

Zitat:
Unter bestimmten Umständen führt das Aufheben der Sperrung eines inzwischen verkleinerten Fensters mittels LockWindowUpdate dazu,
dass statt der frei gewordenen Fläche das hinter dem betroffenen Fenster liegende Fenster, mitunter gleich der gesamte Desktop,
neu gezeichnet wird. Das daraus resultierende Flackern der gesamten Benutzeroberfläche ist dem gesetzten Ziel natürlich diametral entgegengesetzt.

gruss

Geändert von EWeiss ( 3. Jul 2011 um 10:06 Uhr)
  Mit Zitat antworten Zitat
alfold

 
Delphi 7 Enterprise
 
#306
  Alt 3. Jul 2011, 00:26
Mein Photo ist während ich die grösse ändere also reszize. Sämtlich Desktop icons und fenster im hintergrund flackern. Manchmal kommt sogar ein Fenster durch Deine Oberfläche.
Nach dem ich dies deaktiviert habe, in meiner Version, ist alles ruhiger!

Egal ich mach trotzdem weiter Will ja fertig werden

Gruss alfold
  Mit Zitat antworten Zitat
EWeiss
 
#307
  Alt 3. Jul 2011, 00:32
Mein Photo ist während ich die grösse ändere also reszize. Sämtlich Desktop icons und fenster im hintergrund flackern. Manchmal kommt sogar ein Fenster durch Deine Oberfläche.
Nach dem ich dies deaktiviert habe, in meiner Version, ist alles ruhiger!

Egal ich mach trotzdem weiter Will ja fertig werden

Gruss alfold
Lese bitte nochmal was ich geschrieben habe als letzten Eintrag.
Du kannst es ruhig entfernen Deaktivieren.

PS:
Das problem mit dem grid kann daran liegen das du verschiedene Versionen mit ein und der
gleichen INI ausführst das führt zum problem und kann nur behoben werden in dem du den Skin vorher änderst.
Hatte das gleiche problem mit der alten Version hier aus dem Forum bedenke das die Bilder in deiner Version anders abgelegt sind!

gruss

Geändert von EWeiss ( 3. Jul 2011 um 00:59 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#308
  Alt 3. Jul 2011, 03:47
Zitat:
Glaub doch einfach auch anderen mal was. Oder siehst Du dies als persöhnlichen Angriff an, wenn man feststellt das dies oder jenes doppeltgemoppelt ist
oder sogar einfacher ist.
Es scheint so das ich es mal wieder zu gut machen wollte (doppelt gemoppelt hält besser).
Nee ist schon recht
Wo du recht hast da haste recht.

Wichtig ist das nachher alles noch funktioniert.
Na kleinigkeiten kann man immer noch korrigieren

Ich bin dabei das alles noch etwas zu optimieren besonders InvalidateRect.
Da muss man sehr mit Aufpassen.

PS:
Zitat:
Mein Photo ist während ich die grösse ändere also reszize.
Wenn ich dich richtig verstehe tritt der Fehler auf wenn du bzw.. während du das Fenster Resitzen tust?
Wenn ja dann liegt es daran das du dinge raus geworfen hast die das verhindern.
Ich habe das Resitz verhalten so programmiert das du während des Resitz keine Zeichnungs operationen durchführen kannst (darfst)
Was du beim Resitz sehen sollst ist lediglich der Rahmen der Anwendung nicht mehr nicht weniger.
Erst beim loslassen soll das Fenster vollständig neu gezeichnet werden.
Anders ist es mit dem ganzen Design, skins, Aero usw.. nicht möglich.

gruss

Geändert von EWeiss ( 3. Jul 2011 um 10:09 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#309
  Alt 3. Jul 2011, 10:02
Neue Version Oben..
Es könnte sein das beim ersten start das Fenster nicht richtig angezeigt wird.
Wenn das auftreten sollte bitte einfach einen anderen Skin im Menü auswählen.
dann gibt sich das von selbst.
Liegt daran das die Bilder nun in anderen Ordern liegen alte INI könnte da ärger machen.

gruss

Geändert von EWeiss ( 3. Jul 2011 um 10:13 Uhr)
  Mit Zitat antworten Zitat
alfold

 
Delphi 7 Enterprise
 
#310
  Alt 3. Jul 2011, 10:54
Startet nicht, fehler in der GDIPlus.DLL lesen von Adresse 00000013

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 31 von 35   « Erste     21293031 3233     Letzte »    


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 15:59

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