Progressgadget wie beim Booten
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ich bin anderer meinung als AND
ein Wabgadget zu nehmen, um sowas einfaches zu erzeugen ist ne echte spatzenkanone.
animation in nem Image wär ne bessere lösung.
das kannst du mit verschiedenen frames lösen, also,
indem du den inhalt des image gemäß einer reihe vorhandener images aktualisierst,
oder sogar mit DirectDraw, also indem du direkt auf das Image draufmalst.
guck dir mal die befehle im Abschnitt 2DDrawing an.
[edit]
sorry, hab die letzten 2 posts von euch nicht aufmerksam gelesen....
ein Wabgadget zu nehmen, um sowas einfaches zu erzeugen ist ne echte spatzenkanone.
animation in nem Image wär ne bessere lösung.
das kannst du mit verschiedenen frames lösen, also,
indem du den inhalt des image gemäß einer reihe vorhandener images aktualisierst,
oder sogar mit DirectDraw, also indem du direkt auf das Image draufmalst.
guck dir mal die befehle im Abschnitt 2DDrawing an.
[edit]
sorry, hab die letzten 2 posts von euch nicht aufmerksam gelesen....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Nicht schlimm.
Klar, du kannst jeden der 11.000 Forumsmitglieder fragen, auch mich
Früher oder später wirst du meiner Meinung nach swieso dich mal mit der 2D Library auseinadersetzen müssen. Wie iel du damit zu tun haben willst, ist dann deine Entscheidung.
Ist schon mal gut, dass du Striche malen kannst; dann weißt du schon mal grundlegende Sachen, wie man z. B. Images läd, erstellt oder speichert.
Als nächstes würde ich mir den Befehl anschauen, um Blöcke zu zeichnen. Das schaffst du mit Rect() und Fillarea(). Dann hast du eigentlich schon alles, was du für dein vorhaben brauchst
Klar, du kannst jeden der 11.000 Forumsmitglieder fragen, auch mich

Früher oder später wirst du meiner Meinung nach swieso dich mal mit der 2D Library auseinadersetzen müssen. Wie iel du damit zu tun haben willst, ist dann deine Entscheidung.
Ist schon mal gut, dass du Striche malen kannst; dann weißt du schon mal grundlegende Sachen, wie man z. B. Images läd, erstellt oder speichert.
Als nächstes würde ich mir den Befehl anschauen, um Blöcke zu zeichnen. Das schaffst du mit Rect() und Fillarea(). Dann hast du eigentlich schon alles, was du für dein vorhaben brauchst

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Rect() is ja auch falsch, Box() is richtig...
ich schuster grad was, aber son window is immer ne doowe sache, auf screens bin ich besser...
...wie kann ichn refresh auslösen? bei mir funzt nämlich grad garnix...
[edit]
also, ich müsste irgendwie ein redraw/refresh von nem image auslösen...
soweit hab ichs bis jetzt, aber das image wird halt nich neu gezeichnet...
ich schuster grad was, aber son window is immer ne doowe sache, auf screens bin ich besser...
...wie kann ichn refresh auslösen? bei mir funzt nämlich grad garnix...
[edit]
also, ich müsste irgendwie ein redraw/refresh von nem image auslösen...
Code: Alles auswählen
OpenWindow(0,0,0,200,100,"Progressor",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateImage(0,120,20)
CreateImage(1,120,20)
StripeX = 0
StartDrawing(ImageOutput(1))
Box(0,0,120,20,$FFFFFF)
Box(StripeX,5,60,10,$0000FF)
Box(StripeX-120,5,60,10,$0000FF)
For n=10 To 110 Step 10
Line(n,5,0,10,$FFFFFF)
Next
For n=0 To 4
Line(n,5,0,10,$FFFFFF)
Line(119-n,5,0,10,$FFFFFF)
Next
DrawingMode(4)
Box(2,2,116,16,$000000)
StopDrawing()
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1),0,0)
StopDrawing()
CreateGadgetList(WindowID(0))
ImageGadget(1,20,20,120,20,ImageID(0))
Repeat
EventID = WaitWindowEvent(20)
StripeX + 2
If StripeX >= 120
StripeX = 0
EndIf
StartDrawing(ImageOutput(1))
Box(0,0,120,20,$FFFFFF)
Box(StripeX,5,60,10,$0000FF)
Box(StripeX-120,5,60,10,$0000FF)
For n=10 To 110 Step 10
Line(n,5,0,10,$FFFFFF)
Next
For n=0 To 4
Line(n,5,0,10,$FFFFFF)
Line(119-n,5,0,10,$FFFFFF)
Next
;DrawingMode(4)
;Box(2,2,116,16,$000000)
StopDrawing()
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1),0,0)
StopDrawing()
Until EventID = #PB_Event_CloseWindow
Zuletzt geändert von Kaeru Gaman am 09.10.2006 22:35, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Ich wusst es nimma auswendig. Ich war sooooooooo nah dran, Box() statt Rect() zu schreiben... *heul*
Hätt ich bloß den 50:50 joker genommen
Refresh für nen Image? Einfach alles mit Rec... ich meine Box() übermalen?! Entspricht einem FlipBuffers()
Hätt ich bloß den 50:50 joker genommen

