| |
|
|
| Ich schreib ja grad an der XIDE (und wurde von Frank ja völlig hundsgemein nun damit alleine gelassen (Frank ist im Urlaub)) und da ich speziell grad an der Communikation zwischen XIDE-selbst und den XIDE-Panels(Plugins) arbeite plage ich mich unheimlich damit rum das Messages (z.B. Usermessages) einfach verloren gehen wenn XProfan grad mal nicht im WaitInput ist.
Auf gut deutsch gehen alle Messages verloren - sei denn - das Programm stoppt grad im Waitinput. Deswegen muss ich die Xide immer veranlassen nicht einfach nur eine Message zu senden - sondern so lange ein und die selbe Message zu senden bis das XProfanProgramm mit einer anderen speziellen Message antwortet.
Speziell in XIDE sieht das so aus (was aber fast völlig Banane ist) KompilierenMarkierenSeparieren.data
boolMsgHasSend dd ?
.code
sureSendMessageToPlugin macro h,m,w,l
mov boolMsgHasSend,FALSE
.while boolMsgHasSend==FALSE
invoke SendMessage,h,m,l,w
invoke Sleep,10
.endw
endm
;--wproc-Auszug
...
invoke SetWindowPos,pluginr,0, eax,oben,breitexr,unten,SWP_NOOWNERZORDER or SWP_NOZORDER or SWP_SHOWWINDOW
.if phWnd
mov eax,pVSplitx
.if fpluginleftx==eax
.else
mov fpluginleftx,eax
sureSendMessageToPlugin phWnd,20012,0,0
.endif
.endif
.elseif eax==20019
mov boolMsgHasSend,TRUE
...
Man kann erkennen dass das Prinzip natürlich denkbar einfach ist - gleichwohl aber auch völlig Performanceschlapp.
XProfan sollte auf jeden Fall keine Messages einfach vergessen nur weil Waitinput grad nicht am Zuge ist. XProfans wProc (keine Ahnung welche - kann nur Roland wissen ) muss einfach alle eingehenden relevanten Messages auf einen Stapel packen und beim jedem Waitinput den Stapel abarbeiten - und Waitinput entsprechend durchlassen wenn noch was auf dem Stapel liegt.
Dieses Problem hat vordergründig nichts mit dem ProcAddr-Problem zu tun obwohl ProcAddr ebenfalls unbedingt solch einen Stapel benötigt.
Bitte bitte Roland Stapel endlich (meinetwegen auch hoch ) nur bitte nix vergessen - schon garnicht Messages (auch nicht diese *g*)
|
|
|
| |
|
|
|
RGH | So wie Du Dir das vorstellst, würde es nicht gehen, ohne die Kompatibilität zu allen bisherigen (X)Profan-Versionen aufzugeben. Jeder Eingriff in das filigrane Messagehandling von XProfan führt zwangsweise zu Inkompatibilitäten. Aber vielleicht hilft Dir ja so etwas in eine Tabelle, aus der man ersehen kann, welche User-Messages seit dem letzten WaiInput aufgetreten sind. Ich werde mir mal zu gegebener Zeit Gedanken darüber machen!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 10.07.2007 ▲ |
|
|
|
|
| Tabelle - genau - ich sag halt Stapel.
Bestenfalls verwaltet (schon aus Performancegründen) XProfan die Tabelle selbst.
Hierzu meine Idee:
WaitInput <-- als Prozedur: alles bleibt beim Alten WaitInput({modi}) <-- als Funktion, wenn z.B. modi 1 ist dann wird waitinput gleich verlassen wenn noch Msgs auf dem Stapel liegen. (So richtig schön mit Füllung von %message %umessage & Co.) |
|
|
| |
|
|