Seite 3 von 4

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:36
von Mok
Vera hat geschrieben: Man kann sich helfen, indem man zwischendurch ein völlig anderes ICO einbindet (zB 1kb statt ein 6er).
Das habe ich auch schon getan... insgesamt ist das schon mein 3. ICO, zwischendurch hab ich auch mal garkeines angegeben. Im Fensterrahmen (oben links) ist zwar das neue und in der Taskbar auch, aber das Programm "itself" (also das Symbol wo man draufklickt) hat noch das alte Icon

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:41
von Kaeru Gaman
Mok hat geschrieben:WaitWindowEvent(1)
:lol:

... das ist jetzt nicht dein Ernst, gell?

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:45
von ts-soft
Vera hat geschrieben:
ts-soft hat geschrieben:(gibt auch professionelle Tools, die das können :mrgreen: )
zB: :?: - denn TweakUI zerfetzt einem dabei auch gleich den Desktop :freak:

Grüße ~ Vera
TweakUI??? Das gibts doch seid w2k nicht mehr :lol:
z.B. TuneUp 2010

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:47
von Vera
Mok hat geschrieben:aber das Programm "itself" (also das Symbol wo man draufklickt) hat noch das alte Icon
Du meinst vermutlich das ExeIcon im Explorer - das steckt in dem Cache. Ggf. hilft, außer Cachelöschen, zwischendurch den Programmnamen zu ändern.

Alles nur halbgar - man müßte ein MiniTool haben, um den IconRefresh-Befehl ausführen zu lassen.

Gruß ~ Vera

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:47
von Mok
Kiffi hat geschrieben:Versieh Dein WaitWindowEvent() mit einem Timeout und schon klappts.
Kaeru Gaman hat geschrieben:
Mok hat geschrieben:WaitWindowEvent(1)
:lol:

... das ist jetzt nicht dein Ernst, gell?
Ich will ein Bier. :shock:

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:49
von Kaeru Gaman
also, ein TimeOut von EINER Millisekunde ist reichlich unnütz, dann kannst du auch gleich nur WindowEvent() hinschreiben.

nimm mal 100.

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:55
von Vera
ich uso !
Bild ~ Bild ~ Bild

Bild ~ Vera

@ ts-soft
Danke für den 1.Tip - aber 35bucks sind indiskutable

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 22:59
von Kai
Hab mir mal erlaubt dein Source etwas umzuschreiben, so würde ich es realisieren.
Soll nur ein Vorschlag sein. :mrgreen:

Code: Alles auswählen

EnableExplicit

Enumeration
  #Win_Main
EndEnumeration

Enumeration
  #TX_Main_Full
  #TX_Main_Use
  #TX_Main_UsePercent
  #TX_Main_Free
  #TX_Main_FullC
  #TX_Main_UseC
  #TX_Main_UsePercentC
  #TX_Main_FreeC
EndEnumeration

Structure _WinLoop
  WindowEvent.i
  EventWindow.i
  EventGadget.i
  EventMenu.i
  EventType.i
  EventTimer.i
  EventlParam.i
  EventwParam.i
  ActiveWindow.i
  ActiveGadget.i
EndStructure
Global Event._WinLoop

Procedure.s FormatPointedSize(Size.q)
  If Size > 999
    Protected lNext.l, sSize.s = Str(Size), sTemp.s, sResult.s
    For lNext = 1 To Len(sSize)
      sResult = Mid(sSize, Len(sSize) - lNext + 1, 1)
      If lNext % 3 = 0 And lNext <> Len(sSize)
        sResult = "." + sResult
      EndIf
      sTemp = sResult + sTemp
    Next
    ProcedureReturn sTemp
  Else
    ProcedureReturn Str(Size)
  EndIf
EndProcedure

