100% Cpu- Auslastung
-
- Beiträge: 9
- Registriert: 31.08.2009 02:04
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
> Ist es nun besser Select zu nehmen oder If als Abfrage?
Select ist übersichtlicher aber das spielt hier nicht die Rolle (Goto ist böhse meist)
Aber Dein Beispiel ist ohne Änderungen nicht kompilierbar, so das ich mir
nichtmal nen Überblick über den Aufbau der GUI schaffen kann, ohne Zeilen
anzupassen.
Select ist übersichtlicher aber das spielt hier nicht die Rolle (Goto ist böhse meist)
Aber Dein Beispiel ist ohne Änderungen nicht kompilierbar, so das ich mir
nichtmal nen Überblick über den Aufbau der GUI schaffen kann, ohne Zeilen
anzupassen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
nein ist er nicht!Olaf de Viesel hat geschrieben:Na der Code ist so ausführbar...
selbst bei dir kann er das nicht sein, mindestens das unkommentierte (...) muss auch bei dir einen Fehler erzeugen.
schreib außerdem mal bitte deine PureBasic-Version in deine Signatur, anscheinend benutzt du eine Ältere.
Ferner...
hast du dir denn mal den Code von mir angesehen, wie das da gelöst ist?
wenn ich mir schon die Arbeit mache und extra für dich ein Beispiel schreibe,
ist es eigentlich das Minimum an Anstand dass du es zumindest zur Kenntnis nimmst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 9
- Registriert: 31.08.2009 02:04
Okay hier der Komplette Code so wie es bei mir im Programm drinne steht:
(Ist jetzt aber verdammt unübersichtlich weil ich halt sehr viel probiert habe -.-)
so und @Kaeru Gaman: Ich hab deinen Code zur Kenntnis genommen. Und nicht nur das. Ich habe meinen alten Code (siehe oben) jetzt verworfen und fange komplett neu an... Und ich bin wirklich über jede Hilfe dankbar... Es tut mir leid falss das jetzt anders rübergekommen ist.
So jetzt müsste aber alles gehen...
Desweiteren kommt beim Compilieren immer die Meldung, das ich die Veraltete Funktion "CreateGadgetListe()" benutze... weiß aber auch nicht wie ich das beheben kann...
Hab die Version 4.30 Beta 1...
(Ist jetzt aber verdammt unübersichtlich weil ich halt sehr viel probiert habe -.-)
Code: Alles auswählen
;// 1.A
If OpenWindow(0, 200, 200, 400, 200, "Shutdown Control", #PB_Window_TitleBar|#PB_Window_SystemMenu )
;// 2.A
If CreateGadgetList(WindowID(0))
TextGadget (5, 10, 28, 200, 15,"Shutdown Status:")
TextGadget (6, 10, 40, 200, 8,"--------------------------------")
ButtonGadget (1, 260, 25, 120 , 24, "Neuer Countdown")
ButtonGadget (2, 260, 120, 120 , 24, "Info")
ButtonGadget (9, 260, 160, 120 , 24, "Exit")
ButtonGadget (3, 20, 160, 80 , 24, "Start")
ButtonGadget (4, 120, 160, 80 , 24, "Stop")
TextGadget (7, 10, 50, 200, 100,"", #PB_Text_Border)
TextGadget (8, 150, 10, 200, 15,"")
;CheckBoxGadget(0, 290, 90, 250, 20, "Neustarten")
OptionGadget (20, 270, 60, 90, 20, "Neustarten")
OptionGadget (21, 270, 80, 90, 20, "Herunterfahren")
SetGadgetState(21, 1)
EndIf
;// 2.E
EndIf
;// 1.E
;// Start Main- Programm
Repeat
;SmartWindowRefresh(0, 0)
EventID = WaitWindowEvent()
;If EventID = 0
; Delay(1)
;EndIf
;Until EventID = #PB_Event_CloseWindow Or EventID = #PB_Event_Gadget
;// 4.A
;
If EventID = #PB_Event_Gadget
GadgetNummer = EventGadget()
;// Exit ;// 5.A
If GadgetNummer = 9
End
EndIf
;// 5.E
;// Info ;// 6.A
If GadgetNummer = 2
MessageRequester("Infos","Programmierer: Olaf de Viesel"+ Chr(10) + " BGP- Studio"+Chr(10)+Chr(10)+" Version: Sep 1.1_09",0)
EndIf
;// 6.E
;// Start ;// 7.A
If GadgetNummer = 3
;// 8.A
If Start.l = 1
Repeat
;EventID3 = #PB_Event_Gadget
;GadgetNummer2 = EventGadget()
StartTime = ElapsedMilliseconds()
Repeat
Time.l = ElapsedMilliseconds()-StartTime
EventID3 = WindowEvent()
GadgetNummer2 = EventGadget()
;SetGadgetText (7, Str(Time)) // DebugInfo
Until Time.l = 1000
Sek.l = Sek.l -1
SetGadgetText (7, " Timer gestartet...(H : M : S)" + Chr(10) + Chr(10) + Chr(10) + " " + Str(Hou.l) + ":" + Str(Min.l) + ":" + (Str(Sek.l)))
;// 9.A
If Sek.l <= 0
Min.l = Min.l - 1
Sek.l = Sek.l + 60
;// 10.A
If Min.l < 0
Min.l = 0
Hou.l = Hou.l - 1
;// 11.A
If Hou.l <> 0
;Hou.l = Hou.l -1
Min.l = Min.l + 59
EndIf
;// 11.E
;// 12.A
If Hou.l <= 0
Hou.l = 0
Min.l = 0
Sek.l = 0
EndIf
;// 12.E
;// 10.E
EndIf
;// 9.E
EndIf
Until Sek.l = 0 Or GadgetNummer2 = 4
;// 8.E
EndIf
;// 13.A
If GadgetNummer2 = 4
SetGadgetText (7, " Timer gestartet...(H : M : S)" + Chr(10) + Chr(10) + Chr(10) + " " + Str(Hou.l) + ":" + Str(Min.l) + ":" + (Str(Sek.l)) + Chr(10) + Chr(10) + "Timer gestoppt! Zum Fortsetzten 'Start' drücken!")
EndIf
;// 13.E
;// Timer beendet
;// 14.A
If Sek.l = 0
State = GetGadgetState(20)
;// 15.A
If State = 1
;RunProgram("C:\Windows\System32\shutdown.exe","-r -t 10 -f","System wird in 10 Sekunden neu gestartet!")
Else
;RunProgram("C:\Windows\System32\shutdown.exe","-s -t 10 -f","System wird in 10 Sekunden Heruntergefahren!")
EndIf
;// 15.E
EndIf
;// 14.E
EndIf
;// 7.E
;// Neuer Countdown
If GadgetNummer = 1
If OpenWindow(1, 200, 200, 230, 200, "Shutdown Control", #PB_Window_TitleBar|#PB_Window_SystemMenu )
If CreateGadgetList(WindowID(1))
TextGadget (10, 10, 30, 200, 15,"Timer:")
TextGadget (11, 10, 40, 200, 10,"--------------------------------")
ButtonGadget (12, 80, 160, 80 , 24, "Speichern")
StringGadget (14, 30, 60, 40, 20, "")
StringGadget (15, 90, 60, 40, 20, "")
StringGadget (16, 150, 60, 40, 20, "")
EndIf
Eingabe:
Repeat
EventID = WindowEvent()
GadgetNummer = EventGadget()
If GadgetNummer = 12
Sekunden$ = GetGadgetText (16)
Sek.l = Val(Sekunden$)
Minuten$ = GetGadgetText (15)
Min.l = Val(Minuten$)
Hour$ = GetGadgetText (14)
Hou.l = Val(Hour$)
If Sek.l < 0
MessageRequester ("ERROR" , "Falsche Eingabe! Überprüfung erforderlich!")
SetGadgetText (16," ")
Fehler = 1
EndIf
If Min.l < 0
Min.l = 0
MessageRequester ("ERROR" , "Falsche Eingabe! Überprüfung erforderlich!")
SetGadgetText (15," ")
Fehler = 1
EndIf
If Hou.l < 0
Hou.l = 0
MessageRequester ("ERROR" , "Falsche Eingabe! Überprüfung erforderlich!")
SetGadgetText (14," ")
Fehler = 1
EndIf
If Fehler = 1
Fehler = 0
Goto Eingabe:
Else
EventID = 1
EndIf
EndIf
If EventID = #PB_Event_CloseWindow
EventID = 1
EndIf
Until EventID = 1
If Sek.l >= 60
Repeat
Min.l = Min.l + 1
Sek.l = Sek.l - 60
Until Sek.l <= 59
EndIf
If Min.l >= 60
Repeat
Hou.l = Hou.l + 1
Min.l = Min.l - 60
Until Min.l <= 59
EndIf
SetGadgetText (7, "Timer initialisiert... " + Chr(10) + "Timer gestellt auf: " + Str(Hou.l) + ":" + Str(Min.l) + ":" + Str(Sek.l))
Start.l = 1
CloseWindow(1)
;
EndIf
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
;EndIf
So jetzt müsste aber alles gehen...
Desweiteren kommt beim Compilieren immer die Meldung, das ich die Veraltete Funktion "CreateGadgetListe()" benutze... weiß aber auch nicht wie ich das beheben kann...
Hab die Version 4.30 Beta 1...
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also, ich bekomma da immer noch die Meldung, dass in den Stringoperationen Klammern zu viel sind.
ok, du hast mehrere (Wait)WindowEvent() Calls drin, das solltest du lassen, damit kannst du teilweise Events verschlucken.
Bau das ganze mal als einzelne Eventschleife, wo du alles drin abwickelst, so ähnlich wie in meinem Beipiel.
ok, du hast mehrere (Wait)WindowEvent() Calls drin, das solltest du lassen, damit kannst du teilweise Events verschlucken.
Bau das ganze mal als einzelne Eventschleife, wo du alles drin abwickelst, so ähnlich wie in meinem Beipiel.
Desweiteren kommt beim Compilieren immer die Meldung, das ich die Veraltete Funktion "CreateGadgetListe()" benutze... weiß aber auch nicht wie ich das beheben kann...
solltest mal updaten, zumindest die Final benutzen, oder besser gleich die 4.31 final.Olaf de Viesel hat geschrieben:Hab die Version 4.30 Beta 1...
Zuletzt geändert von Kaeru Gaman am 07.09.2009 20:30, insgesamt 1-mal geändert.
-
- Beiträge: 9
- Registriert: 31.08.2009 02:04
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
die zusätzlichen Klammern sind zu viel, vielleicht kommt bei dir keine Meldung weil die version älter ist....Str(Hou.l) + ":" + Str(Min.l) + ":" + (Str(Sek.l)))
wenn du noch das Paket aus dem Laden hast, wieso hast du denn ne Beta?
eigentlich müßtest du dann eine 4.0 haben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 9
- Registriert: 31.08.2009 02:04
Übrigens kann ein Delay (~>50) in der Window-Eventschleife auch den Bildaufbau der Gagdets sichtbar verlangsamen (z.B. bei Statusbar oder ContainerGadget mit SetGadgetColor) - nicht nur beim Start des Programmes, sondern auch jedesmal bei Minimize to Maximize. Das selbst bei wenigen Gadgets.
PB 5.x & Win 7 64Bit
-
- Beiträge: 9
- Registriert: 31.08.2009 02:04
Re: 100% Cpu- Auslastung
so habe jetzt die 4.31 final...
und zwar @Kaeru Gaman:
in deinem Code heißt eine Zeile: "If COUNT..." .
kannst du mir bitte erklären wieso das hier geht und was er da genau macht? ^^
weil eig müsste er doch dort überprüfen ob die var irgendeine bedingung erfüllt, oder?
und zwar @Kaeru Gaman:
in deinem Code heißt eine Zeile: "If COUNT..." .
kannst du mir bitte erklären wieso das hier geht und was er da genau macht? ^^
weil eig müsste er doch dort überprüfen ob die var irgendeine bedingung erfüllt, oder?
PureBasic Version 4.31 x86