Fenster GUI
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Fenster GUI |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe 2 fenster mir gebastellt, es soll aber immer nur ein fenster aktiv sein, das is es auch, aber wenn man in der mitte der beiden fenster klickt, wechseln die sich ab, dabei soll es z.b. so sein wie in windows, wenn ich da ein fenster übers andere schieb passiert das ja auch nicht, seht selbst hier
Code: [AUSKLAPPEN] Global WindowList:TList = New TList Global Window:TWindow Type TWindow Field Mode:Int Field Name:String Field X:Int Field Y:Int Field Width:Int Field Height:Int Field WID:String Function Create(Name:String, x:Int, y:Int, width:Int, height:Int, wid:String) Window:TWindow = New TWindow Window.name = name Window.x = X Window.y = Y Window.Width = Width Window.Height = Height Window.WID = wid WindowList.Addlast Window End Function EndType Function DrawWindow() For Window:TWindow = EachIn WindowList If Window.Mode = 0 Then SetAlpha 0.4 SetBlend ALPHABLEND End If SetColor 255,255,0 DrawRect Window.X , Window.Y , Window.Width , Window.Height SetColor 255, 255, 255 SetColor WindowTitelR, WindowTitelG, WindowTitelB DrawText Window.Name, Window.X + 7, Window.Y + 4 If Window.Mode = 0 Then SetAlpha 1 SetBlend MASKBLEND End If If MouseDown(1) And MouseX() > Window.X And MouseX() < Window.X + Window.Width And MouseY() > Window.Y And MouseY() < Window.Y + Window.Height And UnderWindow(Window.WID, Window.X, Window.Y, Window.Width, Window.Height) = 1 Then If Window.mode = 1 Then For Window:TWindow = EachIn WindowList Window.mode = 0 Next EndIf If Window.mode = 0 Then WindowList.Remove Window WindowList.AddLast Window Window.mode = 1 End If End If Next End Function Function UnderWindow(WindowWID:String, x, y, w, h) For Window:TWindow = EachIn WindowList If Window.WID = WindowWID Then If MouseX() > Window.X And MouseX() < Window.X + Window.Width And MouseY() > Window.Y And MouseY() < Window.Y + Window.Height Then Return 1 EndIf EndIf Next Return 0 End Function Function StartGUI() DrawWindow() End Function Graphics 1024, 768 TWindow.Create("Testfenster 0", 50, 50, 200, 180, "Cyber") TWindow.Create("Testfenster 1", 80, 80, 200, 180, "Cyber1") Repeat Cls StartGUI() Flip Until KeyDown(KEY_ESCAPE) End |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte es so gelöst, dass ich noch eine Variable hatte, die immer die ID(welche auch immer den Platz im Array der Fenster darstellte) des "höchsten" Fensters beinhaltete und am Ende des Updates und Zeichnens der Fenster wurde dann das Fenster mit der ID in der Variable an die letzte Position des Arrays verschoben, somit wird es halt als letztes gezeichnet.
Es wird halt nicht sofort das Fenster als das aktive gesetzt, sondern nur das was in der Variable steht und das ist halt immer das obenliegende das angeklickt wird, weil das oberste immer die ID's in der Variable mit seiner eigenen ID überschreibt, weil als letztes im Array steht...schwer zu erklären das ganze =/ Wenn du etwas nicht verstanden hast, frag einfach nochmal..^^ MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhh kannst du es in meinem code einbaun und posten, habs bislang noch nich hinbekomm, leider
wäre echt nett von dir |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzMax: [AUSKLAPPEN] SuperStrict So, erstmal, warum benutzt du kein SuperStrict? Das ist ne Todsünde ![]() Zweitens, ich mag keine Listen, ich komme mit den Dingern, jedenfalls bei solcher Verwaltung wie hier in dem Falle, nicht zurecht, ich habe also auf ein Array umgestellt welches Global im Type TWindow ist. Drittens, mir gefällt dein Einrückstil gar nicht, ich fands furchtbar zum Lesen, benutze doch TAB und eine Leerzeile nach Dingen wie Function, If, Select, Type usw., du siehst es ja in meinem Code jetzt. Natürlich ist das nicht perfekt, aber ich denke es ist um einiges besser lesbar als dein Ursprungscode. btw was soll die UnderWindow Funktion bewirken ![]() So und nun viel Spaß beim weiterbasteln, wenn du noch Fragen hast, hier rein oder PM, mir egal ![]() MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen lieben dank,
mh eigentlich sollte der code eingerückt sein, weiss nun nich wie er bei dir ankam, aber nun gut werd mich weiter bessern, und danke nochmal, hat mir sehr geholfen! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group