Farbe resetten und wann Module einbauen.....?
Übersicht BlitzMax, BlitzMax NG Allgemein
funkheldBetreff: Farbe resetten und wann Module einbauen.....? |
Mi, Aug 17, 2016 11:46 Antworten mit Zitat |
|
---|---|---|
Hallo, guten Tag.
Ich habe hier meine Robotersteuerung die auch funktioniert. Mit dem Programm "WinExec Chr$(34) + "d:/blitzmax/esp_blitzmax.exe" + Chr$(34), 1" kann ich jetzt die gesendeten http-Daten vom Roboter empfangen und schicke sie über das Clipboard zum BlitzMax-Programm. Es funktioniert wunderbar. Warum läuft das Programm ohne Moduleinbindung obwohl ich den Timer benutze? Werden bestimmte Module automatisch eingebunden? Ich habe in der Funktion Button die Farbe der Button auf Rot und resette die anschießend wieder auf 255. Ist das resetten der Farbe bei Änderung immer notwendig? Danke. GRuss Code: [AUSKLAPPEN] Extern "Win32" Function OpenClipboard(hwnd:Int) Function CloseClipboard() Function EmptyClipboard() Function SetClipboardData(format:Int,hMem:Byte Ptr) Function GetClipboardData:Byte Ptr(Format:Int) Function GlobalAlloc:Byte Ptr(uflags:Int,bytes:Int) Function GlobalFree(buffer:Byte Ptr ) Function WinExec(lpCmdLine$z, nCmdShow) End Extern Const GMEM_FIXED = 0 Const CF_TEXT=$01 global ClipText:String Global timer:TTimer = CreateTimer(60) WinExec Chr$(34) + "d:/blitzmax/esp_blitzmax.exe" + Chr$(34), 1 delay(2000) Graphics 400,400, 0, 60 While Not AppTerminate() cls ClipText = TextFromClipboard() If ClipText setcolor 255,255,255 drawtext ClipText,10,220 EndIf If Button(100, 15, 40,20, "vor", 0) Then loadstring("http::192.168.2.102/?pin=vor") end if If Button(10, 40, 40,20, "li", 1) Then loadstring("http::192.168.2.102/?pin=links") end if If Button(55, 40, 40,20, "hli", 2) Then loadstring("http::192.168.2.102/?pin=hlinks") end if If Button(100, 40, 40,20, "mit", 3) Then loadstring("http::192.168.2.102/?pin=mitte") end if If Button(145, 40, 40,20, "hre", 4) Then loadstring("http::192.168.2.102/?pin=hrechts") end if If Button(190, 40, 40,20, "re", 5) Then loadstring("http::192.168.2.102/?pin=rechts") end if If Button(100, 65, 40,20, "zur", 6) Then loadstring("http::192.168.2.102/?pin=zur") end if If Button(100, 100, 40,20, "ser0", 7) Then loadstring("http::192.168.2.102/?pin=ser0") end if If Button(145, 100, 40,20, "ser1", 8) Then loadstring("http::192.168.2.102/?pin=ser1") end if If Button(100, 125, 40,20, "sha", 9) Then loadstring("http::192.168.2.102/?pin=sharp") end if If Button(190, 100, 40,20, "v0", 10) Then loadstring("http::192.168.2.102/?pin=v0") end if If Button(190, 125, 40,20, "v1", 11) Then loadstring("http::192.168.2.102/?pin=v1") end if If Button(190, 150, 40,20, "v2", 12) Then loadstring("http::192.168.2.102/?pin=v2") end if Flip 0 WaitTimer(timer) Wend Function Button:Int(x:Short, y:Short, w:Byte, h:Byte, name:String, id:Byte) Global mouse_state:Int = -1 setcolor 255,0,0 Drawrect x, y, w,h setcolor 255,255,255 If MouseDown(1) And MouseX() >= x And MouseY() >= y And MouseX() =< x+w And MouseY() =< y+h Then DrawText name, x + w/2 - TextWidth(name)/2 + 2, y + h/2 - TextHeight(name)/2 + 2 mouse_state = id Else DrawText name, x + w/2 - TextWidth(name)/2, y + h/2 - TextHeight(name)/2 If mouse_state = id Then mouse_state = -1 FlushMouse() Return True End If End If End Function Function TextFromClipboard:String() If Not Openclipboard(0) Return "" EndIf Local TextBuf:Byte Ptr TextBuf = GetClipboardData(CF_TEXT) CloseClipboard() Return String.FromCString(TextBuf) End Function Function TextToClipboard (txt:String) If txt <> "" Local CPTR:Byte Ptr = GlobalAlloc(GMEM_FIXED,Len(txt)+1) For Local i = 0 Until Len(txt) CPTR[i] = txt[i] Next CPTR[Len(txt)+1]=0 If OpenClipboard(0) EmptyClipboard() SetClipboardData (CF_TEXT,CPTR) CloseClipboard() EndIf If CPTR Then GlobalFree (CPTR) EndIf End Function |
||
Mathias-Kwiatkowski |
Mi, Aug 17, 2016 11:48 Antworten mit Zitat |
|
---|---|---|
Warum läuft das Programm ohne Moduleinbindung obwohl ich den Timer benutze?
ganz einfach du arbeitest nicht im framework! Werden bestimmte Module automatisch eingebunden? jop wenn du eben nich im framework arbeitest Ist das resetten der Farbe bei Änderung immer notwendig? naja wenn sich farbe änern soll... solltest du diese ändern, reseten würd ich es nich nenn-. |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
funkheld |
Mi, Aug 17, 2016 12:08 Antworten mit Zitat |
|
---|---|---|
Also muss ich mit Framework die Module alle selber einbauen die ich brauche ? Wenn nicht läuft das Programm nicht ?
Warum macht man das? Wem nütz dieses Framework? Danke. Gruss |
||
BladeRunnerModerator |
Mi, Aug 17, 2016 12:57 Antworten mit Zitat |
|
---|---|---|
Mit Framework verkleinerst Du deine fertigen Compilate, da nur noch eingebunden wird was benötigt ist.
Ohne Framework bindet BMax alles ein was in den PUB und BRL- Ordnern liegt. Nötig ist Framework also nicht zwangsläufig, es sorgt nur für schlanke .exen. Farbe "resetten": Es ist kein Reset, sondern BMax übernimmt jedes Setcolor solange bis Du ein anderes setzt. Daher ist es guter Stil solche Farbänderungen zu kapseln, sprich, wenn Du innerhalb einer Funktion die Farbe änderst am ende wieder die vorgher genutzte wiederherzustellen. Wie du ja selbst schon festgestellt hast kann das sonst Sideeffects auslösen die zumindest bei größeren Codes schwer zu eliminieren sind. Bei nahezu allen Programmiersprachen ist die Reihenfolge der Statements essentiell, nur bei Hardware Definitionen wie VHDL gibt es "parallele" Instruktionen, da hier kein Verlauf sondern ein Zustand abgebildet wird. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Mathias-Kwiatkowski |
Mi, Aug 17, 2016 13:17 Antworten mit Zitat |
|
---|---|---|
noch ein kleiner tipp so ganz am rande... ( BlitzMax ) ist absolut nicht PureBasic, es ist schöner ( aber das ist ansichtsache ) BM läuft anders als eben PB aber wenn du PB doch kannst, wovon ich ausgehe weil du letzendlich immer PB bsp bringst stelle ich mir ernsthaft die frage warum lernst du BM? da PB nahezu die gleichen möglichkeiten beiet., nur dort muss man zwanghaft im framework arbeiten. jedenfalls habe ich es nie ander gesehn (aber ich kann auch nicht PB programmieren)
du stellst viele fragen was nicht schlimm ist, aber wenn du uns genau sagen würdest worauf du hinauswillst, also was dein programm können soll und wo da deine lücken sind dann könnten wir ggf. wirklich helfen. angeboten habe ich dir auch für direkt fragen ein chat deiner wahl. wo man eben mal kurz etwas beschreiben kann oder ein kl. bsp code senden könnte. ( versuch doch erst mal mit der BlitzMax substanz klar zu kommen und nich gleich netzwerk... ) auch ich habe zahlreiche fragen hier im forum stehen wo es um netzwerk geht. da findest du sicher viele anfänger fragen die sich jeder anfänger in BM stellt. und nochmals man programmiert kein MMO über php & mysql ... das geht alles viel einfacher. noch ein kleiner tipp benutz immer -> SuperStrict <- damit du jedes label ddeclarierst , in PB macht man es auch nur komplett anders meines empfinden nach als in BM. |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
funkheld |
Mi, Aug 17, 2016 14:24 Antworten mit Zitat |
|
---|---|---|
Weil ich Pensionär bin und Zeit und Lust habe etwas neues auszuprobieren....
Wenn du irgendwann mal Rentner bist dann siehst du alles nicht so eng... Zeit ist mein Hobby.... In VHDL programmiere ich auch Beschreibungen. Habe 2 Boards mit Zusatzplatinen zum probieren. Geht erst im Herbst/Winter wieder los , wenn man nicht so oft raus geht zum Wandern/Fahrradfahren usw. Gruss |
||
- Zuletzt bearbeitet von funkheld am Mi, Aug 17, 2016 14:30, insgesamt 2-mal bearbeitet
Mathias-Kwiatkowski |
Mi, Aug 17, 2016 14:29 Antworten mit Zitat |
|
---|---|---|
nur kannst du einfach nich sagen was du erreichen willst mit deinem programm.
und du kannst nicht sagen wo deine lücken liegen. da wirds schwer. |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
Übersicht BlitzMax, BlitzMax NG Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group