Icons in der Statusbar und im Imagemenue verschwinden
-
- Beiträge: 18
- Registriert: 02.11.2008 21:03
Icons in der Statusbar und im Imagemenue verschwinden
Hallo,
folgendes Problem:(4.20)
Ich lade jedes Bild eines Ordners in ein dynamisch erzeugtes ButtonImageGadget. Dies funktioniert. Nebeneffekt jedesmal ab dem 21 Bild
verschwinden die Icons in der Statusbar und im Imagemenue. Lade ich weniger als 21 Bilder bleibt alles. Hat jemand da eine Idee oder handelt es sich um einen Bug.
folgendes Problem:(4.20)
Ich lade jedes Bild eines Ordners in ein dynamisch erzeugtes ButtonImageGadget. Dies funktioniert. Nebeneffekt jedesmal ab dem 21 Bild
verschwinden die Icons in der Statusbar und im Imagemenue. Lade ich weniger als 21 Bilder bleibt alles. Hat jemand da eine Idee oder handelt es sich um einen Bug.
- 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
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ja, bitte einen code, der nachvollziehbar den Fehler reproduziert.NicTheQuick hat geschrieben:Code?
das heißt, der code muss auch im Editor einfach zu starten sein,
und nicht noch tausende ressourcen brauchen, die man zusätzlich reinpacken muss.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 18
- Registriert: 02.11.2008 21:03
Wollte paar Codeschnipsel zusammenstellen, dabei habe ich festgestellt, das die Icons da bleiben, wenn ich die ButtonImageGadgets nur in das Formular lade und nicht in das ScrollAreaGadget. Fehler scheint mit dem ScrollAreaGadget zusammen zu hängen. Werde heute abend noch etwas rumprobieren. Code folgt dann.
-
- Beiträge: 18
- Registriert: 02.11.2008 21:03
Code: Alles auswählen
;Hallo, hier mal ein Beispielcode
;Von Broncbuster
;also habe die betreffenden Procedures aus meinem Hauptprogi herausgenommen und dieses Beispiel eingefügt
;Im Gegensatz zum Hauptprogi bekomme ich hier das ScrollAreaGadget nicht sichtbar
;die Icons im Menue und Statusbar verschwinden trotzdem
;egal wie ich es drehe, jedesmal passiert was anderes
;liegt hier vielleicht ein grober Fehler meinerseits vor, den ich jedoch nicht sehe?
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseJPEGImageEncoder()
UsePNGImageEncoder()
Enumeration
#Photoalbum
#Neu
#Ende
#ScrollArea_Bilder
#ImM1
#Stat0
#Image_Thumb0
#Loadpro
EndEnumeration
Global Imagegadget
Global a
Global c
Global e
Global lang
Global breit
Global A$
Global Dim datei$(array)
Declare NeuesBild()
Imagegadget = #Image_Thumb0
Procedure Open_Photoalbum()
ExamineDesktops()
If OpenWindow(#Photoalbum, 0, 0, DesktopWidth(0) - 20, 200, "Bug-Test", #PB_Window_SystemMenu |#PB_Window_SizeGadget| #PB_Window_TitleBar )
LoadImage(#Ende,"Gfx\rotieren0.ico")
LoadImage(#Neu,"Gfx\viewer5.ico")
If CreateImageMenu(#ImM1, WindowID(#Photoalbum))
MenuTitle("Ordner")
MenuItem(1, "Öffnen", ImageID(#Neu)) ; Album einladen
EndIf
If CreateStatusBar(0, WindowID(#Photoalbum))
AddStatusBarField(600) ; Meldung
AddStatusBarField(150) ; Bildanzahl
EndIf
StatusBarIcon(#Photoalbum, 1, ImageID(#Ende))
EndIf
EndProcedure
Procedure Albumeinladen()
;DisableWindow(#Photoalbum, 1)
If CreateGadgetList(WindowID(#Photoalbum))
;ScrollAreaGadget(#ScrollArea_Bilder, 5, 30, WindowWidth(#Photoalbum) - 10, 150, 780, 120, 0)
;bekomme das ScrollAreaGadget nicht sichtbar, lasse es weg und packe die ButtonImagegadgets auf das Formular
;CloseGadgetList()
EndIf
a = 2
Imagegadget = 1
InitialPath$ = "C:\"
ImagePath$ = PathRequester("Bitte wählen Sie einen Pfad aus", InitialPath$)
SetWindowTitle(#Photoalbum, "UseIT-Photo " + Album$)
Global NewList Files.s()
For b = 1 To 5
Select b
Case 1
A$ = "BMP"
Case 2
A$ = "JPG"
Case 3
A$ = "JPEG"
Case 4
A$ = "PNG"
Case 5
A$ = "TGA"
EndSelect
ExamineDirectory(1,ImagePath$,"*."+A$)
Repeat
NextFile = NextDirectoryEntry(1)
If NextFile = 1
AddElement(Files())
Files() = DirectoryEntryName(1)
CountFiles + 1
EndIf
Until NextFile = 0
Next b
;
If CountList(Files())
d = CountList(Files())
ForEach Files()
A$ = ImagePath$+Files()
If LoadImage(Imagegadget,A$)
StatusBarText(0, 0, "Lade Bild aus "+A$)
StatusBarText(0, 1, "Bild: " + Str(a-1) + " von " + Str(d))
NeuesBild()
EndIf
Imagegadget = Imagegadget + 1
a = a + 1
Next
EndIf
StatusBarText(0, 0, "")
StatusBarText(0, 1, "Bildanzahl: " + Str(d))
If IsGadget(#ScrollArea_Bilder) <> 0
MessageRequester("Hallo", "ScrollAreaGadget sollte da sein")
Else
MessageRequester("Hallo", "ScrollAreaGadget ungültig")
EndIf
EndProcedure
Procedure NeuesBild()
;OpenGadgetList(#ScrollArea_Bilder,a)
;Bei gesetzter ScrollAreaGadget sollte das ButtonImageGadget hinzugefügt werden
ResizeImage(Imagegadget, 100, 70)
ButtonImageGadget(Imagegadget, c, 5, lang, breit,ImageID(Imagegadget))
;CloseGadgetList()
;Wenn OpenGadgetList...aktiviert ist kommt immer Fehlermeldung CloseGadgetList without OpenGadgetList
c = c + 115
EndProcedure
a = 2
Imagegadget = 2
lang = 110
breit = 110
Open_Photoalbum()
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Menu
Select EventMenu()
Case 1 ; Album einladen
c = 0
lang = 110
breit = 110
Albumeinladen()
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
End [code]
oberes Doppler-Posting gelöscht - Kaeru fecit
-
- Beiträge: 18
- Registriert: 02.11.2008 21:03
Langsam wache ich auf!!!(1.Teil)
Okay hätte mich wohl im Anfängerforum melden sollen.
Wenn ich die Icons als ImageID(0) und ImageID(1) bezeichne und die Zeile Imagegadget = 1 lösche, bleiben die Icons erhalten. Habe die Icons ja praktisch überschrieben.
Aber das mit dem ScrollAreaGadget kriege ich nicht gebacken.
Wenn ich die Icons als ImageID(0) und ImageID(1) bezeichne und die Zeile Imagegadget = 1 lösche, bleiben die Icons erhalten. Habe die Icons ja praktisch überschrieben.
Aber das mit dem ScrollAreaGadget kriege ich nicht gebacken.
Code: Alles auswählen
Procedure Open_Photoalbum()
ExamineDesktops()
If OpenWindow(#Photoalbum, 0, 0, DesktopWidth(0) - 20, 200, "Bug-Test", #PB_Window_SystemMenu |#PB_Window_SizeGadget| #PB_Window_TitleBar )
LoadImage(0,"Gfx\rotieren0.ico")
LoadImage(1,"Gfx\viewer5.ico")
If CreateImageMenu(#ImM1, WindowID(#Photoalbum))
MenuTitle("Ordner")
MenuItem(1, "Öffnen", ImageID(1)) ; Album einladen
EndIf
If CreateStatusBar(0, WindowID(#Photoalbum))
AddStatusBarField(600) ; Meldung
AddStatusBarField(150) ; Bildanzahl
EndIf
StatusBarIcon(#Photoalbum, 1, ImageID(0))
EndIf
EndProcedure
Re: Langsam wache ich auf!!!(1.Teil)
wäre gut, wenn Du das noch mal gesondert erklären kannst, weil ich dasBroncbuster hat geschrieben:Aber das mit dem ScrollAreaGadget kriege ich nicht gebacken.
aus den oben stehenden Postings nicht herauslesen kann.
Wo liegt jetzt Dein genaues Problem mit der ScrollAreaGadget?
(Kleiner, lauffähiger Code, der das Problem zeigt, wäre von Vorteil)
Grüße ... Kiffi
a²+b²=mc²
-
- Beiträge: 18
- Registriert: 02.11.2008 21:03
ScrollAreaGadget wird nicht angzeigt
Hallo,
also im ersten Code verschwinden die Icons. Mein Fehler: überschreibe diese beim erstellen der dynamischen ButtonImageGadgets. Mal sind sie da, mal nicht. Habe die Procedure OpenPhotoalbum geändert. Jetzt werden sie immer angezeigt, da eine eindeutige ID vergeben.
Wenn jetzt im 1. Codebeispiel die Bilder in das Scrollareagadget eingefügt werden sollen, bekomme ich die Scrollarea nicht angezeigt.
Der ausgeklammerte Scrollareacode muß jedoch aktiviert werden. Probier mal. Laut Meldung in der Statusbar werden alle Bilder eingeladen.
also im ersten Code verschwinden die Icons. Mein Fehler: überschreibe diese beim erstellen der dynamischen ButtonImageGadgets. Mal sind sie da, mal nicht. Habe die Procedure OpenPhotoalbum geändert. Jetzt werden sie immer angezeigt, da eine eindeutige ID vergeben.
Wenn jetzt im 1. Codebeispiel die Bilder in das Scrollareagadget eingefügt werden sollen, bekomme ich die Scrollarea nicht angezeigt.
Der ausgeklammerte Scrollareacode muß jedoch aktiviert werden. Probier mal. Laut Meldung in der Statusbar werden alle Bilder eingeladen.
Re: ScrollAreaGadget wird nicht angzeigt
#ScrollArea_Bilder hat lt. Deiner Enumeration den Wert 3Broncbuster hat geschrieben:Probier mal.
Dann gibt es eine Variable 'Imagegadget', die Du pro Bild hochzählst.
Mit ButtonImageGadget(Imagegadget) überschreibst Du das
ScrollAreaGadget, wenn Imagegadget ebenfalls den Wert 3 erreicht.
Grüße ... Kiffi
a²+b²=mc²