| |
|
|
| Hallo,
Ich bin z.Zt. in der Umschulung zum Fachinformatiker Anwendungsentwicklung und komme mit einem bestimmten bereich in XProfan nicht klar, z.Zt. raubt mir das den letzten Nerv. Wir sollen eine Steuerung für eine WR64 oder auch ne Logo für ein Rolltor basteln mit tastern etc. damit komme ich soweit klar, aber wenn ich versuche das Rolltor per mcopybmp teilweise reinzukopieren so als würde das Tor runter oder hochfahren macht er das nicht, er erkennt die beiden variablen y1% und x2% einfach nicht an, diese kann ich beliebig ändern. Für mich ist es z.Zt. echt schwer hinterher zu kommen da ich Vater einer kleinen Tochter bin und im Moment einfach nicht die Zeit habe das zu hause nachzuarbeiten. Ich hoffe ihr könnt mir einen kleinen Denkanstoss geben, mein Kollege ist damit schon fertig, leider
und zwar habe ich folgendes Problem:
sobald ich versuche das Bild zu kopieren ob ganz oder teilweise zeigt er es nicht an, ich habe wirklich etliche Kombinationen und Befehle versucht aber das will er irgendwie nicht oder ich kapier das einfach nicht. Dazu kommt noch das er die Variablen y1% und x2% einfach nicht erkennt, es kümmert xprofan nicht ob ich da was verändere die Größe bleibt immer gleich, und es soll sich mit y1% +1 jedes mal in der Whileschleife öffnen, also immer ein pixel höher gehen.
Mein Programm (nur das Testprogramm fürs Rolltor) und die Bitmap füge ich bei.
das Ganze soll einfach von oben nach unten fahren und wieder zurück also entweder per mousekey oder waitinput danach kann ich meine Taster einfügen, sieht alles z.Zt. etwas willkürlich aus da ich viel herum experimentiert habe.
Gruß aus Wilhelmshaven
Herunterladen
A.Reintgen |
|
|
| |
|
|
|
| Ich glaube das eine meiner wertevergaben einfach nicht stimmt, denn wenn ich das z.B. so zum hochzählen teste bleibt das dennoch gleich KompilierenMarkierenSeparieren er gibt dennoch die festgelegten 200 wieder |
|
|
| |
|
|
|
| Hi!
Leider hast Du keine XProfan-Version angegeben.
Du schreibst: KompilierenMarkierenSeparierenmloadbmp ("C:\\Bmp\\Objekte\\rolltor.BMP")
- es sollte aber: KompilierenMarkierenSeparierenmloadbmp "C:\\Bmp\\Objekte\\rolltor.BMP"
heißen da mloadbmp eine Prozedur statt Funktion ist.
Prozedur: KompilierenMarkierenSeparieren Funktion: KompilierenMarkierenSeparieren Bei solchen Befehlen die als Parametertrennzeichen ein Minus statt ein Komma benötigen wie z.B. aus Deinem Code: KompilierenMarkierenSeparieren immer besser Freizeichen vor und nach dem Minus setzen oder xpse ( [...] ) einsetzen (benötigt XProfan-Vollversion) und einheitlich das Komma verwenden ( [...] ).
reinzukopieren so als würde das Tor runter oder hochfahren macht er das nich
Ich kann in dem Code nichts erkennen was dazu führen soll dass das Tor hoch oder herunter fährt - Variablenwerte werden zwar gesetzt aber nirgends hoch- oder herunter gezählt.
So fährts: KompilierenMarkierenSeparierencls
mLoadBmp "rolltor.BMP"
startPaint -1
usepen 0,0,$FFFFFF
line 0,181 - 127,181
endPaint
whileLoop 182,0,-1
mCopyBmp 0,&loop - 127,182 > 100,100 ; 0
sleep 30
wend
waitInput
whileLoop 182
mCopyBmp 0,&loop - 127,182 > 100,100 ; 0
sleep 30
wend
end
Herunterladen |
|
|
| |
|
|
|
| Hi und danke für deine Hilfe Also benutze Xprofan 11 Vollversion Editor 11.2. Und ja da war bislang der Haken mit dem hochfahren da er die Variablen nicht wirklich hochrechnen wollte hatte dies halt einfach immer mit z.B.
x1% +10
versucht.
Ich werde mir dein Beispiel mal inhalieren und studieren, denn wir haben leider in einer Woche 4 unterschiedliche Programme verwendet was mich doch ziemlich verunsichert hat.
Zuerst Blitzbasic-Variationen,Smallbasic und jetzt Xprofran vorerst Shareware jetzt die Vollversion, da wir uns das alle selbst erarbeiten müssen kommt man da recht schnell durcheinander. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Also hier die komplette Tafel der Steuerung mal kurz: KompilierenMarkierenSeparierenWindow 1,1 - 640,480
cls
declare hBild1&,hBild2&,hBild3&,hBild4&,hBild5&,hBild6&,hBild7&,hBild8&\
,hBild9&,hBild10&,hBild11&,hBild12&,hBild13&,hBild14&,hBild15&,hBild16&
Proc BMP
hBild1& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tagn0.BMP")
hBild2& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tagn1.BMP")
hBild3& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tart0.BMP")
hBild4& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tart1.BMP")
hBild5& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\nota1.BMP")
hBild6& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\trt1.BMP")
hBild7& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\trt0.BMP") ;Störungsleuchte ein
hBild8& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tabl0.BMP")
hBild9& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tge0.BMP")
hBild10& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\tgn1.BMP")
hBild11& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\sertar1.BMP")
hBild12& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\sertar0.BMP")
hBild13& = @create ("HPic",-1,"C:\\Bmp\\Objekte\\druckzr.BMP")
hBild14& = @create ("HPic",-1,"C:\\Bmp\\Objekte\\emotl1.BMP")
hBild15& = @create ("HPic",-1,"C:\\Bmp\\Schalter\\lichtschr.BMP")
hBild16& = @create ("HPic",-1,"C:\\Bmp\\Objekte\\rolltor.BMP")
Endproc
Proc BMP1
roundrect 600,130 - 500,300;30,30
rectangle 1,290 - 200;0
DrawSizedPic hBild1&,40,50 - 30,30;0
DrawSizedPic hBild1&,40,210 - 30,30;0
DrawSizedPic hBild1&,40,170 - 30,30;0
DrawSizedPic hBild1&,40,250 - 30,30;0
DrawSizedPic hBild3&,40,130 - 30,30;0
DrawSizedPic hBild3&,40,10 - 30,30;0
DrawSizedPic hBild5&,120,10 - 30,30;0
DrawSizedPic hBild8&,120,50 - 30,30;0
DrawSizedPic hBild6&,120,130 - 30,30;0
DrawSizedPic hBild9&,120,170 - 30,30;0
DrawSizedPic hBild10&,120,210 - 30,30;0
DrawSizedPic hBild10&,210,135 - 30,30;0
DrawSizedPic hBild10&,210,230 - 30,30;0
DrawSizedPic hBild6&,210,320 - 30,30;0
DrawSizedPic hBild12&,240,320 - 30,30;0
DrawSizedPic hBild11&,240,230 - 30,30;0
DrawSizedPic hBild12&,240,135 - 30,30;0
DrawSizedPic hBild13&,430,320 - 30,30;0
DrawSizedPic hBild14&,430,120 - 40,40;0
DrawSizedPic hBild15&,420,370 - 30,30;0
DrawSizedPic hBild16&,270,130 - 160,220;0
DrawSizedPic hBild3&,510,140 - 30,30;0
DrawSizedPic hBild1&,510,180 - 30,30;0
DrawSizedPic hBild1&,510,220 - 30,30;0
DrawSizedPic hBild1&,510,260 - 30,30;0
Endproc
Proc Texte
Locate 2,2
Print "Aus"
Locate 5,2
Print "Ein"
Locate 8,5
Print "Anlage"
endproc
rem Ausführung der Prozeduren
BMP
BMP1
Texte
Proc Taster1
While %mousepressed
DrawSizedPic hBild2& ,40 , 50 - 30, 30; 0
EndWhile
DrawSizedPic hbild1& ,40 , 50 - 30, 30; 0
Endproc
waitinput
Es sieht natürlich noch etwas groß und unübersichtlich aus beinhaltet aber die meisten Funktionen. Die Taster sind noch in einem anderen Programm weil diese "noch" nicht richtig funktionieren. Aber ich arbeite daran.
Das ist halt ein genaues Abbild der Schalttafel und dazu kommt das wir ja über eine WR64 ,über serielle COM-Schnittstelle, das ganze auch vom PC aus steuern sollen, recht komplexe Beschäftigungsmaßnahme.
Gruß |
|
|
| |
|
|
|
| Ach da lag der Fehler also achso bin registriert muss mich nur noch ein Bissl anpassen hier, was aufgrund der Problematik eher zweitrangig war. |
|
|
| |
|
|
|
| Ah, verstehe.
Den Hinweis gab ich halt z.B. weil man dann eigene Beiträge beliebig bearbeiten kann bzw. weil es angemeldet mehr Möglichkeiten gibt. |
|
|
| |
|
|
|
| Hehe, hm kannst dir den Code ja mal angucken und schauen ob ich das irgendwie bissl übersichtlicher gestalten kann (natürlich kommentiere ich das Ganze im Nachhinein).
Mit dem Taster werde ich denke ich mal schon fertig, dem habe ich den Kampf schon angesagt. Das Ganze soll dann wie im angehängten aussehen und natürlich funktionieren. Ich hänge mal Taster und Gesamtbild an |
|
|
| |
|
|
|
| Achso im Endeffekt soll das Tor dann auch stoppen können und die Sensoren die das Tor passiert auch leuchten OMG ist doch recht komplex wenn man das als Gesamtbild betrachtet, aber uns wurde ja gesagt, habt ihr Probleme wendet euch ans Xprofan-Forum oder das Handbuch
Musste 7 Bände a 500 Seiten ausdrucken xD und quer über den Parkplatz schleppen, dachte schon das wär ne Strafarbeit |
|
|
| |
|
|
|
| Was ich Dir empfehlen würde wäre das Programm gleich so zu schreiben das es mit nur 1 Hauptereignisschleife auskommt - also sodass WaitInput nur 1mal im Programm vorkommt. |
|
|
| |
|
|
|
| |
|
| |
|
|