Español
Fuente/ Codesnippets

Sichere Subclassproc Hilos Temporizador

 
- 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

458 kB
Hochgeladen:30.08.2008
Ladeanzahl163
Descargar
 
30.08.2008  
 



 
- 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)
 
31.08.2008  
 



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




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!??
 
31.08.2008  
 



 
- 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]

30 kB
Hochgeladen:31.08.2008
Ladeanzahl225
Descargar
 
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 Sellmeyer
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.


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]
 
31.08.2008  
 




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?
 
31.08.2008  
 




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




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




Zum Quelltext


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

11.532 Views

Untitledvor 0 min.
Walter30.12.2022
RudiB.16.02.2022
Tango06.08.2021
Jörg Sellmeyer16.06.2020
Más...

Themeninformationen



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