Verfasst: 14.03.2008 23:01
Wenn Du meinst, olly...
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
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
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
?Kaeru Gaman hat geschrieben: ...mir ging der ton aller beteiligten auf der 2ten seite grad aufn keks....
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?
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
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...
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 ?
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 ?