Hi
Ich habe mal eine grundlegende Frage.
Ich habe in meinem Program eine kleine Testfunktion die die Netzwerkverbindung über einen längeren Zeitraum testet.
Sie zeigt an ob der Ping erfolgreich war und wie die Pingzeit lag.
Nun habe ich mir gedacht man könnte ja die Meßzeiten irgendwie schnuckelig grafisch darstellen. (Eyecatcher)
Nur wie macht man sowas?
Ich habe so etwas bisher noch nicht gemacht.
Hat da jemand Beispiele, Bilder oder Codeschnipsel?
Danke schon mal im voraus.
BYe André
Grafische Anzeige
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Grafische Anzeige
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.






Re: Grafische Anzeige
Du kannst das gerne mit 2DDrawing einen Liniendiagramm erstellen.
Das könnte vielleicht für dich hilfreich sein: http://www.purebasic.fr/german/viewtopi ... 8&p=286918
Du musst nur die Input-Werte ändern.
Das könnte vielleicht für dich hilfreich sein: http://www.purebasic.fr/german/viewtopi ... 8&p=286918
Du musst nur die Input-Werte ändern.
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Re: Grafische Anzeige
Hi RSBasic
danke für deinen Post.
So etwas ähnliches hatte ich auch schon mal.
Ich hatte damals so eine Art Balkendiagramm welches dann durchlief.
Allerdings war mir es etwas zu pixelig.
Ich hätte gerne den Hintergrund mit einer art Farbverlauf von Grün > Gelb > Rot gehabt.
Eigentlich müßte man ja die Grafik mit einem Bild hinterlegen können, oder?
Mal sehen vielleicht fällt mir ja noch was ein.
BYe André
danke für deinen Post.
So etwas ähnliches hatte ich auch schon mal.
Ich hatte damals so eine Art Balkendiagramm welches dann durchlief.
Allerdings war mir es etwas zu pixelig.
Ich hätte gerne den Hintergrund mit einer art Farbverlauf von Grün > Gelb > Rot gehabt.
Eigentlich müßte man ja die Grafik mit einem Bild hinterlegen können, oder?
Mal sehen vielleicht fällt mir ja noch was ein.
BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.






