Autorefresh und Anzeigefarben

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
Clas Hortien
Senior Member
Senior Member
Posts: 200
Joined: 2003-03-03, 15:03 UTC

Autorefresh und Anzeigefarben

Post by *Clas Hortien »

Hallo,

folgendes Scenario:
  • - Ich habe für MP3 Dateien und 0-Byte Dateien eigene Anzeigefarben definiert.
    - Ich habe das Autorefresh eingeschaltet.
    - Ich rippe eine CD und erzeuge MP3 Dateien.
Angezeigt wird http://www.hortien.com/upload/tccolor.png :(

Wenn die Datei erzeugt wird, nimmt sie die Farbe der 0-Byte Datei an, was ja auch richtig ist.
Sie wird aber nicht in MP3 'umgefärbt' wenn sie größer wird. Erst ein Refresh setzt dann die richtigen Farben.

Gruß

Clas
#14041
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50561
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Da Grössenänderungen sehr häufig auftreten können (mehrmals pro Sekunde), werden bei diesen nur die wichtigsten Aenderungen getestet - Farbänderungen jedoch nicht, da dies je nach Plugin sehr lange dauern kann.
Author of Total Commander
https://www.ghisler.com
User avatar
Lesmo16
Senior Member
Senior Member
Posts: 380
Joined: 2005-02-07, 07:18 UTC
Location: Germany

Post by *Lesmo16 »

Clas Hortien wrote:Wenn die Datei erzeugt wird, nimmt sie die Farbe der 0-Byte Datei an, was ja auch richtig ist.
Sie wird aber nicht in MP3 'umgefärbt' wenn sie größer wird. Erst ein Refresh setzt dann die richtigen Farben.
Um bei diesem Beispiel zu bleiben:

Die Farbe während einer laufenden "Aufgabe" zu ändern, erscheint mir etwas übertrieben.
Irgendwann ist die Datei aber fertig umgewandelt und wird geschlossen.
Das Schließen sollte dann doch wohl den Farbwechsel auslösen, oder?
Everyone believing in telekinesis, raise my hand!
Franz Müller
Senior Member
Senior Member
Posts: 415
Joined: 2005-05-24, 10:41 UTC
Location: Wien

Post by *Franz Müller »

Ich fürchte nur, daß der TC keine Chance hat, festzustellen, daß die Datei jetzt geschlossen worden ist.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50561
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

In der Tat informiert die Funktion nicht darüber, siehe msdn.

TC lässt sich folgende Infos davon melden:
FILE_NOTIFY_CHANGE_FILE_NAME
FILE_NOTIFY_CHANGE_DIR_NAME
und im erweiterten Modus:
FILE_NOTIFY_CHANGE_ATTRIBUTES
FILE_NOTIFY_CHANGE_SIZE
FILE_NOTIFY_CHANGE_LAST_WRITE
Author of Total Commander
https://www.ghisler.com
Sven
Member
Member
Posts: 111
Joined: 2003-02-10, 21:32 UTC
Location: Varel, Germany
Contact:

Post by *Sven »

Einfache, aber effektive Lösung: Statt gleich auf die Änderung zu reagieren wird lediglich ein Timer gelöscht und wieder gesetzt. Das Timer-Ereignis wird dann erst ausgelöst, wenn in einer bestimmten Zeit keine Änderungen mehr erfolgt sind. Die Zeitspanne für den Timer kann man auch noch anpassbar machen, 2000 ms sind hier ein guter Wert aus der Praxis.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50561
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sowas in der Art mache ich schon (1 Sekunde), trotzdem würde das zu sehr viel CPU-Belastung führen und das Programm bremsen.
Author of Total Commander
https://www.ghisler.com
Sven
Member
Member
Posts: 111
Joined: 2003-02-10, 21:32 UTC
Location: Varel, Germany
Contact:

Post by *Sven »

Also ich habe bisher noch keine Bremserfahrung gemacht, allerdings kann ich das mit den Plugins bei Dir auch nicht einschätzen.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50561
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Das Problem ist, dass ich keinen Einfluss auf die Plugins habe, und diese für die Farben leider im Vordergrund laufen müssen - das kann durchaus über eine Sekunde dauern, das ganze Verzeichnis zu erneuern. Bei ständigen Updates würde das Progamm dann vollends unbenutzbar...
Author of Total Commander
https://www.ghisler.com
Sven
Member
Member
Posts: 111
Joined: 2003-02-10, 21:32 UTC
Location: Varel, Germany
Contact:

Post by *Sven »

Kannst Du die Infos nicht im Hintergrund abfragen? Wenn ein Plugin eine eigene Farbe definiert, dann muss der GUI-Thread dann eigentlich nur noch den Eintrag neu zeichnen.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50561
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

So mache ich das auch bei Icons, aber bei den Dateinamen und Details sieht es ziemlich blöd aus, wenn sie verzögert die Farbe wechseln.
Author of Total Commander
https://www.ghisler.com
Post Reply