Dies ist ein Programm mit dem sich beliebige Werte oder Funktionen in einer 2 dimensionalen (X/Y)-Grafik darstellen und Beschriften lassen.
Die X- und Y-Achsen können dabei frei skaliert werden. Die Kurven werden entsprechend angepasst. Änderbar im Beispiel über Puldown oder PopUp.
Das Hauptfenster kann in verschiedenen Grössen geöffnet werden.
Die Grafik(en) werden entsprechend geändert.
Es lassen sich mehrere Grafiken im Hauptfenster darstellen ( im Beispiel bis zu 4 )
Der Hintergrund kann invertiert werden.
Die Fensterverwaltung von Windows(XP) wird verwendet. ( Minimize / Refresh ... ).
Zum Zeichnen der Grafik/Kurven verwendet man nur zwei Funktionen:
1. Move (Nr,X,Y) setzt den Anfangspunkt einer Linie ( der Nummer Grafik/Kurve )
2. Draw (Nr,X,Y,Farbe) zeichnet eine Linie von der vorherigen zu dieser Position.
Die Werte können ganz einfach in einer Schleife berechnet oder eingelesen werden.
Beispiel für die 2. Kurve
Code: Alles auswählen
Y.f=(-800*-800)/410-790
Ok=Move(2,-800,Y)
For X=-800 To 800
Y.f=(X*X)/410-790
OK=Draw(2,X,Y.f,Farbe)
Next X
Beispiel für die 1. und 2. Kurve:
Code: Alles auswählen
Procedure Init_Ausgabe()
; Alle Angaben Raster-Größe, Raster-Position in % der Haupt-Fenster Größe.
Erste_Grafik=1
Letzte_Grafik=4
;--------- Zuweisung für die 1.Grafk ----------------
Ausgabe(1)\Raster_x_pos=8
Ausgabe(1)\Raster_breite=40
Ausgabe(1)\X_teilung=8
Ausgabe(1)\X_nachkomma=2
Ausgabe(1)\Raster_y_pos=5
Ausgabe(1)\Raster_hoehe=40
Ausgabe(1)\Y_teilung=10
Ausgabe(1)\Y_nachkomma=0
Ausgabe(1)\Raster_farbe=150
Ausgabe(1)\Rahmen_farbe=255
Ausgabe(1)\Fenster_Titel=" Bezeichnung der Grafik-Ausgabe 1 "
Ausgabe(1)\X_links=-3.6
Ausgabe(1)\X_rechts=3.6
Ausgabe(1)\Y_unten=-600
Ausgabe(1)\Y_oben=600
;--------- Zuweisung für die 2.Grafk ----------------
Ausgabe(2)\Raster_x_pos=57
Ausgabe(2)\Raster_breite=40
Ausgabe(2)\X_teilung=8
Ausgabe(2)\Raster_y_pos=5
Ausgabe(2)\Raster_hoehe=40
Ausgabe(2)\Y_teilung=8
Ausgabe(2)\Raster_farbe=150
Ausgabe(2)\Rahmen_farbe=255
Ausgabe(2)\Fenster_Titel=" Bezeichnung der Grafik-Ausgabe 2"
Ausgabe(2)\X_links=-800
Ausgabe(2)\X_rechts=800
Ausgabe(2)\Y_unten=-800
Ausgabe(2)\Y_oben=800
; ( und so weiter für weitere Kurven )
Screenshot einer Anwendung : http://juergen.webspaces.vektorrausch.n ... kblick.png
Hier das komplette Programm :
Code: Alles auswählen
Global Fenster_x_pos,Fenster_y_pos,Fenster_breite,Fenster_hoehe,HG_farbe,X_alt.f,Y_alt.f,Ende,Neu_Start,Hintergrund,Erste_Grafik,Letzte_Grafik
#Haupt_Fenster=1
#Fenster_Inhalt=2
#Menue_Fenster=3
#PopUp_Fenster=4
Structure Grafik_Format
Raster_x_pos.f
Raster_breite.f
X_teilung.f
X_nachkomma.b
Raster_y_pos.f
Raster_hoehe.f
Y_teilung.f
Y_nachkomma.b
Raster_farbe.f
Rahmen_farbe.f
Fenster_Titel.s
X_rechts_pos.f
X_links_pos.f
Y_unten_pos.f
Y_oben_pos.f
X_links.f
X_rechts.f
Y_unten.f
Y_oben.f
EndStructure
Global Dim Ausgabe.Grafik_Format(4)
Procedure Init_Ausgabe()
; Alle Angaben Raster-Groesse, Raster-Position in % der Haupt-Fenster-Groesse.
Erste_Grafik=1
Letzte_Grafik=4
Ausgabe(1)\Raster_x_pos=8
Ausgabe(1)\Raster_breite=40
Ausgabe(1)\X_teilung=8
Ausgabe(1)\X_nachkomma=2
Ausgabe(1)\Raster_y_pos=5
Ausgabe(1)\Raster_hoehe=40
Ausgabe(1)\Y_teilung=10
Ausgabe(1)\Y_nachkomma=0
Ausgabe(1)\Raster_farbe=150
Ausgabe(1)\Rahmen_farbe=255
Ausgabe(1)\Fenster_Titel=" Bezeichnung der Grafik-Ausgabe 1 "
Ausgabe(1)\X_links=-3.6
Ausgabe(1)\X_rechts=3.6
Ausgabe(1)\Y_unten=-600
Ausgabe(1)\Y_oben=600
Ausgabe(2)\Raster_x_pos=57
Ausgabe(2)\Raster_breite=40
Ausgabe(2)\X_teilung=8
Ausgabe(2)\Raster_y_pos=5
Ausgabe(2)\Raster_hoehe=40
Ausgabe(2)\Y_teilung=8
Ausgabe(2)\Raster_farbe=150
Ausgabe(2)\Rahmen_farbe=255
Ausgabe(2)\Fenster_Titel=" Bezeichnung der Grafik-Ausgabe 2"
Ausgabe(2)\X_links=-800
Ausgabe(2)\X_rechts=800
Ausgabe(2)\Y_unten=-800
Ausgabe(2)\Y_oben=800
Ausgabe(3)\Raster_x_pos=8
Ausgabe(3)\Raster_breite=40
Ausgabe(3)\X_teilung=8
Ausgabe(3)\Raster_y_pos=53
Ausgabe(3)\Raster_hoehe=40
Ausgabe(3)\Y_teilung=6
Ausgabe(3)\Raster_farbe=150
Ausgabe(3)\Rahmen_farbe=255
Ausgabe(3)\Fenster_Titel=" Bezeichnung der Grafik-Ausgabe 3"
Ausgabe(3)\X_links=-800
Ausgabe(3)\X_rechts=800
Ausgabe(3)\Y_unten=-600
Ausgabe(3)\Y_oben=600
Ausgabe(4)\Raster_x_pos=57
Ausgabe(4)\Raster_breite=40
Ausgabe(4)\X_teilung=10
Ausgabe(4)\Raster_y_pos=53
Ausgabe(4)\Raster_hoehe=40
Ausgabe(4)\Y_teilung=12
Ausgabe(4)\Raster_farbe=150
Ausgabe(4)\Rahmen_farbe=255
Ausgabe(4)\Fenster_Titel=" Kredit : Restsumme über Zeit ( Jahre ) "
Ausgabe(4)\X_links=0
Ausgabe(4)\X_rechts=30
Ausgabe(4)\Y_unten=0
Ausgabe(4)\Y_oben=120000
EndProcedure
Procedure Init_Ausgabe_xy_neu()
; Alle Angaben Raster-Groesse, Raster-Position in % der Haupt-Fenster-Groesse.
Erste_Grafik=1
Letzte_Grafik=4
Ausgabe(1)\Raster_x_pos=8
Ausgabe(1)\Raster_breite=40
Ausgabe(1)\X_teilung=7
Ausgabe(1)\X_nachkomma=0
Ausgabe(1)\Raster_y_pos=5
Ausgabe(1)\Raster_hoehe=40
Ausgabe(1)\Y_teilung=10
Ausgabe(1)\Y_nachkomma=0
Ausgabe(1)\Raster_farbe=150
Ausgabe(1)\Rahmen_farbe=255
Ausgabe(1)\Fenster_Titel=" X + Y Skalierung größer"
Ausgabe(1)\X_links=-6
Ausgabe(1)\X_rechts=6
Ausgabe(1)\Y_unten=-1000
Ausgabe(1)\Y_oben=1000
Ausgabe(2)\Raster_x_pos=57
Ausgabe(2)\Raster_breite=40
Ausgabe(2)\X_teilung=4
Ausgabe(2)\Raster_y_pos=5
Ausgabe(2)\Raster_hoehe=40
Ausgabe(2)\Y_teilung=4
Ausgabe(2)\Raster_farbe=150
Ausgabe(2)\Rahmen_farbe=255
Ausgabe(2)\Fenster_Titel=" X - Skalierung / Raster anders "
Ausgabe(2)\X_links=-8000
Ausgabe(2)\X_rechts=8000
Ausgabe(2)\Y_unten=-800
Ausgabe(2)\Y_oben=800
Ausgabe(3)\Raster_x_pos=8
Ausgabe(3)\Raster_breite=40
Ausgabe(3)\X_teilung=1
Ausgabe(3)\Raster_y_pos=53
Ausgabe(3)\Raster_hoehe=40
Ausgabe(3)\Y_teilung=2
Ausgabe(3)\Raster_farbe=150
Ausgabe(3)\Rahmen_farbe=255
Ausgabe(3)\Fenster_Titel=" Y = Cos(X/20)*X/1.4 "
Ausgabe(3)\X_links=-800
Ausgabe(3)\X_rechts=800
Ausgabe(3)\Y_unten=-1000
Ausgabe(3)\Y_oben=1000
Ausgabe(4)\Raster_x_pos=57
Ausgabe(4)\Raster_breite=40
Ausgabe(4)\X_teilung=6
Ausgabe(4)\Raster_y_pos=53
Ausgabe(4)\Raster_hoehe=40
Ausgabe(4)\Y_teilung=4
Ausgabe(4)\Raster_farbe=150
Ausgabe(4)\Rahmen_farbe=255
Ausgabe(4)\Fenster_Titel=" Kredit : Restsumme über Zeit ( Jahre ) "
Ausgabe(4)\X_links=0
Ausgabe(4)\X_rechts=30
Ausgabe(4)\Y_unten=0
Ausgabe(4)\Y_oben=100000
EndProcedure
Procedure Init_Ausgabe_eine_Grafik()
; Alle Angaben Raster-Groesse, Raster-Position in % der Haupt-Fenster-Groesse.
Erste_Grafik=3
Letzte_Grafik=3
Ausgabe(3)\Raster_x_pos=10
Ausgabe(3)\Raster_breite=84
Ausgabe(3)\X_teilung=1
Ausgabe(3)\Raster_y_pos=10
Ausgabe(3)\Raster_hoehe=80
Ausgabe(3)\Y_teilung=2
Ausgabe(3)\Raster_farbe=150
Ausgabe(3)\Rahmen_farbe=255
Ausgabe(3)\Fenster_Titel=" Y = Cos(X/20)*X/1.4 "
Ausgabe(3)\X_links=-800
Ausgabe(3)\X_rechts=800
Ausgabe(3)\Y_unten=-600
Ausgabe(3)\Y_oben=600
EndProcedure
Procedure Init_Ausgabe_nichts()
Erste_Grafik=1
Letzte_Grafik=0
EndProcedure
Procedure Warte()
MessageRequester("","Pause",#PB_MessageRequester_Ok)
EndProcedure
Procedure Hintergrund()
StartDrawing(ImageOutput(#Fenster_Inhalt))
FillArea(0,0,RGB(255,255,255),RGB(HG_farbe,HG_farbe,HG_farbe))
StopDrawing()
EndProcedure
Procedure Init_Haupt_Fenster()
Titel$="Test Grafik / Darstellung von Funktionen bei variabler Skalierung/Grafikgröße/Anzahl ( mit Fensterverwaltung , Menue , PopUp ) (C) Jürgen Lambrecht"
If Fenster_Breite=0
Fenster_x_pos=3
Fenster_y_pos=3
Fenster_breite=1000
Fenster_hoehe=750
EndIf
If Hintergrund=0
HG_farbe=0
Else
HG_farbe=250
EndIf
OpenWindow(#Haupt_Fenster,Fenster_x_pos,Fenster_y_pos, Fenster_breite,Fenster_hoehe, Titel$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
CreateImage(#Fenster_Inhalt, Fenster_breite, Fenster_hoehe) ; Leeres Bild erzeugen
OK=Hintergrund()
If CreateMenu(0, WindowID(#Haupt_Fenster))
MenuTitle(" Optionen ")
MenuItem(1, " Fenster = 1000 x 750 ")
MenuItem(2, " 780 x 580 ")
MenuItem(3, " 600 x 500 ")
MenuItem(4, " Hintergrund (invers)")
MenuItem(5, " Skalierung neu ( 4 Grafiken ) ")
MenuItem(6, " Skalierung alt ( 4 Grafiken )" )
MenuItem(7, " Eine Grafik ")
MenuItem(8, " Quit ")
EndIf
If CreatePopupMenu(#PopUp_Fenster)
MenuItem(21, " Hintergrund (invers) ")
MenuItem(22, " Leeres Fenster ")
MenuItem(25, " Quit ")
EndIf
EndProcedure
Procedure Beschriftung(Grafik)
Font=Fenster_breite*Ausgabe(Grafik)\Raster_breite/2900
FontID.l= LoadFont(1,"Arial",Font)
StartDrawing(ImageOutput(#Fenster_Inhalt))
If Hintergrund=0
Farbe=RGB(250,250,0)
Else
Farbe=RGB(90,90,90)
EndIf
FrontColor (Farbe)
DrawingMode(#PB_2DDrawing_Transparent)
If FontID
DrawingFont(FontID)
EndIf
X=(Ausgabe(Grafik)\X_rechts_pos+Ausgabe(Grafik)\X_links_pos)/2-Len(Ausgabe(Grafik)\Fenster_Titel)*Font/3.2
Y=Ausgabe(Grafik)\Y_oben_pos-(Font*1.8)
DrawText(X,Y,Ausgabe(Grafik)\Fenster_Titel)
StopDrawing()
Font=Fenster_breite*Ausgabe(Grafik)\Raster_breite/3300
FontID.l= LoadFont(1,"Arial",Font)
StartDrawing(ImageOutput(#Fenster_Inhalt))
If Hintergrund=0
Farbe=RGB(250,250,0)
Else
Farbe=RGB(0,0,0)
EndIf
FrontColor (Farbe)
DrawingMode(#PB_2DDrawing_Transparent)
If FontID
DrawingFont(FontID)
EndIf
Y_schritt=(Ausgabe(Grafik)\Y_oben_pos-Ausgabe(Grafik)\Y_unten_pos)/Ausgabe(Grafik)\Y_teilung
Y=Ausgabe(Grafik)\Y_unten_pos-Font*0.8
Y_wert=Ausgabe(Grafik)\Y_unten
Y_wert_schritt=(Ausgabe(Grafik)\Y_oben-Ausgabe(Grafik)\Y_unten)/Ausgabe(Grafik)\Y_teilung
Repeat
Y$=StrF(Y_wert,Ausgabe(Grafik)\Y_nachkomma)
If Y_wert>=0
L.f=Len(Y$)
Else
L=Len(Y$)-0.8
EndIf
X_links=Ausgabe(Grafik)\X_links_pos
X=X_links-L*Font/1.3-3
DrawText(X,Y,Y$)
Y=Y+Y_schritt
Y_wert=Y_wert+Y_wert_schritt
Until Y<=Ausgabe(Grafik)\Y_oben_pos+Y_schritt
X_schritt.f=(Ausgabe(Grafik)\X_rechts_pos-Ausgabe(Grafik)\X_links_pos)/Ausgabe(Grafik)\X_teilung
X_wert.f=Ausgabe(Grafik)\X_links
X_wert_schritt.f=(Ausgabe(Grafik)\X_rechts-Ausgabe(Grafik)\X_links)/Ausgabe(Grafik)\X_teilung
Y_unten=Ausgabe(Grafik)\Y_unten_pos
Z=0
Repeat
X$=StrF(X_wert,Ausgabe(Grafik)\X_nachkomma)
L=Len(X$)
X=Ausgabe(Grafik)\X_Links_pos+Z*X_schritt-L*3.5
Y=Y_unten+Font/2
DrawText(X,Y,X$)
Z=Z+1
X_wert=X_wert+X_wert_schritt
Until Z>=Ausgabe(Grafik)\X_teilung+1
StopDrawing()
EndProcedure
Procedure Grafik_anzeigen()
StartDrawing (WindowOutput(#Haupt_Fenster))
ImageGadget(#Haupt_Fenster, 0, 0, 130, 100, ImageID(#Fenster_Inhalt))
StopDrawing()
EndProcedure
Procedure Raster(Grafik)
Links=Fenster_breite*Ausgabe(Grafik)\Raster_x_pos/100
Ausgabe(Grafik)\X_links_pos=Links
Rechts=Fenster_breite*Ausgabe(Grafik)\Raster_breite/100+Links
Ausgabe(Grafik)\X_rechts_pos=Rechts
Oben=Fenster_hoehe*Ausgabe(Grafik)\Raster_y_pos/100
Ausgabe(Grafik)\Y_oben_pos=Oben
Unten=Fenster_hoehe*Ausgabe(Grafik)\Raster_hoehe/100+Oben
Ausgabe(Grafik)\Y_unten_pos=Unten
Wert=Ausgabe(Grafik)\Raster_Farbe
Farbe=RGB(Wert,Wert,Wert)
StartDrawing(ImageOutput(#Fenster_Inhalt))
Y1.f=Oben
Y_schritt.f=(Unten-Oben)/Ausgabe(Grafik)\Y_teilung
Repeat
For X1=Links To Rechts Step 2
Plot (X1,Y1,Farbe)
Next X1
Y1=Y1+Y_schritt
Until Y1>=Unten+Y_schritt/10
X2.f=Links
X_schritt.f=(Rechts-Links)/Ausgabe(Grafik)\X_teilung
Repeat
For Y2=Oben To Unten Step 2
Plot (X2,Y2,Farbe)
Next Y2
X2=X2+X_schritt
Until X2>=(Rechts+X_schritt/10)
Wert=Ausgabe(Grafik)\Rahmen_Farbe
Farbe=RGB(Wert,Wert,Wert)
Line(Links,Unten,Rechts-Links,0,Farbe)
Line(Links,Oben,Rechts-Links,0,Farbe)
Line(Links,Oben,0,Unten-Oben,Farbe)
Line(Rechts,Oben,0,Unten-Oben,Farbe)
StopDrawing()
EndProcedure
Procedure Bild_neu_aufbauen(WindowID, Message, lParam, wParam)
If Message = #WM_PAINT ; Nachricht von Windows wenn Fenster zerstört
StartDrawing(WindowOutput(#Haupt_Fenster)) ; Bild wieder
DrawImage(#Fenster_Inhalt, 0, 0) ; in Fenster
StopDrawing() ; anzeigen
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents ; Rückgabe an Windows
EndProcedure
Procedure.f X_position(Grafik,X.f)
X_pixel=Ausgabe(Grafik)\X_rechts_pos-Ausgabe(Grafik)\X_links_pos
X_offset.f=X-Ausgabe(Grafik)\X_links
X_breite.f=Ausgabe(Grafik)\X_rechts-Ausgabe(Grafik)\X_links
X_faktor.f=X_offset/X_breite
X_pos.f=Ausgabe(Grafik)\X_links_pos+X_pixel*X_faktor
ProcedureReturn X_pos.f
EndProcedure
Procedure.f Y_position(Grafik,Y.f)
Y_pixel.f=Ausgabe(Grafik)\Y_oben_pos-Ausgabe(Grafik)\Y_unten_pos
Y_offset.f=Y-Ausgabe(Grafik)\Y_unten
Y_breite.f=Ausgabe(Grafik)\Y_oben-Ausgabe(Grafik)\Y_unten
Y_faktor.f=Y_offset/Y_breite
Y_pos.f=Ausgabe(Grafik)\Y_unten_pos+Y_pixel*Y_faktor
ProcedureReturn Y_pos.f
EndProcedure
Procedure Move(Grafik,X.f,Y.f)
X_pos=X_position(Grafik,X)
Y_pos=Y_position(Grafik,Y)
X_alt=X_pos
Y_alt=Y_pos
EndProcedure
Procedure Draw(Grafik,X.f,Y.f,Farbe)
X_pos.f=X_position(Grafik,X.f)
Y_pos.f=Y_position(Grafik,Y.f)
StartDrawing(ImageOutput(#Fenster_Inhalt))
LineXY(X_alt.f,Y_alt.f,X_pos.f,Y_pos.f,Farbe)
StopDrawing()
X_alt.f=X_pos.f
Y_alt.f=Y_pos.f
EndProcedure
Procedure Kurve_1()
If Hintergrund=0
Farbe=RGB(0,255,0)
Else
Farbe=RGB(0,180,0)
EndIf
X_nachkomma=1
Y_nachkomma=0
X.f=-3.6
; X.f=Ausgabe(1)\X_links ; Zur Übernahme aus Init_Ausgabe
X_schritt.f=(7.2)/1000
; X_schritt.f=(Ausgabe(1)\X_rechts-Ausgabe(1)\X_links)/1000 ; Zur Übernahme aus Init_Ausgabe
Y_wert=X*X*X*X*X
OK=Move(1,X,Y_wert)
While X<=3.6
Y_wert=X*X*X*X*X
OK=Draw(1,X,Y_wert,Farbe)
X=X+X_schritt
Wend
EndProcedure
Procedure Kurve_2()
If Hintergrund=0
Farbe=RGB(255,0,0)
Else
Farbe=RGB(220,0,0)
EndIf
X_nachkomma=0
Y.f=(-800*-800)/410-790
Ok=Move(2,-800,Y)
For X=-800 To 800
Y.f=(X*X)/410-790
OK=Draw(2,X,Y.f,Farbe)
Next x
EndProcedure
Procedure Kurve_3()
If Hintergrund=0
Farbe=RGB(0,255,255)
Else
Farbe=RGB(0,100,200)
EndIf
X.f=-800
; X.f=Ausgabe(3)\X_links ; Zur Übernahme aus Init_Ausgabe
X_Max.f=800
; X_max=Ausgabe(3)\X_rechts ; Zur Übernahme aus Init_Ausgabe
X_schritt.f=(X_max-X)/2000
Y.f=Cos(X/20)*X/1.4
Ok=Move(3,X,Y)
While X<=X_max
Y.f=Cos(X/20)*X/1.4
OK=Draw(3,X,Y.f,Farbe)
X=X+X_schritt
Wend
EndProcedure
Procedure Kurve_4()
Summe=120000
Zins=7
Rate=Summe*(Zins+1)/1200
Ok=Move(4,0,Summe)
Farbe=RGB(230,140,0)
For Monat=0 To 360
Zinsen=Summe*Zins/1200
Summe=Summe-Rate+Zinsen
If Summe<0 : Summe=0 : EndIf
Jahr.f=Monat/12
If Summe>= Ausgabe(4)\Y_oben : Ok=Move(4,Jahr,Summe) : EndIf
If Summe<= Ausgabe(4)\Y_oben : OK=Draw(4,Jahr,Summe,Farbe) : EndIf
Next Monat
EndProcedure
Procedure Ereignis_Abfrage(EventID)
Ende=0
Neu_Start=0
Hintergrund_neu=0
If EventID = #WM_RBUTTONDOWN : DisplayPopupMenu(#PopUp_Fenster, WindowID(#Haupt_Fenster)) : EndIf
If EventID = #PB_Event_Menu
Neu_Start=1
Select EventMenu()
Case 1
Fenster_breite=1000
Fenster_hoehe=750
Case 2
Fenster_breite=780
Fenster_hoehe=580
Case 3
Fenster_breite=600
Fenster_hoehe=500
Case 4,21
Hintergrund_neu=1
If Hintergrund=0 And Hintergrund_neu=1
Hintergrund=1
Hintergrund_neu=0
EndIf
If Hintergrund=1 And Hintergrund_neu=1
Hintergrund=0
Hintergrund_neu=0
EndIf
Case 5
Ok=Init_Ausgabe_xy_neu()
Case 6
Ok=Init_Ausgabe()
Case 7
Ok=Init_Ausgabe_eine_Grafik()
Case 22
Ok=Init_Ausgabe_nichts()
Case 8,25
Ende=1
EndSelect
EndIf
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
;-- Haupt - Programm
; ------------------------------------------------------------------------------------------------------------------------------
; Ok=OpenConsole()
Erste_Grafik=1
Letzte_Grafik=4
Ok=Init_Ausgabe() ; Position/Größe der Raster , Achsen Skalierung , Bezeichnung , Einteilung
Repeat
Ok=Init_Haupt_Fenster() ; Festlegen der Fenstergröße , Position , Titel / bzw. Fenster neu
For Grafik_Nr= Erste_Grafik To Letzte_Grafik ; Anzahl der Grafiken
Ok=Raster(Grafik_Nr)
Ok=Beschriftung(Grafik_Nr)
Select Grafik_Nr
Case 1
Ok=Kurve_1()
Case 2
Ok=Kurve_2()
Case 3
Ok=Kurve_3()
Case 4
Ok=Kurve_4()
EndSelect
Next Grafik_Nr
OK=Grafik_anzeigen()
;------------------------------------------------------------------------------------------------------------------------------
;-- Ereignis und Fenster Verwaltung
; ------------------------------------------------------------------------------------------------------------------
SetWindowCallback(@Bild_neu_aufbauen())
Repeat
EventID = WaitWindowEvent()
Ok=Ereignis_Abfrage(EventID)
Until EventID = #PB_Event_CloseWindow Or Neu_Start=1
Until EventID=#PB_Event_CloseWindow Or Ende=1
;------------------------------------------------------------------------------------------------------------------
End