purebasic Marquee idle Progress Bar ?
purebasic Marquee idle Progress Bar ?
Aus visual basic .net kenne ich den progress bar MARQUEE
genau so einen brauche ich.
für purebasic such ich mir mal wieder einen Wolf.
gibt es das hier nicht?
Ich brauch einen den ich wärend eines Packvorganges anzeigen lassen kann.
finde leider nichts. F1 ? nix
genau so einen brauche ich.
für purebasic such ich mir mal wieder einen Wolf.
gibt es das hier nicht?
Ich brauch einen den ich wärend eines Packvorganges anzeigen lassen kann.
finde leider nichts. F1 ? nix
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Re: purebasic Marquee idle Progress Bar ?
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ProgressBarGadget(1,10,10,480,20,0,100,8)
SendMessage_(GadgetID(1),#WM_USER+10,1,50)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ohne WinApi Library von RS Basic hätte ich das nie gefunden.
gibts das auch standard mäßig in PB?
Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Re: purebasic Marquee idle Progress Bar ?
Ihm hier:
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ProgressBarGadget(1,10,10,480,20,0,100,8)
SetGadgetState(1, #PB_ProgressBar_Unknown)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Re: purebasic Marquee idle Progress Bar ?
udg hat geschrieben: [...]
für purebasic such ich mir mal wieder einen Wolf.
gibt es das hier nicht?
[...]
finde leider nichts. F1 ? nix
Warum gleich so aggressiv?
Kann man nicht freundlich fragen?
... und am Ende zeigt sich
es steht in der Hilfe unter ProgressBarGadget() (da wo man es auch vermuten würde)
Code: Alles auswählen
Die folgenden Befehle können zum Zugriff auf das Gadget verwendet werden:
- SetGadgetState(): ändert den Wert der Fortschrittsanzeige. Ein Wert von #PB_ProgressBar_Unknown kann verwendet werden, um anzuzeigen, dass der Fortschritt nicht bekannt ist.

PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller


Re: purebasic Marquee idle Progress Bar ?
Damals nicht, aber inzwischen schon: #PB_ProgressBar_Unknownudg hat geschrieben:gibts das auch standard mäßig in PB?
@NicknameFJ
Er kam mir nicht so aggressiv rüber. Er hat nur gesagt, dass er lange gebraucht hat, um das zu finden.
Wenn er negative Smileys oder mehrfache Satzzeichen verwendet hätte, könnte ich das als Ausrasten/Meckern verstehen, aber ich finde seinen Text eher neutral.

Re: purebasic Marquee idle Progress Bar ?
Zum Thema "agressiv":
Wenn man den 4. Parameter der SendMessage() verringert,
z.B. auf 10, wird die Anzeige auch "agressiver".
Wenn man den 4. Parameter der SendMessage() verringert,
z.B. auf 10, wird die Anzeige auch "agressiver".

Code: Alles auswählen
If OpenWindow(0, 0, 0, 500, 250, "Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ProgressBarGadget(1, 10, 10, 480, 20, 0, 100, 8)
SendMessage_(GadgetID(1), #WM_USER+10, 2, 10)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Re: purebasic Marquee idle Progress Bar ?
Dann habe ich es wohl in den falschen Hals gekriegt wenn es sonst niemand so empfunden hat.RSBasic hat geschrieben: Er kam mir nicht so aggressiv rüber. Er hat nur gesagt, dass er lange gebraucht hat, um das zu finden.
Wenn er negative Smileys oder mehrfache Satzzeichen verwendet hätte, könnte ich das als Ausrasten/Meckern verstehen, aber ich finde seinen Text eher neutral.
Ich habe aber immerhin noch sachlich geholfen

PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller


Re: purebasic Marquee idle Progress Bar ?
Ne ne, das war nicht aggressiv gemeint. (steht mir nicht zu)
Nur für mich wieder typisch, dass ich mir einen Wolf suche und nix finde und am Ende ist es wieder ganz einfach.
F1 und Progressbar habe ich natürlich bemüht, ich bin einfach davon ausgegangen, dass es eine Konstante gibt die sich da zB nennt:
wusste ich nicht und hätte auch nicht gewusst das ich diese Konstante suchen muss, da ich nur Marquee kenne.
-aber in PBv5.30 noch nciht vorhanden
Das ich erst wieder mit SetGadgetState arbeiten muss, habe ich ausgeblendet, nahm ich an, es gibt da was standardmäßiges
Ein Frage zum eigentlichen Vorhaben:
Ich muss rar.exe per Command aufrufen. Dies öffnet die CMD Konsole. genau in diesem Moment werden alle PureBasic Vorgänge angehalten da das CMD Fenster Global sich in den Vordergrund dängt.
Trotz Code für meinen Idle Marquee:
bleibt die Bewegung so lang stehen, bis das CMD Fenster wieder geschlossen ist, weil der Packvorgang beendet wurde, erst dann funktioniert Mein Marquee wieder ordnungsgemäß.
Da ich bestimmte Rar Parameter aufrufen muss, muss ich folgendes Importieren:
die Kommando Parameter:
Mein Marquee Idle Code der eigtl. während des Packens angezeigt werden soll:
Kann man da etwas erzwingen, dass der Progressbar trotzdem weiter funktioniert?
Grüße
Nur für mich wieder typisch, dass ich mir einen Wolf suche und nix finde und am Ende ist es wieder ganz einfach.
F1 und Progressbar habe ich natürlich bemüht, ich bin einfach davon ausgegangen, dass es eine Konstante gibt die sich da zB nennt:
Code: Alles auswählen
#PB_ProgressBarMarquee
AhaRSBasic hat geschrieben:Damals nicht, aber inzwischen schon: #PB_ProgressBar_Unknownudg hat geschrieben:gibts das auch standard mäßig in PB?

wusste ich nicht und hätte auch nicht gewusst das ich diese Konstante suchen muss, da ich nur Marquee kenne.
-aber in PBv5.30 noch nciht vorhanden

Das ich erst wieder mit SetGadgetState arbeiten muss, habe ich ausgeblendet, nahm ich an, es gibt da was standardmäßiges

Ein Frage zum eigentlichen Vorhaben:
Ich muss rar.exe per Command aufrufen. Dies öffnet die CMD Konsole. genau in diesem Moment werden alle PureBasic Vorgänge angehalten da das CMD Fenster Global sich in den Vordergrund dängt.
Trotz Code für meinen Idle Marquee:
Code: Alles auswählen
SetActiveWindow(#IdleWnd)
Da ich bestimmte Rar Parameter aufrufen muss, muss ich folgendes Importieren:
Code: Alles auswählen
ImportC "msvcrt.lib"
system(cmd.p-ascii)
EndImport
Code: Alles auswählen
Procedure Packer(Name.s)
If GetGadgetState(#Rar_100_MB)=#PB_Checkbox_Checked
Eingabetext1$ = GetGadgetText(#Rar_100_MB_TXT) ; Eingabe auslesen
ElseIf GetGadgetState(#Rar_250_MB)=#PB_Checkbox_Checked
Eingabetext1$ = GetGadgetText(#Rar_250_MB_TXT) ; Eingabe auslesen
ElseIf GetGadgetState(#Rar_500_MB)=#PB_Checkbox_Checked
Eingabetext1$ = GetGadgetText(#Rar_500_MB_TXT) ; Eingabe auslesen
ElseIf GetGadgetState(#Rar_1000_MB)=#PB_Checkbox_Checked
Eingabetext1$ = GetGadgetText(#Rar_1000_MB_TXT) ; Eingabe auslesen
ElseIf GetGadgetState(#RarFile_Custom_ChkBox)=#PB_Checkbox_Checked
Eingabetext1$ = GetGadgetText(#RarFile_Custom) ; Eingabe auslesen
EndIf
Protected Pfad.s = GetPathPart(ProgramFilename()) + Name
Protected Parameter.s = GetPathPart(ProgramFilename()) + "Rar.exe a -m1 -ma5 -md32m -r -t -df -v" + Eingabetext1$ + "m " + #DQUOTE$ + Name + ".rar" + #DQUOTE$
Protected ID
SetCurrentDirectory(Pfad + "\")
If OpenConsole()
system("color 3")
system(Parameter)
;system("pause")
CloseConsole()
SetGadgetText(#Btn_Erstellen,"rar Archive erfolgreich erstellt")
EndIf
SetCurrentDirectory(GetPathPart(ProgramFilename()))
EndProcedure
Code: Alles auswählen
;Procedure IdlePacking()
OpenWindow(#IdleWnd, 502, 158, 300, 100, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered|#WS_VISIBLE)
; FENSTER FARBE
SetWindowColor(#IdleWnd, RGB(68, 87, 112))
; SET WINDOW ALWAYS ON TOP
SetWindowPos_(WindowID(#IdleWnd),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
SetActiveWindow(#IdleWnd)
;////////////////////////////////////
; CONTAINER IDLE
;////////////////////////////////////
ContainerGadget(#Idle_Container, 1, 1, 298, 98, #PB_Container_BorderLess)
SetGadgetColor(#Idle_Container, #PB_Gadget_BackColor, RGB(109, 145, 160))
ProgressBarGadget(#ProgressBar,10,42,277,16,0,100,8)
SendMessage_(GadgetID(#ProgressBar),#WM_USER+10,1,20)
CloseGadgetList()
;EndProcedure
Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Re: purebasic Marquee idle Progress Bar ?
Du benutzt bestimmt RunProgram() mit #PB_Program_Wait oder While ProgramRunning(Program) mit #PB_Program_Open | #PB_Program_Read oder?
Wenn ja, dann liegt es einfach daran, dass dein Fenster einfach gestoppt wird und so lange gewartet wird, bis die ausgeführte Anwendung beendet wurde.
Da die Anwendung gestoppt wird, können auch keine Events empfangen und ausgewertet werden. Du bekommst sogar von Windows die Meldung "Anwendung reagiert nicht mehr.".
Um das Problem zu beheben, kannst du z.B. in einem Thread unabhängig die Anwendung starten, so dass die Eventschleife deines Fensters trotzdem weiterläuft.
Wenn ja, dann liegt es einfach daran, dass dein Fenster einfach gestoppt wird und so lange gewartet wird, bis die ausgeführte Anwendung beendet wurde.
Da die Anwendung gestoppt wird, können auch keine Events empfangen und ausgewertet werden. Du bekommst sogar von Windows die Meldung "Anwendung reagiert nicht mehr.".
Um das Problem zu beheben, kannst du z.B. in einem Thread unabhängig die Anwendung starten, so dass die Eventschleife deines Fensters trotzdem weiterläuft.
Re: purebasic Marquee idle Progress Bar ?
Code: Alles auswählen
Procedure CreateDirectoryEx(DirPath.s) ; TS-Soft
RunProgram(GetEnvironmentVariable("COMSPEC"), "/c mkdir " + #DQUOTE$ + DirPath + #DQUOTE$, "", #PB_Program_Wait | #PB_Program_Hide)
If FileSize(DirPath) = -2
ProcedureReturn #True
EndIf
EndProcedure
Ich glaube ich muss mal was fertig machen und komplett posten. Ist etwas kompliziert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS