Seite 1 von 1

ResizeWindow() & Flackern

Verfasst: 17.09.2004 21:11
von Lukaso
Hallo,

ich habe für meinen kommende MP3-Software jetzt so nen Art Slideout geproggt (da die BalloonTips doch nur Probleme machten/machen). Es Funktioniert soweit auch ganz prima, aber beim Raussliden Flackert der Player so komisch, nun würde ich gerne das Flackern entfernen.

Hier der Code, der für Slideout zuständig ist (vereinfacht, nur nach rechts)

Code: Alles auswählen

Procedure AnimeWindowSlideout(text$)
  LoadFont(10, "VERDANA", 10, #PB_Font_Bold)
  StartDrawing(WindowOutput())
  DrawingFont(UseFont(10))
  pix = TextLength(text$)
    For i=40 To pix+60 Step 1
      ResizeGadget(#Gadget_2, i-4, -1, -1, -1)
      If i = 40 
        HideGadget(#Gadget_3, 0)
      ElseIf i > 40
        ResizeGadget(#Gadget_3, 36, -1, i-40, -1)
      EndIf
      ResizeWindow(i, 40)
      Delay(1)
    Next i
    DrawingMode(1)
    FrontColor(0, 0, 0)
    Locate(46,11)
    DrawText(text$)      
    Delay(3500)
    For i=pix+60 To 40 Step -1
      ResizeGadget(#Gadget_2, i-4, -1, -1, -1)
      If i = 40 
        HideGadget(#Gadget_3, 1)
      ElseIf i > 40
        ResizeGadget(#Gadget_3, 36, -1, i-40, -1)
      EndIf
      ResizeWindow(i, 40)
      Delay(1)
    Next i
  StopDrawing()
  CloseFont(10)
EndProcedure
Zum nachvollziehen wie ich das meine:
http://www.lukaso.org/pix.zip

Einfach eine MP3-Datei mit ID3v2-Tag (in das Icon)hineinziehen. Danach wird nach 5sec. der Titel per Slideout angezeigt. (Flackern beachten)

Danke für Lösungscorschläge!

MFG Lukaso

Verfasst: 18.09.2004 15:49
von Lukaso
Kann mir keiner sagen, worand das liegen könnte? :cry:

Verfasst: 18.09.2004 16:11
von ChaOsKid
hi Lukaso,

vielleicht hilft ein while windowevent() : wend (nach ResizeWindow)

und bei mir raucht die beta.exe mit den meisten mp3's ab
erst nachdem ich die id tags mit winamp neu gespeichert hab geht es
liegt aber vielleicht auch an meinen mp3's ;)

mfG
Tobi

Verfasst: 18.09.2004 16:30
von Lukaso
@ChaOsKid
Ne, bringt nix, flackert immer noch :|
Bei mir und meinen 3 Kumpels ist der Player bis jetzt noch nie abgerausch, kann aber auch wie gesagt an den ID3 Tags liegen, habe im moment nur die Funktion für ID3v2 Tags drinne :allright:

MFG Lukaso

Verfasst: 18.09.2004 17:54
von ChaOsKid
mir is noch was aufgefallen
wenn ich beim einblenden des tags anfange das fenster zu verschieben dann fehlt danach das halbe fenster und der text

das mit dem text kommt glaube ich weil du den text mit StartDrawing(WindowOutput()) in das fenster zeichnest

ps: so ein kleiner lauffähiger testcode wäre nicht schlecht zum testen

Verfasst: 18.09.2004 18:31
von Lukaso
Als ich gerade nen testcode machen wollte, hat sich herausgestellt, dass es an der Transperenz Funktion liegt, wenn ich die Transperenz ausschalte, Flackert nix mehr, aber mein Player lebt nunmal von der Transperenz :wink:

Hier mal meine Transparenzfunktion:

Code: Alles auswählen

Procedure SetWinOpacity (hwnd.l, Opacity.l)
  SetWindowLong_(hwnd, #GWL_EXSTYLE, $00080000) 
  If OpenLibrary(1, "user32.dll") 
    CallFunction(1, "SetLayeredWindowAttributes", hwnd, 0, Opacity, 2) 
    CloseLibrary(1) 
  EndIf 
EndProcedure 
Ich denke es liegt am:

Code: Alles auswählen

SetWindowLong_(hwnd, #GWL_EXSTYLE, $00080000) 
MFG Lukaso