Home

Add

Edit

Without Linenumbers

Code in Textfield

Download

  1. #DEFINE Quit Inkey=Chr(255,107)
    
  2. Dim Shared As Integer mx,my,mb,anz_win
    
  3. 
    
  4. Type WizWindow
    
  5.    As Integer id
    
  6.    As String title
    
  7. '   As Integer active    'brauchste nicht
    
  8.    As Integer x
    
  9.    As Integer y
    
  10.    As Integer w
    
  11.    As Integer h
    
  12. End Type
    
  13. 
    
  14. Dim Shared As WizWindow win(50000)
    
  15. Dim Shared As Uinteger winZ(50000)
    
  16. Dim Shared As Uinteger winActive       'brauchste schon (spart auch speicher)
    
  17. 
    
  18. Declare Sub InitGUI()
    
  19. Declare Sub DrawGadgets()
    
  20. Declare Sub DrawWindow(id As Integer)
    
  21. Declare Sub WinAdd()
    
  22. 
    
  23. Screenres 640,480,32
    
  24. InitGUI()
    
  25. 
    
  26. Sub WinAdd()
    
  27.     anz_win+=1
    
  28.     With win(anz_win)
    
  29.     .id=1
    
  30.     .title="Testwindow-" & Str(anz_win)
    
  31. '   .active=0               'brauchste nicht -> siehe: winActive
    
  32.     .x=anz_win * 25
    
  33.     .y=anz_win * 25
    
  34.     .w=300
    
  35.     .h=200
    
  36.     End With
    
  37.     winZ(anz_win) = anz_win
    
  38. End Sub
    
  39. 
    
  40. Do
    
  41.    Getmouse mx,my,,mb
    
  42.    
    
  43.    'Das macht man nicht im ""Draw!!!
    
  44.    For i As Integer= anz_win To 1 Step -1    'rückwerts durchlaufen
    
  45.       'hier mit winZ prüfen
    
  46.       If (mx>win(winZ(i)).x And mx<win(winZ(i)).w+win(winZ(i)).x) And (my>win(winZ(i)).y And my<win(winZ(i)).h+win(winZ(i)).y) And mb=1 Then
    
  47.          winActive = winz(i)   'aktives fenster einfach hier abspeichern fenster-id steht in der z-liste
    
  48.          Exit For 'fertig. rest muss man nicht durchlaufen
    
  49.       End If
    
  50.    Next
    
  51.    
    
  52.    Sleep 10,1
    
  53.    Screenlock
    
  54.       Cls
    
  55.       Line (0,0)-(640,480),&h376ea5,BF
    
  56.       DrawGadgets()
    
  57.    Screenunlock
    
  58. Loop Until Quit
    
  59. End
    
  60. 
    
  61. 
    
  62. Sub InitGUI()
    
  63.     For X As Uinteger = 1 To 10
    
  64.         WinAdd()
    
  65.     Next
    
  66. End Sub
    
  67. 
    
  68. 
    
  69. Sub DrawGadgets()
    
  70.    For i As Integer=1 To anz_win
    
  71.       If win(winZ(i)).id=1 Then DrawWindow(winZ(i))
    
  72.    Next
    
  73. End Sub
    
  74. 
    
  75. Sub DrawWindow(id As Integer)
    
  76.    If id=winActive Then 'hier auf active prüfen
    
  77.       Line (win(id).x,win(id).y)-(win(id).w+win(id).x,win(id).h+win(id).y),&hFFFFFF,BF
    
  78.       Line (win(id).x,win(id).y)-(win(id).w+win(id).x,win(id).h+win(id).y),&h000000,B
    
  79.    Else
    
  80.       Line (win(id).x,win(id).y)-(win(id).w+win(id).x,win(id).h+win(id).y),&hc0c0c0,BF
    
  81.       Line (win(id).x,win(id).y)-(win(id).w+win(id).x,win(id).h+win(id).y),&h000000,B
    
  82.    End If
    
  83.    'is jetzt in der hauptschleife
    
  84. End Sub
    
  85. 
    
  86.