problem mit meiner gui
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: problem mit meiner gui |
![]() Antworten mit Zitat ![]() |
---|---|---|
problem mit meinem gui versuch
ich hab alles vorbereitet, windows könn erstellt werden und in deren fenster auch buttons, das prob is nur das ich nich auf ein button klicken kann bzw. nich drauf reagiert wird. mein code: Code: [AUSKLAPPEN] Global MouseImage,WindowImage
Global Window.Window Global Button.Button Global WindowID Type Window Field X,Y,W,H,ID Field Activ Field Name$ End Type Type Button Field X,Y,W,H,ID Field Status Field Name$ Field Window.Window End Type Function MosMouseX() Return MouseX() End Function Function MosMouseY() Return MouseY() End Function Function MosMouseB() If MouseDown(1) Then Return 1 If MouseDown(2) Then Return 2 Return 0 End Function Function MosGuiUpdate() DrawWindow() DrawButton() CheckWindow() CheckButton() DrawMosMouse() End Function Function DrawMosMouse() DrawImage MouseImage,MosMouseX(),MosMouseY() End Function ;Styles Laden Function MosStyleLoad(Mouse$,Windows$) MouseImage=LoadImage (Mouse$+"Mouse_0.BMP") MaskImage MouseImage,255,0,255 mostdatei=LoadImage (Windows$+"Window_0.BMP") mostx=ImageWidth(mostdatei)/3 mosty=ImageHeight(mostdatei)/6 WindowImage=LoadAnimImage(Windows$+"Window_0.BMP",mostx,mosty,0,18) MaskImage WindowImage ,255,0,255 End Function ;Button Function NewButton.Button(window.Window ,name$,X,Y,W,H) Button=New Button Button\X=X Button\Y=Y Button\W=W Button\H=H Button\Name$=name$ window.Window=window.Window Return (Button) End Function Function CheckButton() For Button = Each Button If(Button\Window.Window = Last Window) Button\Status = False If MosMouseB()=1 And MosMouseX()>Button\X And MosMouseX()<Button\X+Button\W And MosMouseY()>Button\Y And MosMouseY()<Button\Y+Button\H Then Button\Status=True End EndIf EndIf Next End Function Function DrawButton() For Button=Each Button Color 0,0,255 Rect Button\X,Button\Y,Button\W,Button\H Next End Function ;Window Function NewWindow.Window(name$,X,Y,W,H) Window=New Window Window\X=X Window\Y=Y Window\W=W Window\H=H Window\Name$=name$ Window\ID=WindowID WindowID=WindowID+1 Return (Window) End Function Function DrawWindow() For Window=Each Window If Window\Activ=1 Then Color 255,0,0 If Window\Activ=0 Then Color 255,255,255 Rect Window\X,Window\Y,Window\W,Window\H Next End Function Function CheckWindow() For Window=Each Window If MosMouseB()=1 Then If MosMouseX()> Window\X And MosMouseX()<Window\X+Window\W And MosMouseY()>Window\Y And MosMouseY()<Window\Y+Window\H Then Window\Activ=1 Else Window\Activ=0 EndIf EndIf Next For Window=Each Window If Window\Activ=1 Then id=Window\ID Next For Window=Each Window If Window\ID=id Then Insert Window After Last Window Else Window\Activ=0 EndIf Next End Function Temp=ReadFile("Data\System\CFG.mos") Global MosScreenX=Int(ReadLine(temp)) Global MosScreenY=Int(ReadLine(temp)) Global MosBackground$=ReadLine(temp) Mouse$=ReadLine(temp) Windows$=ReadLine(temp) CloseFile temp Graphics MosScreenX,MosScreenY,16,2 MosStyleLoad(mouse$,Windows$) Global mathias.Window=NewWindow("Test",20,20,270,185) Global test.Window=NewWindow("Test",50,90,270,185) Global beenden.Button =NewButton(mathias,"Test",50,30,100,22) SetBuffer BackBuffer() Repeat Cls MosGuiUpdate() If(beenden\Status) End Flip 0 Until KeyDown(1) End |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function MosMouseX()
Das sorgt prinzipiell nur für eine Verlangsamung - Kurze Globale Variablen wären für Maus Position und Klicks eine bessere Wahl.
Return MouseX() End Function Function MosMouseY() Return MouseY() End Function Und: Welche Reaktion erwartest du denn? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
- Zuletzt bearbeitet von Xeres am Di, Mai 11, 2010 15:08, insgesamt einmal bearbeitet
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
[Edit: Was hier vorher stand passte nicht mehr weil Xeres' Beitrag nicht mehr derselbe ist.]
Du hast was ziemlich wichtiges vergessen: BlitzBasic: [AUSKLAPPEN] Function NewButton.Button(window.Window ,name$,X,Y,W,H) |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
okey dann noch die frage, wenn ich ein button erstelle, x30 solls windowX + die 30 sein wie kann ich das machen? fehlt dazu auh was im code? und wenn ich ein fenster verschiebe, soll der button auto mitgeschoben werden, wie kan ich das am besten machen? | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn jeder Button immer zu einem Fenster gehört, spricht nichts dagegen, dass die Button-Koordinaten sich immer auf sein Fenster beziehen...
Code: [AUSKLAPPEN] Function DrawButton()
For Button=Each Button Color 0,0,255 Rect Button\Window\x+Button\X,Button\Window\y+Button\Y,Button\W,Button\H Next End Function Und: Code: [AUSKLAPPEN] window.Window=window.Window Das ist gleichermaßen wahr wie nutzlos ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group