Mini-Grafik-Demo als Aboutrequester
arng_ugs_07
Ich hab mal wieder einen
; About TNG Requester scholly 07 Version 1.0
; by scholly
; (intern arng_ugs_07.pb)
; WindowsXP(SP2), PB 4.10
;
; Textgadgets + Screen mit 2 Scrollern (normal und sinus) und einem netten Rahmen

; About TNG Requester scholly 07 Version 1.0
; by scholly
; (intern arng_ugs_07.pb)
; WindowsXP(SP2), PB 4.10
;
; Textgadgets + Screen mit 2 Scrollern (normal und sinus) und einem netten Rahmen
Code: Alles auswählen
; About TNG Requester scholly 07 Version 1.0
; by scholly
; (intern arng_ugs_07.pb)
; WindowsXP(SP2), PB 4.10
;
; Textgadgets + Screen mit 2 Scrollern (normal und sinus) und einem netten Rahmen
Declare ar7()
ar7()
End
Procedure ar7()
If InitSprite()=0
MessageRequester("ERROR","Cant initialize screen !",#MB_ICONERROR)
End
EndIf
#ar7_sinscroll_factor = 0.015
#ar7_sinscroll_y_offset = 45
#ar7_horscroll_y_offset = 230
ar7_font_size = 64
ar7_font_id = LoadFont(#PB_Any,"Verdana", ar7_font_size,#PB_Font_Bold)
ar7_quit = #False
ar7_win_titel.s = "About-Requester - TNG "
ar7_win_width = 400
ar7_win_height = 480
ar7_win_ID = OpenWindow(#PB_Any,0,0,ar7_win_width,ar7_win_height,ar7_win_titel,#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If ar7_win_ID = 0
MessageRequester("ERROR","Can't open About-windowd screen !",#MB_ICONERROR)
End
EndIf
If CreateGadgetList(WindowID(ar7_win_ID)) = 0
MessageRequester("ERROR","Can't create Gadgetlist !",#MB_ICONERROR)
CloseWindow(ar7_win_ID)
End
EndIf
ar7_tg1 = TextGadget(#PB_Any,0, 5,ar7_win_width,20,"PureBoard Requester Suite",#PB_Text_Center)
ar7_tg1 = TextGadget(#PB_Any,0,30,ar7_win_width,20,"schollys Requester 7 Version 4711",#PB_Text_Center)
ar7_tg1 = TextGadget(#PB_Any,0,55,ar7_win_width,20,"Copyleft März 2008",#PB_Text_Center)
If OpenWindowedScreen(WindowID(ar7_win_ID), 0, 80, ar7_win_width, ar7_win_height-80, 0, 0, 0) = 0
MessageRequester("ERROR","Can't open windowd screen !",#MB_ICONERROR)
End
EndIf
; Sinus-Scroller vorbereiten Anfang
ar7_sinscrolltext.s = "Dieser Scroller basiert auf Code von Danilo: http://www.purebasic.fr/german/viewtopic.php?t=3020&start=11 "
ar7_sinscroll_x_offset = ar7_win_width
StartDrawing(ScreenOutput())
DrawingFont(FontID(ar7_font_id))
ar7_sintxt_len.l = TextWidth(ar7_sinscrolltext)
StopDrawing()
ar7_sprite1_nr = CreateSprite(#PB_Any,ar7_sintxt_len,ar7_win_height)
If ar7_sprite1_nr=0
CloseScreen()
MessageRequester("ERROR","Can't init sprite ar7_sprite1_nr!",#MB_ICONERROR)
End
EndIf
StartDrawing(SpriteOutput(ar7_sprite1_nr))
DrawingMode(1)
DrawingFont(FontID(ar7_font_id))
FrontColor(#Blue)
DrawText(10,10,ar7_sinscrolltext)
StopDrawing()
; Sinus-Scroller vorbereiten Ende
; H-Scroller vorbereiten Anfang
ar7_horscrolltext.s = "Der Rahmen basiert auf einer Grafikspielerei von netzer und Fluid Byte: http://www.purebasic.fr/german/viewtopic.php?t=16026 "
ar7_horscroll_x_offset = ar7_win_width
StartDrawing(ScreenOutput())
DrawingFont(FontID(ar7_font_id))
ar7_hortxt_len.l = TextWidth(ar7_horscrolltext)
StopDrawing()
ar7_sprite2_nr = CreateSprite(#PB_Any,ar7_hortxt_len,ar7_win_height)
If ar7_sprite2_nr=0
CloseScreen()
MessageRequester("ERROR","Cant init sprite ar7_sprite2_nr !",#MB_ICONERROR)
End
EndIf
StartDrawing(SpriteOutput(ar7_sprite2_nr))
DrawingMode(1)
DrawingFont(FontID(ar7_font_id))
FrontColor(#Red)
DrawText(0,0,ar7_horscrolltext)
StopDrawing()
; H-Scroller vorbereiten Ende
Repeat
Delay(1)
FlipBuffers(0)
If IsScreenActive()
ClearScreen(RGB(0,0,0))
c1 = RGB(r,g,b) : c2 = RGB(r,g,b) : c3 = RGB(r,g,b) : c4 = RGB(r,g,b)
;Ecke links oben soll unter dem Sinusscroller verschwinden
StartDrawing(ScreenOutput())
DrawingMode(1)
For k = 1 To 40
Line(00,00 + (k * 10),400 - (k * 10)*1.8,-(k * 10),c4)
Next k
StopDrawing()
;Sinus-Scroller darstellen Anfang
y_sin.f + 0.05
If y_sin > 2*#PI
y_sin = 0
EndIf
ar7_sinscroll_x_offset - 1 ;hier kann die Scrollgeschwindigkeit eingestellt werden....
If ar7_sinscroll_x_offset < - ar7_sintxt_len
ar7_sinscroll_x_offset = ar7_win_width
EndIf
x = ar7_sinscroll_x_offset
For a = 0 To ar7_sintxt_len
ClipSprite(ar7_sprite1_nr,a,0,1,SpriteHeight(ar7_sprite1_nr))
DisplayTransparentSprite(ar7_sprite1_nr,x,#ar7_sinscroll_y_offset+Sin(y_sin+#ar7_sinscroll_factor*a)*ar7_win_height/8)
x+1
Next a
;Sinus-Scroller darstellen Ende
;Ecke rechts oben soll über dem Sinusscroller liegen
StartDrawing(ScreenOutput())
DrawingMode(1)
For k = 1 To 40
Line(0 + (k * 10),00,400 - (k * 10),(k * 10)/1.8,c1)
Next k
StopDrawing()
;Ecke links unten soll unter dem H-Scroller liegen
StartDrawing(ScreenOutput())
For k = 1 To 40
Line(400,180 + (k/2 * 10),-(k * 10),400 - (k * 10),c2)
Next
StopDrawing()
;H-Scroller darstellen Anfang
ar7_horscroll_x_offset - 1 ;hier kann die Scrollgeschwindigkeit eingestellt werden....
If ar7_horscroll_x_offset < - ar7_hortxt_len
ar7_horscroll_x_offset = ar7_win_width
EndIf
DisplayTransparentSprite(ar7_sprite2_nr, ar7_horscroll_x_offset,#ar7_horscroll_y_offset)
;H-Scroller darstellen ende
StartDrawing(ScreenOutput())
;Ecke rechts unten soll über dem H-Scroller liegen
For k = 1 To 40
Line(00,180 + (k/2 * 10),(k * 10),400 - (k * 10),c3)
Next k
;Umrandung in weiß zeichnen
Box( 00, 00,400, 2,#White)
Box( 00, 00, 2,400,#White)
Box(398, 00, 2,400,#White)
Box( 00,398,400, 2,#White)
;Zeichenfarbe des Rahmens Variieren
If r < 255 And g = 0 And b = 0 : r + 1 : EndIf
If r = 255 And g < 255 And b = 0 : g + 1 : EndIf
If r = 255 And g = 255 And b < 255 : b + 1 : EndIf
If r > 0 And g = 255 And b = 255 : r - 1 : EndIf
If r = 0 And g > 0 And b = 255 : g - 1 : EndIf
If r = 0 And g = 0 And b > 0 : b - 1 : EndIf
If r = 0 And g = 0 And b = 1 : g = 1 : b = 0 : EndIf
If r = 0 And g < 255 And b = 0 : g + 1 : EndIf
If r < 255 And g = 255 And b < 255 : r + 1 : b + 1 : EndIf
StopDrawing()
EndIf
ar7_EventID = WaitWindowEvent(1)
If EventWindow() = ar7_win_ID
If ar7_EventID = #PB_Event_CloseWindow
ar7_quit = #True
FreeSprite(ar7_sprite2_nr)
FreeSprite(ar7_sprite1_nr)
CloseScreen()
CloseWindow(ar7_win_ID)
EndIf
EndIf
Until ar7_quit = #True
EndProcedure ;About-Requester 7
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
bitte schlag mal die Hilfe auf, und lies dir XIncludeFile durch.scholly hat geschrieben:Und beim Austauschen wird dann nurgelöscht und der Rest bleibt drinne.Code: Alles auswählen
Procedure Wup_1() ;... ruft zB Wup_2() auf EndProcedure
Ich möcht nicht wissen, wieviel "Leichen" nach 3 solcher Aktionen im Code noch 'rumfliegen
jetzt, sofort, als erstes.
danach kann hier weitergeredet werden.
...mir ging der ton aller beteiligten auf der 2ten seite grad aufn keks....
PS:
benutzt du jetzt doch procs?
...what was the hussel about then anyways?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
?Kaeru Gaman hat geschrieben: ...mir ging der ton aller beteiligten auf der 2ten seite grad aufn keks....

{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
Meine Güte, welche Laus ist Dir denn schonwieder über die Leber gelaufen, daß Du eine 7 Tage alte Suppe aufwärmst?
Bin ich ja garnicht von Dir gewohnt....
2. Solang das Ziel (copy - paste - change - delete/exchange ohne Leichenreste) erreicht wird, is mir egal, was ich hier reinsetz, ne Proc oder ne Subroutine.
3. Für einige scheint es notwenig zu sein, daß jemand "Lernwilligkeit" demonstriert, bevor man sich mit dem Ergebnis und nicht der Form auseinandersetzt.
So, und jetzt schweig ich still, geh nach oben und rauch meinen Frust weg

Bin ich ja garnicht von Dir gewohnt....

1. Ich hab keine Lust, mich mit Procedure-Evangelisten rumzuschlagen, die nur die Verwendung von Gosub kritisieren, aber nix zum Gegenstand des Threads beitragen.Kaeru Gaman hat geschrieben:benutzt du jetzt doch procs?
...what was the hussel about then anyways?
2. Solang das Ziel (copy - paste - change - delete/exchange ohne Leichenreste) erreicht wird, is mir egal, was ich hier reinsetz, ne Proc oder ne Subroutine.
3. Für einige scheint es notwenig zu sein, daß jemand "Lernwilligkeit" demonstriert, bevor man sich mit dem Ergebnis und nicht der Form auseinandersetzt.
So, und jetzt schweig ich still, geh nach oben und rauch meinen Frust weg

Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Ruhig Brauner. Kritisiert hat hier keiner. Ich habe nun wirklich ausführlich im netten Ton beschrieben warum GOSUB's Unfug sind.1. Ich hab keine Lust, mich mit Procedure-Evangelisten rumzuschlagen, die nur die Verwendung von Gosub kritisieren, aber nix zum Gegenstand des Threads beitragen.
Knieschuss! Genau deshalb solltest du auf Prozeduren umsteigen und dir die Verwendung von GOSUB's (bis auf wenige Ausnahmen) ganz schnell abgewöhnen.2. Solang das Ziel (copy - paste - change - delete/exchange ohne Leichenreste) erreicht wird, is mir egal, was ich hier reinsetz, ne Proc oder ne Subroutine.
Das hab ich getan und mein Standpunkt wird bestätigt.3. Für einige scheint es notwenig zu sein, daß jemand "Lernwilligkeit" demonstriert, bevor man sich mit dem Ergebnis und nicht der Form auseinandersetzt.
Solange es nur Zigaretten sind ...So, und jetzt schweig ich still, geh nach oben und rauch meinen Frust weg

Windows 10 Pro, 64-Bit / Outtakes | Derek
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
hey scholly...
bekomms nich in den falschen Hals, aber ein (fast)-omni-kompatibles Include
mit ein paar Procs bei denen es genügt, wie aufgerufen wird,
ist den meisten heutigen Proggern nun mal lieber,
und kann nur beitragen zur verbreitung deiner versuche.
...und ich hab den antwort-button diesem "Verfasst am: 14 März 2008 17:18:09 " post gedrückt,
das war so ein überragendes "es langt" gefühl, weil ihr euch grad gegenseitig auf 380 gebracht hattet...
leider ist mir entgangen, wie alt das topic war... ich entschuldige mich öffentlich.
wieso zur hölle hatte ich das alles noch nicht gelesen?
ich war überzeugt, dass es neuer ist, weil ich mir gemerkt hätte,
wenn ich den monolog am anfang vorher schon mal gelesen hätte....
bekomms nich in den falschen Hals, aber ein (fast)-omni-kompatibles Include
mit ein paar Procs bei denen es genügt, wie aufgerufen wird,
ist den meisten heutigen Proggern nun mal lieber,
und kann nur beitragen zur verbreitung deiner versuche.
...und ich hab den antwort-button diesem "Verfasst am: 14 März 2008 17:18:09 " post gedrückt,
das war so ein überragendes "es langt" gefühl, weil ihr euch grad gegenseitig auf 380 gebracht hattet...
leider ist mir entgangen, wie alt das topic war... ich entschuldige mich öffentlich.
wieso zur hölle hatte ich das alles noch nicht gelesen?
ich war überzeugt, dass es neuer ist, weil ich mir gemerkt hätte,
wenn ich den monolog am anfang vorher schon mal gelesen hätte....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Dann verstehst Du ja auch, warum ich fast explodiert bin, als auf den neuen, prozeduralen Code, so eine Reaktion erfolgte.
Und "die Zigarette danach" hat schnell geholfen, bin wieder bei 134-79-84
Muß ich jetzt gehen, weil ich nicht dazugehöre ?
FMPOV kommt es zu oft vor, daß über einen Code gemeckert wird, weil er zu alt (3.3,3.94, etc) ist, irgendwas braucht, was nich da ist (.pbi, Dll. gfx o.Ä) oder, besonders für Anfänger (auch wenn die weit älter als 14 sind), einfach nicht so schnell verständlich sind, wie für diejenigen, die seit Jahren täglich mit PB arbeiten.
Und grade das Thema "About-Requester" ist doch nun viel zu banal, als daß sich FMPOV so ein Aufheben um die Form lohnt.
Ich hab mir extra die Mühe gemacht, ohne externe Teile auszukommen, auch wenns wesentlich effekthaschender gewesen wäre, wenn ich einen Oldskool-Font, 'n altes tolles Amiga-Mod oder ein Super-Pic als Logo eingebunden hätte.
Aber dann wär nix mit copy-compile-like it-change it-use it gewesen, weil der geneigte Tester ersma mitm download der Zusatzfiles genervt würde.
Da ich keine optimalen Medien/Texte benutze, sind die Codes in diesem Thread doch nur Beispiele, wie man mit etwas Fantasie und einfachsten Mitteln (auch ohne zusätzliche Libs oder Includes) relativ schnell aus einem langweiligen About-Message-Requester einen Augen- oder sogar Ohrenschmaus machen kann
Und wenn Newbies angemacht werden, weil sie eine sofort einsetzbare Routine suchen, die in ihrem Proggie vielleicht genauso nebensächlich ist, wie es die About-Requester für viele sind, kann es doch irgendwie nicht sein, daß mein Code, der immerhin funktioniert, bekrittelt wird, weil er so wie er ist, nicht in das Konzept eines anderen paßt.
Manchmal ist nicht die Form, sondern das Aussehen bzw. die Message das wichtige.
Und "die Zigarette danach" hat schnell geholfen, bin wieder bei 134-79-84

Kaeru Gaman hat geschrieben:... aber ein (fast)-omni-kompatibles Include
mit ein paar Procs bei denen es genügt, wie aufgerufen wird,
ist den meisten heutigen Proggern nun mal lieber...
Muß ich jetzt gehen, weil ich nicht dazugehöre ?
FMPOV kommt es zu oft vor, daß über einen Code gemeckert wird, weil er zu alt (3.3,3.94, etc) ist, irgendwas braucht, was nich da ist (.pbi, Dll. gfx o.Ä) oder, besonders für Anfänger (auch wenn die weit älter als 14 sind), einfach nicht so schnell verständlich sind, wie für diejenigen, die seit Jahren täglich mit PB arbeiten.
Und grade das Thema "About-Requester" ist doch nun viel zu banal, als daß sich FMPOV so ein Aufheben um die Form lohnt.
Ich hab mir extra die Mühe gemacht, ohne externe Teile auszukommen, auch wenns wesentlich effekthaschender gewesen wäre, wenn ich einen Oldskool-Font, 'n altes tolles Amiga-Mod oder ein Super-Pic als Logo eingebunden hätte.
Aber dann wär nix mit copy-compile-like it-change it-use it gewesen, weil der geneigte Tester ersma mitm download der Zusatzfiles genervt würde.
Da ich keine optimalen Medien/Texte benutze, sind die Codes in diesem Thread doch nur Beispiele, wie man mit etwas Fantasie und einfachsten Mitteln (auch ohne zusätzliche Libs oder Includes) relativ schnell aus einem langweiligen About-Message-Requester einen Augen- oder sogar Ohrenschmaus machen kann

Und wenn Newbies angemacht werden, weil sie eine sofort einsetzbare Routine suchen, die in ihrem Proggie vielleicht genauso nebensächlich ist, wie es die About-Requester für viele sind, kann es doch irgendwie nicht sein, daß mein Code, der immerhin funktioniert, bekrittelt wird, weil er so wie er ist, nicht in das Konzept eines anderen paßt.
Manchmal ist nicht die Form, sondern das Aussehen bzw. die Message das wichtige.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Nein, aber vielleicht mal Gedanken drüber machen ob programmieren das Richtige für dich ist.Muß ich jetzt gehen, weil ich nicht dazugehöre ?

Windows 10 Pro, 64-Bit / Outtakes | Derek
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
dann überleg du dir mal, ob in foren zu posten für dich das richtige ist....Fluid Byte hat geschrieben:Nein, aber vielleicht mal Gedanken drüber machen ob programmieren das Richtige für dich ist.Muß ich jetzt gehen, weil ich nicht dazugehöre ?

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.