Re: Grafische Anzeige
Schau mal in der PB-Hilfe unter 2DDrawing.
Da gibt es einige Gradient-Befehle.
Da gibt es einige Gradient-Befehle.
Re: Grafische Anzeige
Schau dir am Besten mal die Gradient-Befehle an, z.B. LinearGradient():Elektrolurch hat geschrieben:Ich hätte gerne den Hintergrund mit einer art Farbverlauf von Grün > Gelb > Rot gehabt.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 400, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateImage(0, 400, 200) And StartDrawing(ImageOutput(0))
Box(0, 0, 400, 200, $FFFFFF)
DrawingMode(#PB_2DDrawing_Gradient)
GradientColor(1.0, $00FF00) ; Grün
GradientColor(0.5, $00FFFF) ; Gelb
GradientColor(0.0, $0000FF) ; Rot
;BackColor($00FFFF)
;FrontColor($FF0000)
LinearGradient(0, 0, 200, 200)
Circle(100, 100, 100)
LinearGradient(350, 100, 250, 100)
Circle(300, 100, 100)
StopDrawing()
ImageGadget(0, 0, 0, 400, 200, ImageID(0))
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Grafische Anzeige
@Elektrolurch: es gibt eine schöne DLL (rmchart), für
die ABBKlaus einen PB-Wrapper gebastelt hat:
http://www.purebasicpower.de/?RMChart
Grüße ... Kiffi
die ABBKlaus einen PB-Wrapper gebastelt hat:
http://www.purebasicpower.de/?RMChart
Grüße ... Kiffi
a²+b²=mc²
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Re: Grafische Anzeige
Hi
Danke für eure Ratschläge ich habe mir alle bis auf Kiffi's alle mal angesehen.
Ich habe mal als kleine Teststudie aus allem etwas zusammen gebastelt.
So in der Art hatte ich mir das auch vorgestellt.
Den Code kann man sicher noch verbessern und komprimieren, aber wie gesagt das ist nur ein Versuch.
@Kiffi ich denke für die dll werde ich wohl erst am Wochenende Zeit haben.
Mit einer dll habe ich bisher noch garnicht gearbeitet.
BYe André
Danke für eure Ratschläge ich habe mir alle bis auf Kiffi's alle mal angesehen.
Ich habe mal als kleine Teststudie aus allem etwas zusammen gebastelt.
Code: Alles auswählen
;Kleines grafische Tool zum anpingen einer Adresse im eigenen Netzwerk
Global IP_Adresse.s = "192.168.1.6" ;Die anzupingende Adresse
CreateImage(1, 440, 240, 24)
CreateImage(2, 440, 240, 24)
Procedure Thread(z)
Protected LineYCounter = 25
Protected LineYCounter2
Protected Zufall
Protected oldZufall
Protected lngHPort, strMessage.s, MsgLen, lngDAddress
Protected *ECHO.ICMP_ECHO_REPLY, Result
lngHPort = IcmpCreateFile_()
strMessage.s = "Echo This Message back to me"
MsgLen = Len(strMessage)
lngDAddress = MakeIPAddress(Val(StringField(IP_Adresse.s, 1, ".")), Val(StringField(IP_Adresse.s, 2, ".")), Val(StringField(IP_Adresse.s, 3, ".")), Val(StringField(IP_Adresse.s, 4, ".")))
*buffer = AllocateMemory(SizeOf(ICMP_ECHO_REPLY) + MsgLen + 16)
ECHO.ICMP_ECHO_REPLY
Repeat
FreeImage(2)
CopyImage(1, 2)
If StartDrawing(ImageOutput(1))
DrawingMode(#PB_2DDrawing_Gradient)
GradientColor(1.0, $00FF00) ; Grün
GradientColor(0.5, $00FFFF) ; Gelb
GradientColor(0.0, $0000FF) ; Rot
LinearGradient(0, 0, 0, 200)
Box(0, 0, 480, 240, $FFFFFF)
DrawingMode(#PB_2DDrawing_Default)
Line(ImageWidth(1) - 1, 0, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 80, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 160, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 239, 1, 1, RGB(0, 0, 0))
If LineYCounter = 25
Line(ImageWidth(1) - 1, 0, 1, 240, $000000)
LineYCounter = 0
Else
LineYCounter + 1
EndIf
DrawImage(ImageID(2), -1, 0)
If IcmpSendEcho_(lngHPort, lngDAddress, @strMessage, MsgLen, #Null, *buffer, SizeOf(ICMP_ECHO_REPLY) + MsgLen, 1000)
CopyMemory(*Buffer, ECHO, SizeOf(ICMP_ECHO_REPLY))
PTime.i = ECHO\RoundTripTime
EndIf
If PTime.i < 10
Wert.i = PTime.i / 0.125
ElseIf PTime.i < 101
Wert.i = PTime.i / 0.625
ElseIf PTime.i < 1000
Wert.i = PTime.i / 4.167
EndIf
EndIf
If LineYCounter2 = 4
LineXY(ImageWidth(1) - 5, 240 - oldWert.i, ImageWidth(1) - 1, 240 - Wert.i, RGB(12, 15, 243))
LineYCounter2 = 0
oldWert.i = Wert.i
Else
LineYCounter2 + 1
EndIf
StopDrawing()
;EndIf
SetGadgetState(1, ImageID(1))
Delay(10)
ForEver
EndProcedure
If OpenWindow(0, 0, 0, 500, 270, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageGadget(1, 10, 20, 0, 0, ImageID(1), 0)
StartDrawing(ImageOutput(1))
Box(0, 0, 440, 240, $FFFFFF)
DrawingMode(#PB_2DDrawing_Gradient)
GradientColor(1.0, $00FF00) ; Grün
GradientColor(0.5, $00FFFF) ; Gelb
GradientColor(0.0, $0000FF) ; Rot
LinearGradient(0, 0, 0, 200)
Box(0, 0, 480, 240, $FFFFFF)
TextGadget(10, 5, 10, 40, 20, "1000ms", #PB_Text_Right)
TextGadget(11, 5, 90, 40, 20, "100ms", #PB_Text_Right)
TextGadget(12, 5, 170, 40, 20, "10ms", #PB_Text_Right)
DrawingMode(#PB_2DDrawing_Default)
Line(ImageWidth(1) - 1, 0, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 80, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 160, 1, 1, RGB(0, 0, 0))
Line(ImageWidth(1) - 1, 239, 1, 1, RGB(0, 0, 0))
StopDrawing()
ImageGadget(1, 50, 20, 480, 240, ImageID(1))
CreateThread(@Thread(), 0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Den Code kann man sicher noch verbessern und komprimieren, aber wie gesagt das ist nur ein Versuch.
@Kiffi ich denke für die dll werde ich wohl erst am Wochenende Zeit haben.
Mit einer dll habe ich bisher noch garnicht gearbeitet.
BYe André
Wer Rechtschreibfehler findet darf sie ruhig behalten, ich brauche sie nicht mehr, ich habe noch genug davon.





