Forum | | | | | on(Event) (Télécharger)
qui Unit (Sourcecode ist beiliegend!), permet (sans Fastmode et Prozeduradressen!) cela Abprüfen de Doppelklicks ou bien Rechte-Bouton de la souris-Aktionen sur Dialogelementen et Controls comment Listboxen, Buttons... aussi cela Neuzeichnen de Dialogen ist eh bien un Kinderspiel.
tant pis cela Thomas sa easyVent pas umbauen peux - alors habe je la fois versucht sa dll sur minimaler la base nachzustellen avec dem entscheidenen Punkt cela es sans Procaddr funktioniert! et es funktioniert wunderbar!
Beispiel: KompilierenMarqueSéparation {$cleq}
$U on.pcu = on.
Def GetSysColor(1) !"User32","GetSysColor"
declare lb&,dlg&
//unsichtbares Hauptfenster damit lecker messages angekommen
windowstyle 80 | 1024
window 0,0 - 0,0
showwindow(%hwnd,0)
//
windowstyle 512+8
dlg&:=createdialog(0,"MyDlg",100,100,640,480)
lb&:=createbutton(dlg&,"",10,30,100,100)
on.event "paint" ,dlg& ,12343
on.event "close" ,dlg& ,12344
on.event "ldklick" ,lb& ,12345
on.event "rklick" ,lb& ,12346
on.event "mouseover" ,lb& ,12347
on.event "mouseleave" ,lb& ,12348
PaintDlg 0
while 1
waitinput
case %umessage==12343 : paintDlg 0
case %umessage==12344 : break
case %umessage==12345 : settext dlg&,"dblklick "+str$(&gettickcount)
case %umessage==12346 : settext dlg&,"rklick "+str$(&gettickcount)
case %umessage==12347 : settext lb&,"Hau ab!"
case %umessage==12348 : settext lb&,""
wend
on.delevent "paint" ,dlg& ,12343
on.delevent "close" ,dlg& ,12344
on.delevent "ldklick" ,lb& ,12345
on.delevent "rklick" ,lb& ,12346
on.delevent "mouseover" ,lb& ,12347
on.delevent "mouseleave",lb& ,12348
on.close
end
Proc PaintDlg
parameters u&
startpaint dlg&
usefont "MS Sans Serif",10,0,0,0,u&
textcolor $00FF0000,-1
drawtext 10,300,"https://ich.hab-doch-garkeine-homepage.de"
endpaint
=s4 href='./../../funktionsreferenzen/XProfan/endproc/'>endproc
|
| | | | |
| | | So - neue Version hochgeladen - cela Entfernen de Events allez maintenant aussi indem qui dernier paramètre einer Eventangabe 0 (zéro) ist.
Event mettons:
On(MessageNummer ,ControlHandle,UserMessage,HauptfensterHWND)
Event effacer:
On(MessageNummer ,ControlHandle,UserMessage,0)
Es peut plusieurs Events pro Contrôle gesetzt volonté!
qui wichtigsten Konstanten hierfür devrait son: KompilierenMarqueSéparation |
| | | | |
| | | So dans espace meinen Tests - aucun faute.
je glaub qui DLL peux maintenant de Euch getestet volonté.
c'est somit eh bien imaginable simple Doppelklicks ou bien Rechtemaustasten sur Controls comment Buttons ou bien Listboxen correct abzufangen. c'est ne...aucune Fastmode, et aucun WProc nötig! qui DLL wandelt entsprechende Messages dans Usermessages um. |
| | | | |
| | | la fois regarder peut-être peux je cela ganze encore plus simplifier... |
| | | | |
| | | Wow wm_close afin de vérifier sur welchen Dialog cela [X] gedrückt wurde-Test: KompilierenMarqueSéparationDeclare Lb&,Dll&,Lb2&,Lb3&
Def On(4) !"on.dll","on"
Dll&:=Usedll("on.dll")
Cls
Lb&:=Create("Button",%Hwnd,"",10,50,100,100)
Lb2&:=Createdialog(%hwnd,"",10,10,200,200)("Button",%Hwnd,"",210,50,100,100)
Lb&:=Createdialog(%hwnd,"",310,310,200,200)("Button",%Hwnd,"",210,50,100,100)
Lb3&:=Create("ListBox",%Hwnd,"",110,50,100,100)
// on EVENT auf HANDLE putmessage MESSAGE an FENSTER
On(515 , Lb&,102425,%Hwnd)/*~WM_LBUTTONDBLCLK*/
On(16 , lb2&,102426,%Hwnd)/*~WM_LBUTTONDBLCLK*/
On(515 , Lb3&,102427,%Hwnd)/*~WM_LBUTTONDBLCLK*/
whileloop 10:addstring(lb&,str$(&loop)):wend
Usermessages 102425,102426,102427
While 1
Waitinput
Settext %Hwnd,Str$(&Gettickcount)
If %Umessage==102425
Print "jaul!"
Elseif %Umessage==102426
Print "ooar!"
Elseif %Umessage==102427
Print "ach"
Endif
Wend
Fin
|
| | | | |
| | | Neuzeichnen sur Dialogen? Juhu ne...aucune Problem! et alles sans WProc et fastmode KompilierenMarqueSéparationXPSE-Quelltext erkannt. Precompiler XPSE für Ausführung benötigt.
Declare Lb&,Dll&
Def On(4) !"on.dll","on"
Dll&:=Usedll("on.dll")
Cls
Lb&:=Createdialog(%hwnd,"",310,310,200,200)("Button",%Hwnd,"",210,50,100,100)
On(15,lb&,102425,%Hwnd)
On(16,lb&,102426,%Hwnd)
Usermessages 102425,102426
drw
While 1
Waitinput
Settext %Hwnd,Str$(&Gettickcount)
If %Umessage==102425
drw
elseif %umessage=102426
on(15,lb&,102425,0)
on(16,lb&,102426,0)
destroywindow(lb&)
Endif
Wend
End
proc drw
startpaint lb&
drawtext 10,10,"lalala"
endpaint
endproc
|
| | | | |
| | Jac de Lad | je habs encore pas testen peut, mais wenns funktioniert ist cela cela i-Tüpfelchen pour XProfan!
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 | 14.09.2006 ▲ |
| |
| | Jac de Lad | quelle Version ist eh bien qui richtigeß si je sur den Link entier dessus klicke venez une presque 600kB-Dossier, unten im Beitrag (wohin x la fois gedownloaded steht) venez seulement une 9kB-Dossier...léger verwirrend. |
| | | 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 | 14.09.2006 ▲ |
| |
| | | Beides ist cela selbe! qui une ist pas 600kb grand! je glaub Dein Browser spinnt, mais étiez je hab ici juste encore quoi besseres! |
| | | | |
| | | So! exposition Dir la fois den obigen Télécharger à - et cela Beispiel! eh bien ists wirklich kinderleicht et on devrait sich avec qui Unit (source liegt dabei) nichtmal plus à DLL kümmern! KompilierenMarqueSéparation {$cleq}
$U on.pcu = on.
Def GetSysColor(1) !"User32","GetSysColor"
declare lb&,dlg&
//unsichtbares Hauptfenster damit lecker messages angekommen
windowstyle 80 | 1024
window 0,0 - 0,0
showwindow(%hwnd,0)
//
windowstyle 512+8
dlg&:=createdialog(0,"MyDlg",100,100,640,480)
lb&:=createbutton(dlg&,"",10,30,100,100)
on.event "paint" ,dlg& ,12343
on.event "close" ,dlg& ,12344
on.event "ldklick" ,lb& ,12345
on.event "rklick" ,lb& ,12346
on.event "mouseover" ,lb& ,12347
on.event "mouseleave" ,lb& ,12348
PaintDlg 0
while 1
waitinput
case %umessage==12343 : paintDlg 0
case %umessage==12344 : break
case %umessage==12345 : settext dlg&,"dblklick "+str$(&gettickcount)
case %umessage==12346 : settext dlg&,"rklick "+str$(&gettickcount)
case %umessage==12347 : settext lb&,"Hau ab!"
case %umessage==12348 : settext lb&,""
wend
on.delevent "paint" ,dlg& ,12343
on.delevent "close" ,dlg& ,12344
on.delevent "ldklick" ,lb& ,12345
on.delevent "rklick" ,lb& ,12346
on.delevent "mouseover" ,lb& ,12347
on.delevent "mouseleave",lb& ,12348
on.close
end
Proc PaintDlg
parameters u&
startpaint dlg&
usefont "MS Sans Serif",10,0,0,0,u&
textcolor $00FF0000,-1
drawtext 10,300,"https://ich.hab-doch-garkeine-homepage.de"
endpaint
=s4 href='./../../funktionsreferenzen/XProfan/endproc/'>endproc
|
| | | | |
| | Jac de Lad | merci, je probiers aujourd'hui juste aus!
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 | 14.09.2006 ▲ |
| |
| | Jac de Lad | juste la première Frage: Gibt es une ou bien plusieurs Bereiche de Usermessages, qui on pas définir sollte (soll je beispielsweise comme message pas 1 prendre, pourquoi De toute façon)?
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 | 14.09.2006 ▲ |
| |
|
répondreOptions du sujet | 4.416 Views |
Themeninformationencet Thema hat 3 participant: |