| |
|
|
Jac de Lad | Etwas en el Ayuda macht me Kopfzerbrechen:
El Callback-Características puede 0 a 5 Parámetro (todos 32 Bit) haben y una 32-Bit-Valor zurückliefern. Für jede Parameterzahl kann lo actualmente máximo 5 Callbackfunktionen geben. Das dürfte en todos Fälle ausreichend ser.Und si doch no ausreicht, puede ser una benutzen Callback-Platz auch otra vez liberación, indem uno antes el Parameterzahl una - setzt:
ProcAddr(Fontliste,-4)
Was bedeutet el? Dass Yo el Prozeduren otra vez liberación muss? Sombrero alguien una sinnvolles Ejemplo con ner sinnvollen Anwendung?
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.10.2006 ▲ |
|
|
|
|
Michael Wodrich | Das heißt schlicht, el el Programmzeiger, el Usted zugewiesen había danach no mehr aufgerufen se. Usted schaltest esta Callback also de y kannst así entonces una otro Proedur aufrufen.
Wenn el Callback-Procedimiento todos Programa hindurch laufen se, entonces el natürlich no sinnvoll. Lo son aber en el API Callbacks el zB para Zählen de Fonts aufgerufen voluntad (para cada Font una Tiempo). Wenn alles durchgenudelt es, entonces kann dieser Callback otra vez recyclet voluntad.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 02.10.2006 ▲ |
|
|
|
|
Jac de Lad | Yo habe el desafortunadamente siempre todavía no verstanden..verändern el Zeiger beim Laufen des Programms? Haste tal vez una Ejemplo con ner sinnvollen Anwendung de ProcAddr(Procedimiento,-4) (also, wo el Negativwert una Papel juega)? |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 02.10.2006 ▲ |
|
|
|
|
| Yo versuche mich veces dran - hoffe, Roland mejorado mich, si yo como Mist rede: Profano producido después de el compilieren de deinem Ver código fuente no Maschinencode, pero traducido el verschlüsselten Ver código fuente simplemente sólo y führt entonces el de, qué como es. Su Ver código fuente es quasi como una Buch, en el Profano liest y luego a cierto Hebeln zieht en algo en Windows a bewirken. Nativer Ver código fuente zieht dagegen direkt a el Hebeln.
Ein Callback se direkt una Hebel en gang conjunto, como Proan aber sólo nachschlagen y traducir muß, va el eigentlich nada. Was se also wohl Profano en Función ProcAddr hacer? Lo übergiebt quasi el Adresse uno Función, de el Buch una Quelltextabschnitt ließt. Damit esta Función aber weiß, wo ellos en el Buch welche Quelltextseite aufschlagen muß, muß el irgendwo abgespeichert voluntad - qué abgespeichert se, braucht aber Platz. Ausreichend Platz para Abspeichern es para 5Callbackfunktionen (pro Parameterzahl) como, como liegt el problema. |
|
|
| |
|
|
|
| Und hier veces el verlangte Ver código fuente: KompilierenMarcaSeparaciónDEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
Def @SetTimer(4) !"USER32","SetTimer"
Def @KillTimer(2) !"USER32","KillTimer"
Declare Timer_WIN&,Button&,Zähler%,TIMER_ID&,PRO_ID&
Windowstyle 31+512
Windowtitle "Selbständig laufende Programmschleife"
Window 0,0-640,440
Usermessages $10
LET TIMER_WIN&=@Control("Static","TIMER_WIN",$8000000,0,0,0,0,%Desktop,9998,%HINSTANCE,$4)
Let Button&=@createbutton(%HWND,"",20,100,300,30)
LET TIMER_ID&=@SetTimer(TIMER_WIN&,9999,1500,@ProcAddr("TimerProc1",4))
While %UMESSAGE<>$10
Waitinput
IF @ButtonClicked(Button&)
IF PRO_ID&=1
@ProcAddr("TimerProc1",-4)
@ProcAddr("TimerProc2",4)
ELseif PRO_ID&=2
@ProcAddr("TimerProc2",-4)
@ProcAddr("TimerProc1",4)
Endif
endif
wend
@KiLLTIMER(TIMER_WIN&,TIMER_ID&)
end
Proc TimerProc1
Parameters ahhwnd&,ahuMsg&,ahidEvent&,ahdwTime&
LET PRO_ID&=1
Settext Button&,"Von Proc 1 gesetzt!"
Endproc
Proc TimerProc2
Parameters ahhwnd&,ahuMsg&,ahidEvent&,ahdwTime&
LET PRO_ID&=2
Settext Button&,"Von Proc 2 gesetzt!"
ENDPROC
|
|
|
| |
|
|