Français
Forum

Erste Erfahrungen...

 
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

 
13.09.2006  
 



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



la fois regarder peut-être peux je cela ganze encore plus simplifier...
 
14.09.2006  
 



Wow wm_close afin de vérifier sur welchen Dialog cela [X] gedrückt wurde-Test:
KompilierenMarqueSéparation
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

    Fin
 
14.09.2006  
 



Neuzeichnen sur Dialogen? Juhu ne...aucune Problem! et alles sans WProc et fastmode
KompilierenMarqueSéparation
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
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!
 
14.09.2006  
 



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

 
14.09.2006  
 




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épondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.416 Views

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

Themeninformationen

cet Thema hat 3 participant:

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


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie