Español
Foro

Hecho: 2 Sachen gleichzeitig ablaufen dejar

 
- Página 1 -



Jac
de
Lad
Hm, Yo weiß nada, wo Yo anfangen se...

Mein Problema es folgendes: Yo habe una Programa, dass neben el normalen Ablauf auch el todo Tiempo (una vez pro Sekunde aktualisiert) el Uhrzeit y el Speicherverbrauch en el Statusbar Mostrar se. Yo habs bisher con el Hilo.pcu gemacht. Aber IF rät su de, zurecht. Gaaaaanz selten kommt lo antes, dass beim Beenden a uno Fehlermeldung kommt, porque el benötigte Bereichsvariable más rápido disposed se como el Hilo termina (genau dijo se jede Sekunde una Meldung producido, el entonces el Bilschirm füllen).

So, nun ha el IF dijo, dass el PCU überflüssig es, como lo sí en XProfan 11 Subclassing son. Und él ha se auch todos Mühe gegeben me a erklären, pero yo habs no verstanden. Deshalb veces el Cuestión: Sombrero alguien tal vez una Ejemplo para una Programa, el entweder en el Waitinput steckt (para Ejemplo una anklickbarer Button) y encima 2 Características algo ausgibt oder una otro?

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
27.03.2008  
 



 
- Página 1 -



Andreas
Miethe


IntervalProc kam a spät

Schon fertig con el Ejemplo.

Erklärung dazu. Lo voluntad 2 Datein benötigt, Einmal el eigentliche Programa, para otro el qué el Loop enthält.
Der Loop-Programa muss kompiliert ser.
Das Hauptprogramm startet se simplemente selber con Parametern (Loop-Programa) neu. Das Ganze funktioniert sólo si beide Programas kompiliert son !

Ist tal vez todavía verbesserungswürdig, funktioniert aber primero !

Loop-Programa ( como timer.prf speichern y kompilieren )
KompilierenMarcaSeparación
Als Timer.prf speichern und kompilieren !
 $H windows.ph

If %parCount > 0

    Declare WND&
    Var X& = 0
    WND& = Val(Par$(2))

    whileloop 0,1000000

        If X& = 0

            UseCursor 0
            X& = 1

        Endif

        ~InvalidateRect(wnd&,0,0)
        SetText Wnd&,Str$(&Loop)
        Sleep 10

    endwhile

Endif


Hauptprogramm
KompilierenMarcaSeparación
#########################################
Hilo starten, pausieren dejar, final
Andreas Miethe 28.03.2008
#########################################
BEACHTE : starten como EXE oder STRG+F8
#########################################
 $IFDEF Compiler
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
Struct StartupInfo = ~STARTUPINFO
Struct ProcessInfo = ~PROCESS_INFORMATION
Struct MEMORYSTATUS = ~MEMORYSTATUS
Var Ende& = 0
cls ~GetSysColor(~COLOR_BTNFACE)
Declarar ProcessHandle&,Processhandle1&
Declarar ThreadHandle&,Threadhandle1&

Proc CreateThread

    Parámetros Param$
    Declarar StartupInfo#,CommandString$,ProcessInfo#
    Declarar Retval&,Processhandle&,ThreadHandle&
    CommandString$ = Par$(0) +   + Param$
    Dim StartupInfo#,StartupInfo
    Claro StartupInfo#
    StartupInfo#.cb& = SizeOf(StartupInfo#)
    Dim ProcessInfo#,ProcessInfo
    Claro ProcessInfo#
    ~CreateProcess(0,Addr(CommandString$),0,0,0,0,0,0,StartupInfo#,ProcessInfo#)
    ProcessHandle& = ProcessInfo#.hProcess&
    ThreadHandle&  = ProcessInfo#.hThread&
    Disponer StartupInfo#
    Disponer ProcessInfo#
    Volver Str$(ProcessHandle&)+,+Str$(ThreadHandle&)

ENDPROC

Proc TerminateThread

    Parámetros ProcessHandle&
    Declarar ExitCode&
    ~GetExitCodeProcess(Processhandle&,Addr(ExitCode&))
    ~TerminateProcess(Processhandle&,ExitCode&)

ENDPROC

Proc PauseThread

    Parámetros Threadhandle&
    ~SuspendThread(Threadhandle&)

ENDPROC

Proc ResumeThread

    Parámetros Threadhandle&
    ~ResumeThread(Threadhandle&)

ENDPROC

Var Handles$ =
Var Start& = Crear(Button,%hwnd,Start,10,10,80,24)
Var Pause& = Crear(Button,%hwnd,Pause,10,40,80,24)
Var Resume& = Crear(Button,%hwnd,Fortsetzen,10,70,80,24)
Var Terminate& = Crear(Button,%hwnd,Ende,10,100,80,24)
Var Empfang& = Crear(TEXT,%hwnd,,10,130,80,24)
SendMessage(Start&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Pause&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Resume&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Terminate&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Empfang&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
EnableWindow Pause&,0
EnableWindow Resume&,0
EnableWindow Terminate&,0
Var Statusbar& = Crear(StatusWindow,%hwnd,)
UpdateStatus(Statusbar&)
SubClass StatusBar&,1SubClassing einschalten
~SetTimer(StatusBar&,1,1000,0)Temporizador a el Statusbar hängen
SubClass %hwnd,1SubClassing einschalten
Mensajes del usuario ~wm_close

Sinestar encargado Ende&

    Waitinput

    If Clicked(Start&)

        El Exe startet se selber todavía una vez con Parametern
        el Parámetro, el hier esperado se es una una Kompilat ( PRC-Expediente )
        Handles$ = CreateThread(Temporizador.prc +str$(Empfang&))
        ProcessHandle1& = Val(Substr$(Handles$,1,,))
        ThreadHandle1& = Val(Substr$(Handles$,2,,))
        EnableWindow Pause&,1
        EnableWindow Terminate&,1
        EnableWindow Start&,0

    Elseif Clicked(Pause&)

        PauseThread(ThreadHandle1&)
        EnableWindow Pause&,0
        EnableWindow Resume&,1

    ElseIf Clicked(Resume&)

        ResumeThread(ThreadHandle1&)
        EnableWindow Pause&,1
        EnableWindow Resume&,0

    ElseIf Clicked(Terminate&)

        EnableWindow Pause&,0
        EnableWindow Resume&,0
        EnableWindow Terminate&,0
        EnableWindow Start&,1
        TerminateThread(ProcessHandle1&)

    Endif

    If %Umessage = ~wm_close

        si TerminateThread() no en Programmende aufgerufen se,
        se ejecuta el 2.Programa más !
        TerminateThread(ProcessHandle1&)
        Ende& = 1

    Endif

EndWhile

SubClass StatusBar&,0
SubClass %hwnd,0
end

Proc UpdateStatus

    Parámetros Statusbar&
    Declarar MemStatus#
    Dim Memstatus#,MEMORYSTATUS
    MemStatus#.dwLength& = SizeOf(MemStatus#)
    ~GlobalMemoryStatus(MemStatus#)
    SetText Statusbar&,Jetzt : +Time$(0)+:+Left$(Time$(1),2)+  -  Speicherverbrauch : +Str$(MemStatus#.dwMemoryLoad&)+%
    Disponer MemStatus#

ENDPROC

SubClassProc

    If SubClassMessage(%hwnd, ~WM_SIZE)

        SetWindowPos Statusbar& = 0,0-0,0

    ElseIf SubClassMessage(Statusbar&, ~WM_TIMER)

        UpdateStatus(&sWnd)

    Endif

ENDPROC

 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
28.03.2008  
 



 
- Página 2 -



Jac
de
Lad
Aber hier voluntad 2 Programas benötigt, el es Mist.
 
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
28.03.2008  
 



Aber tal vez es grade deshalb otra vez una Denkanstoß el una echter 2. Hilo para Su Vorhaben (egal como verpackt) simplemente uneffizient es, veces unabhängig su el Andreas como una super Prozessverpackung vormacht el kopiert después de Codesnippets gehört!
 
28.03.2008  
 




Jac
de
Lad
Sagen wirs veces así: Yo sehe el una. Aaaaaaber, Yo kann en mein Prog no 500 SetStatus() einbauen.
 
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
28.03.2008  
 




Jörg
Sellmeyer
Von Uwe Pascal Niemeyer (oder wars Sebastian König?) gab lo veces una Ejemplo, en el con Ensamblador una Uhr en el Statusbar gesteuert se.
Yo habs ahora no parat, aber tal vez kannst Usted sí veces en su HP suchen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.03.2008  
 




Frank
Abbing

Von Uwe Pascal Niemeyer (oder wars Sebastian König?) gab lo veces una Ejemplo, en el con Ensamblador una Uhr en el Statusbar gesteuert se.
Yo habs ahora no parat, aber tal vez kannst Usted sí veces en su HP suchen.


Dort se por Ensamblador un hilo comenzó. Darin kann aber kein Profancode ablaufen. Jac, algo como es con XPIA muy simplemente posible.
 
29.03.2008  
 




Jac
de
Lad
Hm...Yo seh hier nich mehr por...Yo glaub Yo lasses, is a kompliziert sólo para ne Uhr y ne Speicheranzeige...
 
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
29.03.2008  
 




Frank
Abbing
Hm, gerade dieses Ejemplo Permanente Uhr es doch en XPIA esta...
KompilierenMarcaSeparación

1.029 kB
Hochgeladen:29.03.2008
Ladeanzahl74
Descargar
 
29.03.2008  
 




Frank
Abbing
Das gleiche en reinem Profano, sólo TimerProc anstelle uno eigenen Hilos:
KompilierenMarcaSeparación
 
30.03.2008  
 




Jac
de
Lad
Exactamente algo como tener Yo gesucht.
 
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
30.03.2008  
 



Jac
Exactamente algo como tener Yo gesucht.


Exactamente algo como se Usted sicher viel Freude bringen!
 
30.03.2008  
 



Jac de Lad, Beitrag=39020, Zeitpunkt=27.03.2008
Hm, Yo weiß nada, wo Yo anfangen se...

...

Deshalb veces el Cuestión: Sombrero alguien tal vez una Ejemplo para una Programa, el entweder en el Waitinput steckt (para Ejemplo una anklickbarer Button) y encima 2 Características algo ausgibt oder una otro?

Jac

KompilierenMarcaSeparación

347 kB
Hochgeladen:28.10.2009
Ladeanzahl21
Descargar
 
26.10.2009  
 




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

2.226 Views

Untitledvor 0 min.
Tango14.07.2017
Ernst02.03.2015
iF19.05.2013
Juergen Baier15.02.2012

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