Also ich hab hier PB 5.60.
Und ich hab ein Tool geschrieben das zig mal aufwendiger ist, und zig mal mehr Events verarbeitet als das kleine an dem ich gerade hänge.
Aber das Kleine zeigt absolute unlogisches Verhalten, daß ich so in 12 Jahren noch nicht erlebt habe.
Ich weiss das der Code richtig ist, daß er funktionieren muss, daß sagt mir der Debugger und der Aufbau der Event Schleife.
Hier das Verhalten in der Version mit Threads.
29 jpg Dateien, die im anderen Tool (das zig mehr Events hat, und vieles ähnlich macht) in eine FileList geschmissen werden.
Filelist einlesen, in ein Array. Zähler fängt bei 0 an endet natürlich bei 28 (jedenfalls sollte es das !)
Das übliche
Code: Alles auswählen
While Eof(0) = 0
in.S = ReadString(0)
If FileSize(in.S) > 10
img(max)\pic = in.S
img(max)\xpos = xpos
img(max)\ypos = ypos
...
...
max + 1
Wend
Und da gebe ich
For x = 0 to Max an, und erstelle alle Images per
ImageGadget(x,img(x)\xpos,img(x)\ypos,Global_Cell,Global_Cell,ImageID(x))
Und genau wenn die bescheuerte Schleife fertig ist, und alle Bilder geladen (ich sehe ja wie sie in die Buttons gesetzt werden, und im anderen Tool das zig mal aufwendiger ist, passiert das auch nicht) verschwinden alle !
Ich habe nichts danach ausgeführt, keine GadgetListe geschlossen, keine Events ausgeführt, rein gar nichts !
Einfach weg ! ????????????
So führe ich das >nicht< als Thread aus, muss ich For x = 0 to Max -1 machen, was ja auch logisch ist, 0 erste Position, 29 Bilder, also kann sonst das letzte nicht geladen werden. So gebe ich in der Thread Version
For x = 0 to Max an, werden alle ohne Fehler geladen ! Mach ich -1 fehlt das letzte. ?????????
So, dann hab ich halt ButtonImageGadget gemacht, damit ich mich nicht mit diesem lahmen non threaded aufbau rumschlagen muss, und damit die Bilder nicht einfach verschwinden.
Erst die Buttons in der While Schleife setzen, und mit einem Dummy Image aufüllen, alles Ok.
In der Thread Schleife (dies mal ohne Max -1) die Bilder laden (keine Fehler) und setzen
SetGadgetAttribute(x,#PB_Button_Image,ImageID(x))
Alles Ok ! Bilder und Buttons verschwinden nicht auf mysteriöse weise.
So dann das übliche EventWParam zeug.
Code: Alles auswählen
Event = WaitWindowEvent()
If Event = #WM_KEYDOWN
Main_KeyCode = EventwParam()
If Main_KeyCode = #VK_Right
MoveStuff(1,GetActiveGaget())
EndIf
Endif
Nimm Image 0 aus aktuellem ButtonImageGadget (auch 0), setz es auf das nächste (also ButtonImageGadget 1) nimm Image 1 und setze es für ButtonImageGadget 0, setze ButtonImageGadget 1 als Actives Gadget
So Bilder wurden vertauscht, genau so wie ich schon in zig Tools in einem ListIconGaget Einträge vertauscht hab, oder verschoben (ja auch mehrere auf einmal, ohne Probleme) und wenn ich das noch mal mache, tauscht der 1 mit 3, dann mal die 3 mit der 1 usw ! Total unlogischer Mist, ich hab es 333333 geprüft es ergibt keinen Sinn !
Ich sehe im Debugger ganz genau, was das aktive Image ist, was das nächste, welches danach ! Die zahlen sagen alles Ok, aber PB macht ganz eigenartige Sachen !
Ok irgendwann hab ich aufgegeben, und es ohne Threads probiert, und das selbe unlogische Verhalten.
Danach wieder auf ImagesGadgets statt ButtonImageGadgets umgebaut und mit Drag & Drop probiert.
Und hier genau so unlogisches Verhalten.
Ich Drag Bild 1 auf 3, ok wird überschrieben (Debugger zeigt nichts unlogisches an) ich scrolle runter und wieder rauf. Image 0 ist weck ! Nein es ist noch irgendwie da, daß Stealth Image, reagiert auf DoubleClicks !
Ok schliessen, neu starten. Ich Drag Image 0 das sichtbar ist, und geladen wurde, auf irgendein anderes Bild, und es gibt einen Speicherfehler ! ????????????
Ok darum kümmer ich mich dann schon, erst mal soll der andere Mist gehen, ich versuche per Drag & Drop Bilder
zu vertauschen, kriege es natürlich nicht hin.
Wieder zurück zum Image 0 Problem, angucken, grübeln...............sich denken das ergibt keinen Sinn !
Es ist genau wie mit PB Versionen vor 5.60 vor ein paar Wochen, als ich Bilder die mit ffmpeg erstellt wurden, auf ein großes Bild drauf klatschen lies, was super gefunzt hat, und mit einem cli Tool das ich in PB geschrieben hab, und das auch Einzelne Bilder aus VideoFiles erstellt, wurden mit exakt dem selben Code, nur weise Kästchen auf das Bild geklatscht.
Völlig unlogisch ! Aber mit PB 5.60 ging es dann mysteriöser weise !