Español
Fuente/ Codesnippets

Alto Button Erweitert Messagebox Hilo Temporizador Zählen

 
MessageBox Hilo Button Cambio Alto Temporizador Erweitert Zählen

Siehe auch: asyncmsgbox.inc (  [...]  )

IF (29.06.12)
Hihi,

schauma: Descargar
externer Descargar



 {$cleq}
const 	asyncMessageBox.Message=1025
declarar	asyncMessageBox.C&
decimals 0

proc asyncMessageBox

    parámetros wnd&,s$,tit$,mode&
    add asyncMessageBox.C&,1
    var h&=globalAlloc(gPTR,24)
    long h&,0=addr(s$),addr(tit$),mode&,wnd&,create("text",hWnd,"",0,0,0,0),asyncMessageBox.C&
    setWindowLong(long(h&,16),gwl_userdata,setWindowLong(long(h&,16),gwl_wndProc,procaddr(asyncMessageBox.wndProc,4)))
    asyncMessageBox.createThread(h&)

    mientras que long(h&,0)

        sleep 10

    wend

    whileloop 100

    wend

    var msg&=long(h&,16)
    mensajes de los usuarios asyncMessageBox.Message
    globalFree(h&)
    var msgboxWnd&=findWindow("."+str$(hWnd)+"."+str$(asyncMessageBox.C&))
    settext msgboxWnd&,tit$
    volver msgboxWnd&

ENDPROC

nProc asyncMessageBox.createThread

    parámetros h&
    createThread(0,0,procAddr(asyncMessageBox.thread,1),h&,0,0)

ENDPROC

nProc asyncMessageBox.wndProc

    Parámetros wnd&,msg&,wp&,lp&

    if msg&=asyncMessageBox.Message

        sendMessage(hWnd,asyncMessageBox.Message,wnd&,lp&)
        destroyWindow(wnd&)
        volver 0

    endif

    volver callWindowProc(getWindowLong(wnd&,gwl_userData),wnd&,msg&,wp&,lp&)

ENDPROC

nproc asyncMessageBox.thread

    parámetros h&
    var s$=cadena$(long(h&,0),0)
    var tit$=cadena$(long(h&,4),0)
    var mode&=long(h&,8)
    var wnd&=long(h&,12)
    var trd&=long(h&,16)
    long h&,0=0
    sendMessage(trd&,asyncMessageBox.Message,0,messageBox(wnd&,s$,"."+str$(hWnd)+"."+str$(long(h&,20)),mode&))
    volver 0

ENDPROC

cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
settext findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK"),"&Abbrechen"

mientras que 1

    waitinput

wend

end

Oder hiermit zählts hübsch runter y schließt se selbständig:
cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
var btn&=findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK")
var c&=10

mientras que (c&+2) and isWindow(myMsgBoxWnd&)

    waitinput 1000
    settext btn&,"&Abbrechen ["+str$(c&)+"]"
    sub c&,1

wend

caso isWindow(myMsgBoxWnd&) : sendMessage(myMsgBoxWnd&,wm_close,0,0)
imprimir "fertsch"

mientras que 1

    waitinput

wend

end



IF (29.06.12)
Und hier veces rein por Externo:
'{$ Cleq}
decimals 0
cls
var myTimer&=external("user32","SetTimer",0,0,100,procAddr(myMessageBoxAPCProc,4))
imprimir messageBox("Text","."+str$(%hWnd)+".¡Hola Welt!",0)
waitinput
end

proc myMessageBoxAPCProc

    parámetros wnd&,msg&,id&,tme&
    var s$="."+str$(%hWnd)+"."
    var msgboxWnd&=findWindow(s$)
    casenot msgboxWnd& : volver
    external("user32","KillTimer",0,myTimer&)
    settext msgboxWnd&,del$(getText$(msgboxWnd&),1,len(s$))
    var btn&=external("user32","FindWindowExA",msgboxWnd&,0,"BUTTON","OK")
    casenot btn& : volver
    setText btn&,"&Abbrechen"

endProc


Damit el así geschrieben aber wiederum 100%ig (en lugar de 99%ig) "absturzsicher" es,
debería algo como Roland nativ einbauen porque una APC en una interpretierte XProfan-
Proc kann siempre abstürzen besonders desto komplexer y größer el Programa es.
 
04.07.2012  
 



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

7.652 Views

Untitledvor 0 min.
ecki29.07.2023
Walter30.12.2022
RudiB.14.04.2022
p.specht21.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

iF (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