Dann nimmste Konstanten als #Proc7_Button_Okay oder ähnlich.
Für alle Lücken in Deiner Nummerierung wird Speicher verbraucht!
Deine 1+ min dauernde Berechnung, sowie die Fortschrittanzeige sollte besser in ein TimerCallback, einfach mal suchen.
Warum wird kein Button angezeigt?
- 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
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.

- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Da gibt es zwei Möglichkeiten, wenn es viele kleine Berechnungen sind die für sich schnell sind aber in der Masse lange brauchen kannst du immer alle 1000 Schritte oder so eine Eventabfrage machen und die ProgressBar updaten.Alantope hat geschrieben:Hey, Super. Ich komme der Lösung schon näher.
Mein Problem ist, dass ich eine komplizierte Berechnung durchführen möchte, die unter Umständen mehrere Minuten dauern kann. Ich möchte dem User aber die Möglichkeit geben, dass er - wenn es zu lange dauert - den Prozess auch Abbrechen kann. Daher der Button. Daher nutzt mir das Programm von Thomas schon ein wenig mehr. Ich sehe aber nicht, wie sich der Fortschrittsbalken weiterbewegt.
Andernfalls musst du entweder das Fenster (komplett) oder die Berechnung in einen Thread auslagern, dann kannst du das Fenster wie gewohnt bedienen...
(\/) (°,,,°) (\/)
Vielleicht habt Ihr Recht und ich sollte es einfach mal versuchen. Aber so richtig verstehe ich den Vorteil einer Konstanten nicht.Dafuer bieten sich Konstanten doch gerade zu an.
Bzgl. meiner Schleife von oben habe ich - so glaube ich zumindest - jetzt die Lösung gefunden, wenn ich Wait WindowEvent durch WindowEvent ersetze.
Jetzt aber noch ein wahrscheinlich ganz dumme Frage: Wie erhalte ich den Button auch in der Hintergrundfarbe? Mein Farbbefehl in dem Beispiel bewirkt nämlich rein gar nichts.
- 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
Sind erstens einfacher zu merken, zweitens wird mit ButtonGadget(705, ...)Alantope hat geschrieben:Vielleicht habt Ihr Recht und ich sollte es einfach mal versuchen. Aber so richtig verstehe ich den Vorteil einer Konstanten nicht.Dafuer bieten sich Konstanten doch gerade zu an.
Speicher für 706 Buttons verbraten.
Nein, durch WaitWindowEvent(timeout), ist besser als WindowEvent() mit Delay und ohne Delay wird die CPU verbraten, da wird Dir jeder Dein Programm an den Kopf hauenAlantope hat geschrieben: Bzgl. meiner Schleife von oben habe ich - so glaube ich zumindest - jetzt die Lösung gefunden, wenn ich Wait WindowEvent durch WindowEvent ersetze.
Buttons unterstützen keine Farbe. Also selber basteln oder besser seinAlantope hat geschrieben: Jetzt aber noch ein wahrscheinlich ganz dumme Frage: Wie erhalte ich den Button auch in der Hintergrundfarbe? Mein Farbbefehl in dem Beispiel bewirkt nämlich rein gar nichts.
lassen, farbige Buttons sind untypisch und häßlich
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
natürlich kannst du im Grunde alles in die selbe schleife packen und mit WindowEvent ohne Wait durchrödeln...
aber wie ts schon sagte, damit brätst du die CPU, sowas macht man nicht.
mit Konstanten sähe der Anfang deines Codes so aus:
... und wie ts auch schon sagte:
Buttons unterstützen keine geänderte Farben. (außer bei der Schrift)
aber wie ts schon sagte, damit brätst du die CPU, sowas macht man nicht.
mit Konstanten sähe der Anfang deines Codes so aus:
Code: Alles auswählen
;Windows
Enumeration
#Window_7
EndEnumeration
; Gadgets
Enumeration
#Win7_Text
#Win7_Progress
#Win7_Button_Cancel
#Win7_Button_Test
EndEnumeration
OpenWindow(#Window_7, #PB_Ignore, 0, 405, 160, "Test", #PB_Window_SystemMenu | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#Window_7, Hintergrundfarbe)
FontID1 = LoadFont(#PB_Any, "Arial", 12)
TextGadget(#Win7_Text, 40, 20, 240, 20, "Bitte warten")
SetGadgetFont(#Win7_Text, FontID1)
SetGadgetColor(#Win7_Text, #PB_Gadget_BackColor, Hintergrundfarbe)
ProgressBarGadget(#Win7_Progress, 40, 60, 330, 30, 0, 100, #PB_ProgressBar_Smooth)
SetGadgetColor(#Win7_Progress, #PB_Gadget_BackColor, Hintergrundfarbe)
ButtonGadget(#Win7_Button_Cancel, 260, 110, 110, 30, "Abbrechen")
ButtonGadget(#Win7_Button_Test, 40, 110, 110, 30, "Test")
SetGadgetFont(#Win7_Button_Cancel, FontID1)
Buttons unterstützen keine geänderte Farben. (außer bei der Schrift)