Flackern von Gadgets verhindern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Flackern von Gadgets verhindern

Beitrag von Delle »

So, hier mal ein funktionierender Code... bitte Directory anpassen und mal mit mehreren kleineren JPGs probieren.

Code: Alles auswählen

#Window=0
#ScrollAreaGadget=0

Global newH=130
Global newY=10

UseJPEGImageDecoder():UseJPEGImageEncoder()

OpenWindow(0,0,0,200,360,"test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)

ScrollAreaGadget(#ScrollAreaGadget,10,10,180,300,158,300,0)

Directory$="d:\speed\"

If ExamineDirectory(0, Directory$, "*.*")  
  
  While NextDirectoryEntry(0)
      
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      
        If GetExtensionPart(DirectoryEntryName(0))="JPG"
          
          pic=LoadImage(#PB_Any,Directory$+DirectoryEntryName(0))
          ButtonImageGadget(#PB_Any,10,newY,160,120,ImageID(pic))
   		    
   		    newY+newH
   		    
   		    anzahl=anzahl+1
   		    
   		    SetGadgetAttribute(#ScrollAreaGadget,#PB_ScrollArea_InnerHeight,anzahl*130)
 		      SetGadgetAttribute(#ScrollAreaGadget,#PB_ScrollArea_Y,anzahl*130)

          While WindowEvent():Wend

        EndIf
        
      EndIf
      
    Wend
    
    FinishDirectory(0)
    
  EndIf
  
   		    
Repeat
 
EventID=WaitWindowEvent()
If EventID=#PB_Event_CloseWindow:End:EndIf
	
ForEver
PB 6.21 | Win 11
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Flackern von Gadgets verhindern

Beitrag von RSBasic »

Sorry, aber dein Code ist immernoch unvollständig. Die Entfernen-Funktion fehlt inklusive die Neusetzen-Funktion für die Einträge. Man kann immernoch nicht direkt testen, um das Problem nachvollziehen zu können.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Flackern von Gadgets verhindern

Beitrag von Delle »

RSBasic hat geschrieben:Sorry, aber dein Code ist immernoch unvollständig. Die Entfernen-Funktion fehlt inklusive die Neusetzen-Funktion für die Einträge. Man kann immernoch nicht direkt testen, um das Problem nachvollziehen zu können.
Es geht generell um das Geflacker - es tritt auch schon beim laden auf... der Code reicht vollkommen und demonstriert das Geflacker eindeutig *blind* ;)
PB 6.21 | Win 11
Lord
Beiträge: 324
Registriert: 21.01.2008 19:11

Re: Flackern von Gadgets verhindern

Beitrag von Lord »

Laß doch einfach diese Zeile weg, dann "flackert" nichts:

Code: Alles auswählen

SetGadgetAttribute(#ScrollAreaGadget,#PB_ScrollArea_Y,anzahl*130)
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Flackern von Gadgets verhindern

Beitrag von NicTheQuick »

Ich habe den Code auch mal getestet, allerdings unter Ubuntu. Und beim Reinladen der ganzen Bilder flackert gar nichts. Ich hatte nur den Fehler gemacht ein Verzeichnis zu laden, das riesige JPGs enthält. Da war mein RAM ziemlich schnell am Limit. ^^
Antworten