Forum | | | | - Seite 1 - |
| | Hallo,
also nun da ich ja schon ein wenig weiter bin mit meinem Programm habe ich hier noch die kleine Schwierigkeit den Taster also per Mousepressed mit dem Rolltor zu verknüpfen. Bedeutet ich will das Rolltor per Taster (aber nur solange er gedrückt wird) hoch und runterfahren lassen, sobald man die Taste loslässt soll das Tor aber stehen bleiben. KompilierenMarkierenSeparierenWindow 1,1 - 1024,768
cls
declare hBild1&,hBild2&,hBild3&,hBild4&,hBild5&,hBild6&,hBild7&,hBild8&\
,hBild9&,hBild10&,hBild11&,hBild12&,hBild13&,hBild14&,hBild15&,hBild16&
Proc BMP
hBild1& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tagn0.BMP")
hBild2& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tagn1.BMP")
hBild3& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tart0.BMP")
hBild4& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tart1.BMP")
hBild5& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\nota1.BMP")
hBild6& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\trt1.BMP")
hBild7& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\trt0.BMP") ;Störungsleuchte ein
hBild8& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tabl0.BMP")
hBild9& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tge0.BMP")
hBild10& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\tgn1.BMP")
hBild11& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\sertar1.BMP")
hBild12& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\sertar0.BMP")
hBild13& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\objekte\\druckzr.BMP")
hBild14& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\objekte\\emotl1.BMP")
hBild15& = @create ("HPic",-1,"D:\\Xprofan\\BMP\\Schalter\\lichtschr.BMP")
hBild16& = @create ("HPic",-1,"D:\\Xprofan\\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&,225,125 - 30,30;0
DrawSizedPic hBild10&,225,215 - 30,30;0
DrawSizedPic hBild6&,225,305 - 30,30;0
DrawSizedPic hBild12&,255,305 - 30,30;0
DrawSizedPic hBild11&,255,215 - 30,30;0
DrawSizedPic hBild12&,255,125 - 30,30;0
DrawSizedPic hBild13&,420,305 - 30,30;0
DrawSizedPic hBild14&,420,120 - 40,40;0
DrawSizedPic hBild15&,390,350 - 30,30;0
rem 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"
Locate 12,2
Print "STOP"
Locate 15,2
Print "AUF"
Locate 18,2
Print "HALB"
Locate 21,2
Print "ZU"
Locate 23,6
Print "Tor"
Locate 2,10
Print "Notaus"
Locate 5,10
Print "verriegelt"
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
Proc Rolltor
mLoadBmp "D:\\Xprofan\\BMP\\Objekte\\rolltor.BMP"
startPaint -1
usepen 0,0,$FFFFFF
line 0,181 - 127,181
endPaint
endproc
Proc Torzu
whileLoop 182,0,-1
mCopyBmp 0,&loop - 127,182 > 290,140 ; 0
sleep 30
wend
endproc
Proc Torauf
Taster1
whileLoop 182
mCopyBmp 0,&loop - 127,182 > 290,140 ; 0
sleep 30
wend
endproc
Rolltor
Torzu
Torauf
While 1
waitinput
if @Mouse (40,50 - 30,30)
offset%=0
Taster1
Elseif @Mouse (40,50 - 30,90)
offset%=50
Taster1
Elseif @Mouse (40,50 - 30,140)
offset%=100
Taster1
Elseif @Mouse (10,0 - 30,190)
offset%=150
Taster1
else
@Mouse (10,160 - 30,190)
Break
Endif
Endwhile
Proc Rolltor
mLoadBmp "D:\\Xprofan\\BMP\\Objekte\\rolltor.BMP"
startPaint -1
usepen 0,0,$FFFFFF
line 0,181 - 127,181
endPaint
endproc
Proc Torzu
whileLoop 182,0,-1
mCopyBmp 0,&loop - 127,182 > 100,100 ; 0
sleep 30
wend
endproc
Proc Torauf
waitInput
whileLoop 182
mCopyBmp 0,&loop - 127,182 > 100,100 ; 0
sleep 30
wend
endproc
Rolltor
Torzu
Torauf
end
|
| | | | |
| | | | - Seite 2 - |
| | Jörg Sellmeyer | Aber für die Schalttafel brauchst Du doch auch nur ein Bild, oder? Oder ist jeder Knopf auf der Schalttafel auch noch in zwei Zuständen vorhanden? Auch da reicht jeweils der gedrückte Zustand, der dann auf das Gesamtbild gelegt wird. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 23.06.2011 ▲ |
| |
| | | hm hm, also wir haben komplett alles in 2 Zuständen, jeden Taster,Sensor usw. alles als BMP und dazu noch eine Komplettansicht und die soll ich dann verwenden? Also so gesehen nur die gedrückten Taster darüber legen?
Ich füg die mal an die Bilder Damit das bissl verständlicher ist. |
| | | | |
| | | Also gut, habe das jetzt mal so versucht, nur nun zeigt er mir erst das Komplettbild und dann kann ich das Fenster als Tor hoch und runter fahren Komisch warum liegt mir c# besser...... KompilierenMarkierenSeparierenWindow 1,1 - 1024,768
cls
declare torhoehe&,hBild1&
hBild1& = @create ("HPic",-1,"C:\\Bmp\\komplett.BMP")
rem mcopybmp 0,0 - 1024,768 > 0,0 ;0
DrawSizedPic hBild1&,0,0 - 1024,768;0
var tor&=(%hWnd,"Tor",0,0,0,0)
waitinput
while 1
waitinput 10
if external("user32","GetAsyncKeyState",1)
case torhoehe&<100 : inc torhoehe&
Elseif external("user32","GetAsyncKeyState",2)
case torhoehe& : dec torhoehe&
endif
setWindowPos tor&=450,450 - 768,torHoehe&;0
wend
|
| | | | |
| | Jörg Sellmeyer | Was soll denn das sein? KompilierenMarkierenSeparieren
nur nun zeigt er mir erst das Komplettbild
Wie hättest Du es denn gern? Erst das Tor runterfahren und dann das Bild anzeigen? Im Moment schnall ich gar nicht mehr, was Du erreichen willst. Und das die Schalttafel so aussieht, wie auf dem Bild verstehe ich auch nicht. Was sollen diese komischen metallischen Dinger? |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.06.2011 ▲ |
| |
| | | Hey, das war nen Beispiel wo nur ein graues tor mit Schriftzug "Tor" geöffnet wurde. So siehts besser aus doch denke ich mache ich noch was falsch mit der Bitmap KompilierenMarkierenSeparierenWindow 1,1 - 1024,768
cls
declare torhoehe&,hBild1&,hTor1&,hwin&,bmp$,hBmp&,stBmp&
hBild1& = @create ("HPic",-1,"C:\\Bmp\\komplett.BMP")
DrawSizedPic hBild1&,0,0 - 1000,700;0
bmp$ = "C:\\Bmp\\Objekte\\rolltor.BMP"
hBmp& = Create("hSizedPic",-1,bmp$,515,205 - 328,240)
var tor&=@Create("bitmap",%hWnd,hBmp&,100,100,100,100)
while 1
waitinput 10
if external("user32","GetAsyncKeyState",1)
case torhoehe&<410 : inc torhoehe&
Elseif external("user32","GetAsyncKeyState",2)
case torhoehe& : dec torhoehe&
endif
setWindowPos tor&=515,205 - 328,torHoehe&;0
wend
|
| | | | |
| | | Das Programm soll per Taster (die runden Knöpfe links und rechts) bedient werden können, also sprich wenn du den Taster loslässt bleibt das Tor stehen, die metallischen Dinger sind Sensoren die auch am echten Tor sitzen, sobald das Tor die Position eines Sensors(LED) passiert leuchtet der Sensor kurz auf. Desweiteren sind die anderen runden Objekte Kontrollleuchten die anzeigen ob es geöffnet,eingeschaltet ist oder eine Störung meldet.
Die Codeschnipsel sind ein wenig wirr in den Posts, da ich noch für mich die beste Variante rausfinden möchte.
Soweit so gut, Tor fährt nur mach ich noch etwas mit der Bitmap des Tores falsch.... |
| | | | |
| | | Und nein er soll erst das Komplettbild anzeigen und im Bild dann das Tor herunterfahren Bin da im mom halt bissl verwirrt,aber das ist das Ziel Und sobald das dann mit den Tastern auf und zu funktioniert kann ich mich ohne Probs den Sensoren und Kontrolleuchten widmen. |
| | | | |
| | Jörg Sellmeyer | Wie ich schon geschrieben hatte: Wenn die Muster auf der Torbitmap senkrecht sind, ist das ganze problemlos so zu regeln. Wenn das Muster wagerecht ist und noch zusätzliche Muster hat, wird es schwieriger. Du kannst dann das Bild ausschnittweise (angepaßt an die jeweilige Größe des Controls) aus der Speicherbitmap in das Static-Control reinkopieren. Noch besser: Du legst Dir ein Array mit den Handles zu ca 100 Torzuständen an und "spielst" die dann sozusagen ab. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.06.2011 ▲ |
| |
| | | ah alles klar, dadurch kommen halt die Schlieren naja nu ist feierabend, ich mach mich zuhause mal ran Danke nochmal |
| | | | |
| | Jörg Sellmeyer | Du hast auch noch einen Fehler in hSizedPic: KompilierenMarkierenSeparierenhBmp& = Create("hSizedPic",-1,bmp$,515,205 - 328,240)
Es darf kein Bindestrich drin sein und es ist ein Parameter zu viel drin.
@Create("hSizedPic", N1, S, DX, DY, N2) |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.06.2011 ▲ |
| |
| | Jörg Sellmeyer | Ich versteh jetzt auch, was Du vorhin damit meintest, daß das Tor vorher zu sehen ist. Eigenartigerweise wird das Staticcontrol immer erst angezeigt, auch wenn die Größen auf Null stehen: KompilierenMarkierenSeparierenhBmp& = Create("hPic",-1,bmp$)',0,0 ,0)
var tor&=@Create("bitmap",%hWnd,hBmp&,0,0,0,0)
Vielleicht noch ein Bug in XProfan? Es hilft, wenn Du es so machst: KompilierenMarkierenSeparieren Also weit aushalb des sichtbaren Bereichs erstellen. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.06.2011 ▲ |
| |
| | | Hi, und oha Danke naja wenns nen bug ist hab ich wenigstens was ausgemerzt.... Ja das mit dem Bild stört gewaltig aber außerhalb des Bereichs ist perfekt. |
| | | | |
|
AntwortenThemenoptionen | 9.185 Betrachtungen |
ThemeninformationenDieses Thema hat 5 Teilnehmer: |