Procedure OpenWindow_Main()
  If OpenWindow(#Win_Main, 428, 532, 215, 85, "RamView",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    TextGadget(#TX_Main_Full, 5, 5, 80, 15, "Gesamt:", #PB_Text_Right)
    TextGadget(#TX_Main_Use, 5, 25, 80, 15, "Verbrauch:", #PB_Text_Right)
    TextGadget(#TX_Main_UsePercent, 5, 45, 80, 15, "Verbrauch %", #PB_Text_Right)
    TextGadget(#TX_Main_Free, 5, 65, 80, 15, "Frei:", #PB_Text_Right)
    TextGadget(#TX_Main_FullC, 90, 5, 120, 15, "...")
    TextGadget(#TX_Main_UseC, 90, 25, 120, 15, "...")
    TextGadget(#TX_Main_UsePercentC, 90, 45, 120, 15, "...")
    TextGadget(#TX_Main_FreeC, 90, 65, 120, 15, "...")
  EndIf
EndProcedure

Procedure RefreshMemory()
  Protected sTemp.s
  Protected MemEx.MEMORYSTATUSEX
  
  MemEx\dwLength = SizeOf(MEMORYSTATUSEX)
  GlobalMemoryStatusEx_(@MemEx)
  
  sTemp = FormatPointedSize(MemEx\ullTotalPhys / 1024 / 1024) + " MB"
  If sTemp <> GetGadgetText(#TX_Main_FullC)
    SetGadgetText(#TX_Main_FullC, sTemp)
  EndIf  
  sTemp = FormatPointedSize((MemEx\ullTotalPhys - MemEx\ullAvailPhys) / 1024 / 1024) + " MB"
  If sTemp <> GetGadgetText(#TX_Main_UseC)
    SetGadgetText(#TX_Main_UseC, sTemp)
  EndIf  
  sTemp = FormatPointedSize(MemEx\dwMemoryLoad) + " %"
  If sTemp <> GetGadgetText(#TX_Main_UsePercentC)
    SetGadgetText(#TX_Main_UsePercentC, sTemp)
  EndIf  
  sTemp = FormatPointedSize(MemEx\ullAvailPhys / 1024 / 1024) + " MB"
  If sTemp <> GetGadgetText(#TX_Main_FreeC)
    SetGadgetText(#TX_Main_FreeC, sTemp)
  EndIf  
EndProcedure

Procedure Main()
  OpenWindow_Main()
  
  SetTimer_(0, 0, 250, @RefreshMemory())
  
  Repeat
    Event\WindowEvent = WaitWindowEvent()
    Event\EventGadget = EventWindow()
    Select Event\WindowEvent
      Case #PB_Event_Gadget
        Select Event\EventGadget
      EndSelect
      Case #PB_Event_CloseWindow
        Select Event\EventWindow
          Case #Win_Main : End
        EndSelect
    EndSelect
  ForEver  
EndProcedure

Main()

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 23:01
von Kaeru Gaman
aber selbst mit einem timeout von 1 braucht das proggi bei mir "nur" eine sekunde bis die buttons auftauchen...

wenn ich das erste Ermitteln von ElapsedTime direkt vor die Schleife schreibe und den timeout auf 100 hochstelle, wirds auch nicht viel besser...

dauert das echt ganze 10 sekunden bei dir?

Re: Fensterinhalt wird nur bei Mausbewegung aktualisiert

Verfasst: 29.11.2009 23:06
von Mok
aber selbst mit einem timeout von 1 braucht das proggi bei mir "nur" eine sekunde bis die buttons auftauchen...

wenn ich das erste Ermitteln von ElapsedTime direkt vor die Schleife schreibe und den timeout auf 100 hochstelle, wirds auch nicht viel besser...

dauert das echt ganze 10 sekunden bei dir?
Leider ja :( - meistens noch viel mehr, da bekomme ich dann die Abbruch-meldung vom Debugger.
Mein PC ist so dermaßen schlecht, ich habe schon eine CPU-Temeratur von 74 °C, wenn ich nur FiFi mit 2 Tabs offen habe, Skype laufen habe und gerade nix tu... dabei ist das Modell grad erst vor 'nem Jahr rausgekommen...

@Kai:
:o
Also, falls das für einen Großteil der Board-User übersichtlicher ist, brauch ich wirklich ein Bier!