Hallo,
habe hier ein kleines Problem.
Ziel ist es, viele Bilder in einem Prozess vorzuladen (Handle), um das Hauptprogramm zu entlasten
bzw. daß es flüssiger läuft. Mit einer Message (SendMessage) soll der Prozess das Handle zum
Hauptprogramm senden und wenn der Prozess fertig mit Laden ist, auch eine Message senden.
Leider bekomme ich die Handles nicht ins Hauptprogramm, bzw. bewirkt die UserMessage nichts.
Die Message, wenn der Prozess fertig ist, funktioniert dagegen.
Hat jemand eine Idee, woran das hängen könnte ?
Code
Declare path$, pid&, ende&, Diashow%[], Handle btn1
Window 1100, 800
btn1 = Create("Button", %HWnd, "Ende", 10, 10, 60, 25)
UserMessages 1000, 2000
path$ = "F:\StarTreck\" ' PFAD BITTE ANPASSEN !!!!!!!!!!!!!!!
Setsize Diashow%[], 100
pid& = pExec("|Bilder", %HWnd, path$)
ende& = 0
WhileNot ende&
waitinput
If %UMessage = 1000
Diashow%[&ULPARAM] = &UWPARAM
DrawPic Diashow%[&UWPARAM], 100, 20; 0
ElseIf %UMessage = 2000
Process("Kill", pid&, 0)
MessageBox(Str$(&UWPARAM) + " Dateien geladen !", "Info", 0)
ElseIf Clicked(btn1)
ende& = 1
EndIf
EndWhile
'Bildverzeichnis Initialisieren
Proc Bilder
Parameters win%, Pfad$
Declare count%, handle%[]
ClearList : ChDir Pfad$ : AddFiles "*.jpg"
WhileLoop 0, GetCount(0) - 1
count% = &LOOP
handle%[&LOOP] = Create("hSizedPic", -1, Pfad$ + GetString$(0, &LOOP), 400, 200, 1)
SendMessage(win%, 1000, handle%[&LOOP], count%)
Sleep 500
EndWhile
SendMessage(win%, 2000, count% + 1, 0)
EndProc
End
Alles anzeigen
Im Prozess selber kann ich mit StartPaint...EndPaint auf das übergebene Fensterhandle zeichnen.
Insofern sind die Bilder mit den richtigen Handles ja da.
Ich möchte die Bilder aber gerne im Hauptprogamm anzeigen.