Refresh für nen Image? Einfach alles mit Rec... ich meine Box() übermalen?! Entspricht einem FlipBuffers()
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Refresh für nen Image? Einfach alles mit Rec... ich meine Box() übermalen?! Entspricht einem FlipBuffers()
ne, eben nicht. technisch, auf pixelebene ja, aber nicht auf win-ebene,
das fenster muss noch gesagt bekommen, dass das Image sich verändert hat.
ne, eben nicht. technisch, auf pixelebene ja, aber nicht auf win-ebene,
das fenster muss noch gesagt bekommen, dass das Image sich verändert hat.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
@Kaeru Gaman
sieht spitze aus
Ich habe noch was für euch, in der Zeit habe ich was geiles programmiert, diesmal ein GADGET
Man muss nur in einer Wiederholschleife bringen, dann hat man das.
PS: Die Bilder bitte hier runterladen: http://88.134.185.54/Progress-Bilder.zip
Hinweis: Der Server ist nur für kurze Zeit verfügbar.
sieht spitze aus

Ich habe noch was für euch, in der Zeit habe ich was geiles programmiert, diesmal ein GADGET

Man muss nur in einer Wiederholschleife bringen, dann hat man das.
PS: Die Bilder bitte hier runterladen: http://88.134.185.54/Progress-Bilder.zip
Hinweis: Der Server ist nur für kurze Zeit verfügbar.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 500, 500, #PB_Window_SystemMenu, "Mein Progress-Optik")
If CreateGadgetList(WindowID(0))
ImageGadget(1,10,10,0,0,LoadImage(1,"1.bmp"),0)
Delay(500)
FreeGadget(1)
ImageGadget(1,10,10,0,0,LoadImage(1,"2.bmp"),0)
Delay(500)
FreeGadget(2)
ImageGadget(1,10,10,0,0,LoadImage(1,"3.bmp"),0)
Delay(500)
FreeGadget(3)
ImageGadget(1,10,10,0,0,LoadImage(1,"4.bmp"),0)
Delay(500)
FreeGadget(4)
ImageGadget(1,10,10,0,0,LoadImage(1,"5.bmp"),0)
Delay(500)
FreeGadget(5)
ImageGadget(1,10,10,0,0,LoadImage(1,"6.bmp"),0)
Delay(500)
FreeGadget(6)
End
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
tip:
wenn du sowieso Freegadget machst, dann lad die bilder am anfang in verschiedene images...
und wechsel dann im verlauf nur das image im gadget.
...ob das allerdings sehr elegant ist, ist die andere frage...
ähnlich kannst du das auch wie bei meinem code machen, also,
indem du immer das aktuelle image in das anzeige-image displayst.
wie gesagt, einziges problem noch, dass bei mir das image nicht wechselt...
also irgendwie wird das imagegadget nicht refresht...
wenn du sowieso Freegadget machst, dann lad die bilder am anfang in verschiedene images...
Code: Alles auswählen
LoadImage(1,"1.bmp")
LoadImage(2,"2.bmp")
LoadImage(3,"3.bmp")
LoadImage(4,"4.bmp")
LoadImage(5,"5.bmp")
LoadImage(6,"6.bmp")
...ob das allerdings sehr elegant ist, ist die andere frage...
ähnlich kannst du das auch wie bei meinem code machen, also,
indem du immer das aktuelle image in das anzeige-image displayst.
wie gesagt, einziges problem noch, dass bei mir das image nicht wechselt...
also irgendwie wird das imagegadget nicht refresht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.