Foro | | | | | on(Event) (Descargar)
El Unit (Sourcecode es beiliegend!), ermöglicht (sin Fastmode y Prozeduradressen!) el Abprüfen de Doppelklicks oder Rechte-Botón del ratón-Aktionen en Dialogelementen y Controls como Listboxen, Buttons... Auch el Neuzeichnen de Dialogen es nun una Kinderspiel.
Schade el Thomas seine easyVent no umbauen kann - also Yo veces intenta seine dll en minimaler Base nachzustellen con el entscheidenen Punkt el lo sin Procaddr funktioniert! Und lo funktioniert wunderbar!
Ejemplo: KompilierenMarcaSeparación {$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 Versión hochgeladen - el Entfernen de Events va ahora indem el letzte Parámetro uno Eventangabe 0 (null) es.
Event conjunto:
On(MessageNummer ,ControlHandle,UserMessage,HauptfensterHWND)
Event löschen:
On(MessageNummer ,ControlHandle,UserMessage,0)
Lo puede mehrere Events pro Control gesetzt voluntad!
El wichtigsten Konstanten esta debería ser: KompilierenMarcaSeparación |
| | | | |
| | | So en all media Tests - no Fehler.
Yo glaub el DLL kann ahora de Euch getestet voluntad.
Es somit nun denkbar simplemente Doppelklicks oder Rechtemaustasten en Controls como Buttons oder Listboxen fehlerfrei abzufangen. Es kein Fastmode, y no WProc nötig! El DLL wandelt entsprechende Messages en Usermessages en. |
| | | | |
| | | Tiempo schauen tal vez kann Yo todos todavía mehr vereinfachen... |
| | | | |
| | | Wow wm_close en a prüfen en welchen Diálogo el [X] gedrückt wurde-Test: KompilierenMarcaSeparaciónDeclare 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
End
|
| | | | |
| | | Neuzeichnen en Dialogen? Juhu kein Problema! Und alles sin WProc y fastmode KompilierenMarcaSeparaciónXPSE-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 | Yo habs todavía no testen puede, aber wenns funktioniert es el el i-Tüpfelchen para 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 | Welche Versión es nun el richtigeß Wenn I el Link bastante oben klicke kommt una fast 600kB-Expediente, unten en el Contribución (wo x veces gedownloaded es) kommt sólo una 9kB-Expediente...ligeramente 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 es el selbe! El una es no 600kb groß! Yo glaub Su navegador spinnt, aber wart Yo tener hier igual todavía qué besseres! |
| | | | |
| | | So! Schau Dir veces el obigen Descargar a - y el Ejemplo! Nun ists wirklich kinderleicht y uno debería se con el Unit (source liegt esta) nichtmal mehr a DLL kümmern! KompilierenMarcaSeparación {$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 | Gracias, Yo probiers heute igual de!
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 | Gleich el erste Cuestión: Gibt lo una oder mehrere Bereiche de Usermessages, el uno no definieren debería (se Yo por ejemplo como mensaje no 1 nehmen, por qué De todos modos)?
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 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |