Français
Forum

Erledigt: 2 Sachen gleichzeitig ablaufen laisser

 
- page 1 -



Jac
de
Lad
Hm, je sais gar pas, wohin je anfangen soll...

mon Problem ist folgendes: j'ai un Programme, dass près de dem normalen le bout aussi qui ganze Zeit (einmal pro seconde aktualisiert) qui l'heure et den Speicherverbrauch dans qui Statusbar Montrer soll. je habs bisher avec qui Fil.pcu gemacht. mais iF rät en ab, zurecht. Gaaaaanz selten venez es avant, dass beim finissons trop einer Fehlermeldung venez, weil qui benötigte Bereichsvariable plus rapide disposed wird comme qui Fil finissez wird (oui c'est ca dit wird chacun seconde une annonce erzeugt, qui ensuite den Bilschirm füllen).

So, eh bien hat qui iF dit, dass qui PCU überflüssig ist, là es oui dans XProfan 11 Subclassing gibt. et il hat sich aussi alle Mühe gegeben mir cela trop expliquer, mais je habs pas verstanden. c'est pourquoi fois le Frage: Hat quelqu'un peut-être un Beispiel pour un Programme, cela entweder im Waitinput steckt (zum Beispiel un anklickbarer Button) et sur 2 Funktionen irgendwas ausgibt ou bien une autre?

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  
 



 
- page 1 -



Andreas
Miethe


IntervalProc kam trop spät

déjà fertig avec dem Beispiel.

Erklärung en supplément. Es volonté 2 Datein nécessaire, Einmal cela eigentliche Programme, zum anderen cela quoi den Boucle contient.
qui Boucle-Programme muss kompiliert son.
cela Hauptprogramm startet sich simple selber avec Parametern (Boucle-Programme) récente. cela Ganze funktioniert seulement si beide Programme kompiliert sommes !

Ist peut-être encore verbesserungswürdig, funktioniert mais erstmal !

Boucle-Programme ( comme timer.prf Sauver et kompilieren )
KompilierenMarqueSéparation
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
KompilierenMarqueSéparation
#########################################
Fil starten, pausieren laisser, finissons
Andreas Miethe 28.03.2008
#########################################
BEACHTE : starten comme EXE ou bien 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)
Déclarer ProcessHandle&,Processhandle1&
Déclarer ThreadHandle&,Threadhandle1&

Proc CreateThread

    Paramètres Param$
    Déclarer StartupInfo#,CommandString$,ProcessInfo#
    Déclarer Retval&,Processhandle&,ThreadHandle&
    CommandString$ = Par$(0) +   + Param$
    Faible StartupInfo#,StartupInfo
    Claire StartupInfo#
    StartupInfo#.cb& = SizeOf(StartupInfo#)
    Faible ProcessInfo#,ProcessInfo
    Claire ProcessInfo#
    ~CreateProcess(0,Addr(CommandString$),0,0,0,0,0,0,StartupInfo#,ProcessInfo#)
    ProcessHandle& = ProcessInfo#.hProcess&
    ThreadHandle&  = ProcessInfo#.hThread&
    Dispose StartupInfo#
    Dispose ProcessInfo#
    Retour Str$(ProcessHandle&)+,+Str$(ThreadHandle&)

ENDPROC

Proc TerminateThread

    Paramètres ProcessHandle&
    Déclarer ExitCode&
    ~GetExitCodeProcess(Processhandle&,Addr(ExitCode&))
    ~TerminateProcess(Processhandle&,ExitCode&)

ENDPROC

Proc PauseThread

    Paramètres Threadhandle&
    ~SuspendThread(Threadhandle&)

ENDPROC

Proc ResumeThread

    Paramètres Threadhandle&
    ~ResumeThread(Threadhandle&)

ENDPROC

Var Handles$ =
Var Start& = Créer(Button,%hwnd,Start,10,10,80,24)
Var Pause& = Créer(Button,%hwnd,récréation,10,40,80,24)
Var Resume& = Créer(Button,%hwnd,continuer,10,70,80,24)
Var Terminate& = Créer(Button,%hwnd,Ende,10,100,80,24)
Var Empfang& = Créer(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& = Créer(StatusWindow,%hwnd,)
UpdateStatus(Statusbar&)
SubClass StatusBar&,1SubClassing einschalten
~SetTimer(StatusBar&,1,1000,0)Minuteur à qui Statusbar hängen
SubClass %hwnd,1SubClassing einschalten
Utilisateur Messages ~wm_close

WhileNot Ende&

    Waitinput

    Si Clicked(Start&)

        qui Exe startet sich selber encore einmal avec Parametern
        qui paramètre, qui ici erwartet wird ist un un Kompilat ( PRC-Dossier )
        Handles$ = CreateThread(Minuteur.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

    Si %Umessage = ~wm_close

        si TerminateThread() pas chez Programmende aufgerufen wird,
        fonctionne cela 2.Programme plus !
        TerminateThread(ProcessHandle1&)
        Ende& = 1

    Endif

Endwhile

SubClass StatusBar&,0
SubClass %hwnd,0
end

Proc UpdateStatus

    Paramètres Statusbar&
    Déclarer MemStatus#
    Faible Memstatus#,MEMORYSTATUS
    MemStatus#.dwLength& = SizeOf(MemStatus#)
    ~GlobalMemoryStatus(MemStatus#)
    SetText Statusbar&,maintenant : +Time $(0)+:+Left $(Time $(1),2)+  -  Speicherverbrauch : +Str$(MemStatus#.dwMemoryLoad&)+%
    Dispose MemStatus#

ENDPROC

SubClassProc

    Si 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  
 



 
- page 2 -



Jac
de
Lad
mais ici volonté 2 Programme nécessaire, c'est 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  
 



mais peut-être ist es grade c'est pourquoi nochmal un Denkanstoß cela un echter 2. Fil pour Votre projet (égal comment verpackt) simple uneffizient ist, la fois indépendant en cela Andreas là une super Prozessverpackung vormacht qui kopiert pour Codesnippets est!
 
28.03.2008  
 




Jac
de
Lad
dire wirs la fois so: je vois cela un. Aaaaaaber, je peux dans mon Prog pas 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
de Uwe Pascal Niemeyer (ou bien wars Sebastian König?) donnais es la fois un Beispiel, dans dem avec Assembler une montre dans qui Statusbar gesteuert wird.
je habs maintenant pas prêt, mais peut-être peux Du oui la fois sur seiner HP chercher.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.03.2008  
 




Frank
Abbing

de Uwe Pascal Niemeyer (ou bien wars Sebastian König?) donnais es la fois un Beispiel, dans dem avec Assembler une montre dans qui Statusbar gesteuert wird.
je habs maintenant pas prêt, mais peut-être peux Du oui la fois sur seiner HP chercher.


là wird per Assembler un fil gestartet. y peux mais ne...aucune Profancode ablaufen. Jac, quelque chose comme ist avec XPIA très simple possible.
 
29.03.2008  
 




Jac
de
Lad
Hm...je seh ici nich plus par...je glaub je lasses, is trop compliqué seulement pour ne montre et 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, justement cet Beispiel Permanente montre mais est chez XPIA dabei...
KompilierenMarqueSéparation

1.029 kB
Hochgeladen:29.03.2008
Downloadcounter76
Download
 
29.03.2008  
 




Frank
Abbing
cela gleiche dans reinem Profan, seulement avec TimerProc anstelle eines eigenen Threads:
KompilierenMarqueSéparation
 
30.03.2008  
 




Jac
de
Lad
oui c'est ca quelque chose comme hab je 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
oui c'est ca quelque chose comme hab je gesucht.


oui c'est ca quelque chose comme wird Dir sûrement viel Freude apporter!
 
30.03.2008  
 



Jac de Lad, Beitrag=39020, Zeitpunkt=27.03.2008
Hm, je sais gar pas, wohin je anfangen soll...

...

c'est pourquoi fois le Frage: Hat quelqu'un peut-être un Beispiel pour un Programme, cela entweder im Waitinput steckt (zum Beispiel un anklickbarer Button) et sur 2 Funktionen irgendwas ausgibt ou bien une autre?

Jac

KompilierenMarqueSéparation

347 kB
Hochgeladen:28.10.2009
Downloadcounter23
Download
 
26.10.2009  
 




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

2.771 Views

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

Themeninformationen



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