Deutsch
Forum

Tasterfunktion mit Rolltor verknüpfen

 
- 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.
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

921 kB
Version:11
Kurzbeschreibung: Bitmaps für das Programm
Hochgeladen:22.06.2011
Ladeanzahl88
Herunterladen
 
22.06.2011  
 



 
- 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.

977 kB
Version:11
Kurzbeschreibung: Pics
Hochgeladen:23.06.2011
Ladeanzahl80
Herunterladen
 
23.06.2011  
 



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......
KompilierenMarkierenSeparieren
Window 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


1.837 kB
Version:11
Kurzbeschreibung: Bild
Hochgeladen:24.06.2011
Ladeanzahl108
Herunterladen
 
24.06.2011  
 




Jörg
Sellmeyer
Was soll denn das sein?
KompilierenMarkierenSeparieren
var tor&=(%hWnd,"Tor",0,0,0,0)


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
KompilierenMarkierenSeparieren
Window 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

 
24.06.2011  
 



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....
 
24.06.2011  
 



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.
 
24.06.2011  
 




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
 
24.06.2011  
 




Jörg
Sellmeyer
Du hast auch noch einen Fehler in hSizedPic:
KompilierenMarkierenSeparieren
hBmp& = 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:
KompilierenMarkierenSeparieren
hBmp& = 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
var tor&=@Create("bitmap",%hWnd,hBmp&,5000,0,0,0)

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.
 
28.06.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.190 Betrachtungen

Unbenanntvor 0 min.
Ernst30.04.2014
ho.schu08.03.2013
RudiB.08.11.2012
Pedro Miguel13.09.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie