Fuente/ Codesnippets | | | | - Página 1 - |
| | SubClassProc Temporizador - sichere KompilierenMarcaSeparación $H windows.ph
WINDOWSTYLE 80 | 512 | 1024
WINDOW %MAXX,%MAXY - 0,0
SHOWWINDOW(%HWND,0)
WINDOWSTYLE 1 | 2 | 4 | 8 | 16 | 512
var HMYWND&=(CREATE("WINDOW",(0),"Zuckertest 3.0",(100),(100),(200),(350)))
var HPIC&=CREATE("hNewPic",64,64,$FFFFAA)
var HDSK&=CREATE("text",HMYWND&,"",0,0,$FFFF,$FFFF)
var HSTATBAR&=CREATE("statusWindow",HMYWND&,"Bereit.")
USERMESSAGES $0010,$0014
MYWND.RESIZING()
SUBCLASS HMYWND&,1
~SetClassLongA(HMYWND&,-12,~LoadCursorA(0,32512))
~SetTimer(HMYWND&,55100,100,0)
~SetTimer(HMYWND&,55101,500,0)
WHILE 1
WAITINPUT
SELECT %UMESSAGE
CASEOF $0010
SELECT %MWND
CASEOF HMYWND&
BREAK
ENDSELECT
ENDSELECT
ENDWHILE
~KillTimer(HMYWND&,55100)
~KillTimer(HMYWND&,55101)
end
SUBCLASSPROC
SELECT &SWND
CASEOF HMYWND&
SELECT %SMESSAGE
CASEOF 532,$0005
MYWND.RESIZING()
CASEOF $0113
SELECT &SWPARAM
CASEOF 55100
DEMO(1)
CASEOF 55101
DEMO(2)
ENDSELECT
ENDSELECT
ENDSELECT
endproc
proc MYWND.RESIZING
SETWINDOWPOS HSTATBAR&=0,0 - 0,0
DEMO(1)
DEMO(2)
endproc
proc DEMO
PARAMETERS MODE&
SELECT MODE&
CASEOF 1
STARTPAINT HMYWND&
USEPEN 0,0,RND($FFFFFF)
LINE 10,10 - 200,43
ENDPAINT
CASEOF 2
STARTPAINT HMYWND&
TEXTCOLOR RND($FFFFFF),~GetSysColor(15)
DRAWTEXT 10,10,&GETTICKCOUNT
ENDPAINT
ENDSELECT
ENDPROC
KompilierenMarcaSeparación {$cleq}
windowstyle 80 | 512 | 1024
window maxx,maxy - 0,0
showWindow(hWnd,falso)
windowstyle 1 | 2 | 4 | 8 | 16 | 512
long hMyWnd=createWindow(,"Zuckertest 3.0",100,100,200,350),
hPic=create("hNewPic",64,64,$FFFFAA),
hDsk=create("text",hMyWnd,"",,,$FFFF,$FFFF),
hStatBar=create("statusWindow",hmyWnd,"Bereit.")
mensajes de los usuarios wm_close,wm_erasebkgnd
myWnd.resizing()
setClassLong(hMyWnd,gcl_hcursor,loadCursor(,IDC_ARROW))
subClass hMyWnd,true
~setTimer(hMyWnd,55100,100,)
~setTimer(hMyWnd,55101,500,)
do {
waitInput
seleccionar uMessage
caseof wm_close
seleccionar mWnd
caseof hMyWnd
romper
EndSelect
EndSelect
}
~killTimer(hMyWnd,55100)
~killTimer(hMyWnd,55101)
end
subClassProc {
seleccionar sWnd
caseof hMyWnd
seleccionar sMessage
caseof wm_sizing,wm_size
myWnd.resizing()
caseof wm_timer
seleccionar sWParam
caseof 55100:demo(1)
caseof 55101:demo(2)
EndSelect
EndSelect
EndSelect
}
myWnd.resizing{
setWindowPos hStatBar=0,0 - 0,0
demo(1)
demo(2)
}
demo(long mode){
seleccionar mode
caseof 1
startPaint hMyWnd
usePen 0,,rnd($FFFFFF)
line 10,10 - 200,43
endPaint
caseof 2
startPaint hMyWnd
textColor rnd($FFFFFF),getSysColor(15)
drawText 10,10,getTickCount
endPaint
EndSelect
}
|
| | | | |
| | | | | - Página 1 - |
| | Nö, es völlig korrekt con XPSE.
Ventana se en 0 erstellt voluntad (oberste Ebene) así lo auch sicher en el Tastkbar landet - y Parámetro zwischen ,, kann sólo 0 ser. Das klappt aber sólo hinter Klammern y zwischen Kommas...
XPSE traducido lo doch auch korrekt, oder?
Usted puede con XPSE escribir: KompilierenMarcaSeparación y el ausgekommaten 4 Parámetro son sólo 0... (sichert aber auch sólo, el - si en el Zielfunktion no pCount-Prüfung instalado es - el übergebenen Parámetro auch wirklich 0 son) |
| | | | |
| | | Frank Abbing
Was genau se el Code demonstrieren?
Damit puede ser sicheres threadähnliches Comportamiento Programmieren, o. es esta una Vereinfachung.
Blockierende Apis puede así natürlich no überrumpelt voluntad. |
| | | | |
| | Jörg Sellmeyer | Wenn Yo, el zweien Code como prf-Expediente por Drag & Drop en XPSE ziehe erhalte Yo esta Code: KompilierenMarcaSeparación
proc __xpse__endofprogram__
REM {{SOMEEXTRAENDCOMMAND}}
end
endproc
DECLARE __cf1&,__cf2&,__cf3&,__cf4&,__cf5&
Def __cf1(2) !"KERNEL32","GetProcAddress"
Def __cf2(1) !"KERNEL32","GetModuleHandleA"
__cf1&=__cf1(__cf2("user32.dll"),"SetClassLongA")
__cf2&=__cf1(__cf2("user32.dll"),"LoadCursorA")
__cf3&=__cf1(__cf2("user32.dll"),"SetTimer")
__cf4&=__cf1(__cf2("user32.dll"),"KillTimer")
__cf5&=__cf1(__cf2("user32.dll"),"GetSysColor")
WINDOWSTYLE 80 | 512 | 1024
WINDOW %MAXX,%MAXY - 0,0
SHOWWINDOW(%HWND,0)
WINDOWSTYLE 1 | 2 | 4 | 8 | 16 | 512
var HMYWND&=(CREATE("WINDOW",(),"Zuckertest 3.0",(100),(100),(200),(350)))
!!!!!
var HPIC&=CREATE("hNewPic",64,64,$FFFFAA)
var HDSK&=CREATE("text",HMYWND&,"",,,$FFFF,$FFFF)
!!!!!
var HSTATBAR&=CREATE("statusWindow",HMYWND&,"Bereit.")
USERMESSAGES $0010,$0014
MYWND.RESIZING()
call(__cf1&,HMYWND&,-12,call(__cf2&,,32512))
SUBCLASS HMYWND&,1
call(__cf3&,HMYWND&,55100,100,)
call(__cf3&,HMYWND&,55101,500,)
WHILE 1
WAITINPUT
SELECT %UMESSAGE
CASEOF $0010
SELECT %MWND
CASEOF HMYWND&
BREAK
ENDSELECT
ENDSELECT
ENDWHILE
call(__cf4&,HMYWND&,55100)
call(__cf4&,HMYWND&,55101)
__xpse__endofprogram__
proc SUBCLASSPROC
SELECT SWND
CASEOF HMYWND&
SELECT SMESSAGE
CASEOF 532,$0005
MYWND.RESIZING()
CASEOF $0113
SELECT SWPARAM
CASEOF 55100
DEMO(1)
CASEOF 55101
DEMO(2)
ENDSELECT
ENDSELECT
ENDSELECT
endproc
proc MYWND.RESIZING
SETWINDOWPOS HSTATBAR&=0,0 - 0,0
DEMO(1)
DEMO(2)
endproc
proc DEMO
PARAMETERS MODE&
SELECT MODE&
CASEOF 1
STARTPAINT HMYWND&
USEPEN 0,,RND($FFFFFF)
!!!!!
LINE 10,10 - 200,43
ENDPAINT
CASEOF 2
STARTPAINT HMYWND&
TEXTCOLOR RND($FFFFFF),call(__cf5&,15)
DRAWTEXT 10,10,&GETTICKCOUNT
ENDPAINT
ENDSELECT
ENDPROC
__xpse__endofprogram__
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.08.2008 ▲ |
| |
| | | Ähä, el neuste XPSE (aber hierbei auch ya una XPSE el deutlich älter ser kann) son aber folgenden Code KompilierenMarcaSeparación
proc __xpse__endofprogram__
PARAMETERS exitcode&
REM {{SOMEEXTRAENDCOMMAND}}
case %pcount=1 : end exitcode&
end
endproc
DECLARE __cf1&,__cf2&,__cf3&,__cf4&,__cf5&
Def __cf1(2) !"KERNEL32","GetProcAddress"
Def __cf2(1) !"KERNEL32","GetModuleHandleA"
__cf1&=__cf1(__cf2("user32.dll"),"SetClassLongA")
__cf2&=__cf1(__cf2("user32.dll"),"LoadCursorA")
__cf3&=__cf1(__cf2("user32.dll"),"SetTimer")
__cf4&=__cf1(__cf2("user32.dll"),"KillTimer")
__cf5&=__cf1(__cf2("user32.dll"),"GetSysColor")
WINDOWSTYLE 80 | 512 | 1024
WINDOW %MAXX,%MAXY - 0,0
SHOWWINDOW(%HWND,0)
WINDOWSTYLE 1 | 2 | 4 | 8 | 16 | 512
!!!!!
var HMYWND&=(CREATE("WINDOW",(0),"Zuckertest 3.0",(100),(100),(200),(350)))
var HPIC&=CREATE("hNewPic",64,64,$FFFFAA)
var HDSK&=CREATE("text",HMYWND&,"",0,0,$FFFF,$FFFF)
!!!!!
var HSTATBAR&=CREATE("statusWindow",HMYWND&,"Bereit.")
USERMESSAGES $0010,$0014
MYWND.RESIZING(a class=s2>)
...
Im Moment tippe Todavía darauf el Usted vlt. una doch ya en el Monate gekommenen XPSE benutzt!?? |
| | | | |
| | | | - Página 2 - |
| | Jörg Sellmeyer | Im Moment bekomme Yo el a sehen, si yo XPSE starte:
Gestern runtergeladen.
[offtopic]Das Feature con el Dateibrowser, si yo en el Feld "Datei a Contribución anhängen" klicke, es sí bastante nett. Jetzt kann Yo aber nix mehr por Tasttatur oder Strg + V eingeben. [/offtopic] |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.08.2008 ▲ |
| |
| | | Der Diálogo es auch normal - kommt en cada (primero fremden) Expediente si el Windows-Dateisystem el Expediente no como "eigene" erkennt - ha con xpse incluso aber nichts a tun. El XPSE-Versión bekommst Usted heraus si XPSE simplemente veces con Programa, o CMD startest.
[offtopic] Jörg SellmeyerDas Feature con el Dateibrowser, si yo en el Feld "Datei a Contribución anhängen" klicke, es sí bastante nett. Jetzt kann Yo aber nix mehr por Tasttatur oder Strg + V eingeben. Es no meiner Erfindungen pero una des FireFox - como Yo no Einfluss en él. FireFox "tut ahora so" en lo Angriffen - como z.B. unerwünschtes Subir por "scripts" - schwieriger a hacer. Yo find auch schade el así z.B. una Strg+V sólo todavía va encima "Durchsuchen" -> Strg+V -> {enter} [/offtopic] |
| | | | |
| | Jörg Sellmeyer | Wenn XProfan que aquí sabe: var HMYWND&=(CREATE("WINDOW",(0),"Zuckertest 3.0",(100),(100),(200),(350))) ,entonces el en cada Fall a me vorbeigegangen. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.08.2008 ▲ |
| |
| | | NULL como Parent-Handle ha imho nichts con XProfan a tun, y natürlich blanco Windows genau Yo así mi y reagiert auch korrekt indem lo el Ventana en 0 (root) erstellt. Was Spricht gegen NULL como Fensterparent? |
| | | | |
| | Jörg Sellmeyer | Ah, si el así es. Mi XPSE-Versión war tatsächlich algo veraltet. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.08.2008 ▲ |
| |
| | | Besonders en XPSE kann Yo sólo siempre otra vez anmerken el wirklich kein Actualización übergangen voluntad debería... |
| | | | |
| | Stefan M. Caillet | Hola si, si Si es usted el ahora todavía así hinbekommst, dass lo auch ausserhalb des waitinputs se ejecuta, hast du el Ersatz para el MSX-Interval Inc. Gruss Stefan |
| | | Ich habe grosses Glück, weil ich Mitmenschen helfen darf. Entwicklungsumgebung: XProfan11 , Win XP Pro 32Bit , Win XP Home ,Win7 HomePremium 64Bit PC: P4/3GHz , 2GB RAM , 1700GB HD Laptop: Intel Core 2 Duo /2,2GHz , 4GB RAM , 500GB HD | 13.11.2008 ▲ |
| |
| | | Schau veces, todavía einfacher como el msx-interval.inc Es el thread-unit [...] , beide conjunto en el settimer-api en.
Im Diferencia sólo a msx-interval.inc Es el thread-unit bestückt con algo Sicherheit y Bedienungsanleitung verteilt encima Hilos, aber estos beiden Dinge puede el Absturzgefahr sólo vermindern.
ProcAddr es momentan para Enumerationsapis vorgesehen. Lo para setTimer utilizarse, y todavía ausserhalb des Waitinput, kann siempre crashen, solange XProfan el (todavía) no explizit handhaben kann.
Schau, incluso Rolands Implementation des SubClassings funktioniert sólo en el WaitInput.
Irgendwann se Roland como ran necesario. |
| | | | |
|
Zum QuelltextTema opciones | 11.560 Views |
ThemeninformationenDieses Thema ha 5 subscriber: |