| Forum |  |  |  |  |  |  |  |  | | 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.
 KompilierenMarkierenSeparieren
 Window 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
 | 
 
  |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  | | Im Endeffekt muss ich halt wissen wie ich am besten die prozeduren also die Taster und das Tor miteinander verknüpfe. Ob ich das mit mouseclicked oder @mouse usw. versuchen soll, es wäre schön wenn mir jemand ein kleines Beispiel basteln könnte  | 
 |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  |  |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  Jörg
 Sellmeyer
 | | Wenn Du jetzt beide Maustasten verwendest, funktioniert es wie gewünscht: KompilierenMarkierenSeparieren
 cls
declare torhoehe&
var tor&=createText(%hWnd,"Tor",0,0,0,0)
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&=10,10 - 100,torHoehe&;0
wend
 | 
 |  |  |  |  | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 22.06.2011  ▲ | 
 |  |  |  | 
 
 
 |  |  |  |  |  |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  Jörg
 Sellmeyer
 | | Hier kann man noch etwas Rechenarbeit sparen: KompilierenMarkierenSeparieren
 Warum geht es nicht mit den Keycodes für "+" und "-"? Mit a und b geht's...
 | 
 |  |  |  |  | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 22.06.2011  ▲ | 
 |  |  |  | 
 
 
 |  |  |  |  | | Hi, hehe und danke. Sollte vorher bevor ich das bearbeite erstmal das Programm an sich ein wenig übersichtlicher gestalten  Ich muss sagen habe dennoch mit Xprofan meine Schwierigkeiten, ich werde mich nebenbei noch ein wenig mit C# Visual Studio beschäftigen, vielleicht liegt mir das einfach mehr  | 
 |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  | | Ausser das man damit Formulare schön zusammenklicken kann ist alles andere eigentlich nur umständlicher als mit XProfan. Das Tor und die Steuerung hättest z.B. in Timer auslagern müssen und so wird z.B. aus scheinbar "einfachem Handling" schnell übler unzusammenhängender Code. | 
 |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  | | Oha, deswegen blockier ich mich da so  hm hm Timer, mal Hilfe befragen^^ Aber danke, dennoch finde ich die schöne Kontext-Funktion der Befehle a la Excel sehr schön in VS C#, hilft ungemein weiter  Aber versuche nun mal den Timer da mit einzubinden in Profan und mal schauen, werde wahrscheinlich das Prog dann nochmal neu schreiben, da die übersichtlichkeit aufgrund der Masse schon nicht mehr gegeben ist. Ich finde Profan halt manchmal in der Syntax recht komplex  | 
 |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  | | Also um das ganze mal zu verkleinern kann ich die untere Prozedur auch mittels Schleife zu einer kleineren zusammenfassen in der er sich immer wieder der Bilder bedient? Ohne das ich jetzt wie vorher jedes einzelne Bild neu lade? KompilierenMarkierenSeparieren
 
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
 | 
 |  |  |  |  |  |  |  |  | 
 
 
 |  |  |  |  Jörg
 Sellmeyer
 | | Ich würde an Deiner Stelle nur ein oder zwei Bilder verwenden. Die ganz einfache Variante wäre dann so:
 KompilierenMarkierenSeparieren
 Declare bmp$,hBmp&,stBmp&
bmp$ = "Tor.bmp"
hBmp& = Create("hPic",-1,bmp$)
cls
declare torhoehe&
var tor&=Create("Bitmap",%hWnd,hBmp&,0,0,0,0)
while 1
    waitinput 10
    torhoehe&=range(torhoehe&+iskey(1)*1+iskey(2)*-1,0,100)
    setWindowPos tor&=10,10 - 100,torHoehe&;0
wend
Wenn Du noch Details am Tor haben willst (Griff oder auch ein Quermuster) mußt Du das Bild jeweils vorher in Speicher zusammensetzen und dann auf das Control legen. Dafür brauchst Du dann aber auch nur zwei Bilder (naja - je nach Detailreichtum...)
 
 
  | 
 
 |  |  |  |  | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 23.06.2011  ▲ | 
 |  |  |  | 
 
 
 |  |  |  |  | | Ok alles klar, ja das Problem ist das wir für ein echtes Rolltor halt die Schalttafel kopiert haben um das Ganze später am PC per SPS fernsteuern zu können. Daher sind aufgrund der Taster und Sensoren etc. die ganzen Bilder nötig. 
 Und durch meine "spezielle" Übersichtlichkeit ist das nicht ganz sooo einfach
  
 Aber ich werde mir das gleich nochmal anschauen, denn mit c# habe ich schon in 5min nen Taschenrechner gebastelt über mehrere Methoden.
 Macht Spass, Xprofan ist dagegen natürlich komplexer,also finde ich zumindest....
 | 
 |  |  |  |  |  |  |  |  | 
 
 
 | 
 
 Antworten| Themenoptionen | 11.138 Betrachtungen | 
 ThemeninformationenDieses Thema hat 5 Teilnehmer: |