Español
Foro

Erste Erfahrungen...

 
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

 
13.09.2006  
 



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
WM_LBUTTONDBLCLK = { $203 | 515 }
WM_LBUTTONDOWN = { $201 | 513 }
WM_LBUTTONUP = { $202 | 514 }
WM_MBUTTONDBLCLK = { $209 | 521 }
WM_MBUTTONDOWN = { $207 | 519 }
WM_MBUTTONUP = { $208 | 520 }
WM_RBUTTONDBLCLK = { $206 | 518 }
WM_RBUTTONDOWN = { $204 | 516 }
WM_RBUTTONUP = { $205 | 517 }
WM_MOUSEMOVE = { $200 | 512 nt>
 
14.09.2006  
 



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.
 
14.09.2006  
 



Tiempo schauen tal vez kann Yo todos todavía mehr vereinfachen...
 
14.09.2006  
 



Wow wm_close en a prüfen en welchen Diálogo el [X] gedrückt wurde-Test:
KompilierenMarcaSeparación
Declare 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
 
14.09.2006  
 



Neuzeichnen en Dialogen? Juhu kein Problema! Und alles sin WProc y fastmode
KompilierenMarcaSeparación
XPSE-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

 
14.09.2006  
 




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!
 
14.09.2006  
 



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

 
14.09.2006  
 




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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.435 Views

Untitledvor 0 min.
Peter Max Müller13.05.2015
Ernst17.05.2014
H.Brill09.04.2014
Ingobingo10103.05.2012
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

iF (12x)
Jac de Lad (6x)
Rolf Koch (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie