habe gleichzeitig 3 Progs am Laufen, nämlich "Hausbelegung-Kalender", "Hausbelegung-Reminder" und "Hausbelegung-Vertrag"
Wenn in "...Vertrag" an einem Vertragsstatus irgendwas geändert wird, soll eine Info an "...-Kalender" und "...-Reminder" gesendet werden, damit diese ihren Datenstand updaten.
Habe ich so geschrieben:
Sender:
Code: Alles auswählen
Global handle
Global Message.s
Global cd.COPYDATASTRUCT
handle = 0
handle = FindWindow_(#Null,"Hausbelegung-Kalender")
If handle <> 0
Message.s="xxx"
cd\dwData = 0
cd\cbData = (Len(Message) + 1) * SizeOf(Character)
cd\lpData = @Message
SendMessage_(handle,#WM_COPYDATA,1,cd)
EndIf
handle = 0
handle = FindWindow_(#Null,"Hausbelegung-Reminder")
If handle <> 0
Message.s="yyy"
cd\dwData = 0
cd\cbData = (Len(Message) + 1) * SizeOf(Character)
cd\lpData = @Message
SendMessage_(handle,#WM_COPYDATA,1,cd)
EndIf
Empfänger:
Code: Alles auswählen
Procedure EmpfangCallback(WindowID,message,wParam,lParam)
Protected result
Protected *cd.COPYDATASTRUCT
result = #PB_ProcessPureBasicEvents
Select message
Case #WM_COPYDATA
SendMessage_(GadgetID(#update), #BM_CLICK, 0, 0)
EndSelect
ProcedureReturn result
EndProcedure
parentwindow = OpenWindow(#PB_Any, 800, 0, 795, 250, "Hausbelegung-Reminder", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
SetWindowCallback(@EmpfangCallback())
Der Code ist natürlich durch viele Beispiele aus dem Forum inspiriert oder auch voll abgekupfert, will mich da nicht mit fremden Federn schmücken! Habe schon einige Versuche gehabt, auch mit Postmessage, hat nie "immer" funktioniert, einer der Empfänger hatte immer mal einen Aussetzer.