Menü

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Florian

Betreff: Menü

BeitragFr, Jan 06, 2006 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Dim Menu$(20)
Dim HauptMenuPos(20)

Global MenuHoch=25
Global MenuAktiv
Global UnterMenuAktiv

Global HauptMenu
Global UnterMenu

Global MausAltX
Global MausAltY

Graphics 800,600,0,2

SetFont LoadFont("tahoma",20)

SetBuffer BackBuffer()
Repeat
 Cls
 MenuNeu$=MenuUpdate()
 If Menuneu$<>"" Then
  Menuname$=MenuNeu$
 EndIf
 Color 255,255,255
 Text 0,400,Menuname$
 Select Menuname$
  Case "datei|beenden"
   End
 End Select   
 Flip
Forever

Function MenuUpdate$()
 If Menu$(0)="" Then MenuInst

 MausX=MouseX()
 MausY=MouseY()
 Mausdruck=MouseHit(1)

 If MausX<>MausAltX Or MausY<>MausAltY Then
  Mausbewegt=True
 Else
  Mausbewegt=False 
 EndIf
 
 MausAltX=MausX
 MausAltY=MausY

 If Mausbewegt=True Or Mausdruck=True Then
  For HMenu=1 To MenuCount(Menu$(0))
   If MausY>0 And MausY<MenuHoch Then
    If MausX>HauptMenuPos(HMenu) And MausX<HauptMenuPos(HMenu+1) Then
     If Mausdruck=True And UnterMenuAktiv=False Then
      UnterMenuAktiv=True
      MenuAktiv=True
      HauptMenu=HMenu
      UnterMenu=1
     ElseIf Mausdruck=True And UnterMenuAktiv=True Then
      UnterMenuAktiv=False
      MenuAktiv=False     
     Else
      If HauptMenu<>HMenu Then 
       HauptMenu=HMenu
       If MenuAktiv=True Then   
        UnterMenu=1
       EndIf
       Exit
      EndIf 
     EndIf   
    EndIf
   EndIf   
  Next

  If MausY<MenuHoch Then
   MausKlickImMenu=True     
  EndIf 

  If UnterMenuAktiv=True Then
   If MausY=>MenuHoch Then
    If MausY<(MenuCount(Menu$(HauptMenu))+1)*MenuHoch
     If MausX=>HauptMenuPos(HauptMenu) Then   
      Index=1
      UnterMenuNeu=MausY/MenuHoch
      UntermenuGefunden=False
      For I=1 To MenuCount(Menu$(HauptMenu))
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$="  "+Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)+"  "
       If UnterMenuNeu=I Then
        If Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)<>"-" Then
         UntermenuGefunden=True
         Exit 
        EndIf 
       EndIf
       If SubMenuBreit<StringWidth(MenuName$) Then SubMenuBreit=StringWidth(MenuName$)
       Index=IndexNeu+1
      Next

      If MausY=<SubMenuBreit+HauptMenuPos(HauptMenu) Then
       If Mausdruck=True Then
        MausKlickImMenu=True
       EndIf   
      EndIf

      If UntermenuGefunden=True Then   
       UnterMenu=UnterMenuNeu
       If Mausdruck=True Then
        UnterMenuAktiv=False
        MenuAktiv=False
        HauptMenu_ausgewaehlt=HauptMenu
        UnterMenu_ausgewaehlt=UnterMenu
        HauptMenu=0
       EndIf     
      EndIf
     EndIf
    EndIf   
   EndIf   
  EndIf   
 
  If Mausdruck=True And MausKlickImMenu=False Then
   UnterMenuAktiv=False
   MenuAktiv=False
   HauptMenu=0
  EndIf   
 Else
  For HMenu=1 To MenuCount(Menu$(0))
   If MausY>0 And MausY<MenuHoch Then
    If MausX>HauptMenuPos(HMenu) And MausX<HauptMenuPos(HMenu+1) Then
     Maus_Ueber_HauptMenu=HMenu
     Exit 
    EndIf
   EndIf   
  Next

  If KeyHit(7)Or  KeyHit(77) Or KeyHit(205)  Then ;6 PfeilTaste nach Rechts
   If MenuAktiv=True Then
    If HauptMenu<MenuCount(Menu$(0)) Then
     HauptMenu=HauptMenu+1
     UnterMenu=1
    EndIf
   EndIf
  ElseIf KeyHit(5) Or KeyHit(75) Or KeyHit(203) Then ; Pfeil Tete nach links
   If MenuAktiv=True Then
    If HauptMenu>1 Then
     HauptMenu=HauptMenu-1
     UnterMenu=1
    EndIf
   EndIf
  ElseIf KeyHit(9) Or KeyHit(72) Or KeyHit(200) Then ; Pfeil Tete nach oben
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     If UnterMenu>1 Then
      Index=1
      For I=1 To UnterMenu-1
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
       If MenuName$<>"-" Then
        UnterMenuNeu=I
       EndIf
       Index=IndexNeu+1
      Next
      If UnterMenuNeu<>0 Then UnterMenu=UnterMenuNeu
     EndIf
    Else
     UnterMenuAktiv=True
     UnterMenu=1 
    EndIf 
   EndIf
  ElseIf KeyHit(3) Or KeyHit(80) Or KeyHit(208) ;Pfeil taste nach unten
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     If UnterMenu<MenuCount(Menu$(HauptMenu)) Then
      Index=1
      For I=1 To MenuCount(Menu$(HauptMenu))
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
       If MenuName$<>"-" And UnterMenu<I Then
        UnterMenu=I
        Exit 
       EndIf
       Index=IndexNeu+1
      Next
     EndIf
    Else
     UnterMenuAktiv=True
     UnterMenu=1 
    EndIf
   EndIf
  ElseIf KeyHit(8) Or KeyHit(71) Or KeyHit(199) Then;Pos1
   If MenuAktiv=True Then
    UnterMenuAktiv=True
    UnterMenu=1
   EndIf   
  ElseIf KeyHit(2) Or KeyHit(79) Or KeyHit(207) Then;Ende
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     UnterMenu=MenuCount(Menu$(HauptMenu))
    Else
     UnterMenuAktiv=True
     UnterMenu=1
    EndIf
   EndIf
  ElseIf KeyHit(6) Or KeyHit(57) Or KeyHit(77) Or KeyHit(28) Or KeyHit(156) Then ;5 " " Enter
   If MenuAktiv=True Then
    If UnterMenuAktiv=False Then
     UnterMenuAktiv=True
     UnterMenu=1
    Else
     UnterMenuAktiv=False
     MenuAktiv=False
     HauptMenu_ausgewaehlt=HauptMenu
     UnterMenu_ausgewaehlt=UnterMenu
     HauptMenu=0     
    EndIf
   EndIf   
  ElseIf KeyHit(56) Then;Alt Taste
   If MenuAktiv=True Then
    MenuAktiv=False
   Else
    MenuAktiv=True 
    HauptMenu=1
   EndIf 
  ElseIf KeyHit(1) Then ;ESC
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     UnterMenuAktiv=False
    Else
     MenuAktiv=False
     HauptMenu=0
    EndIf   
   EndIf     
  EndIf
 EndIf 
 
 Color 0,0,$D8CCB8
 Rect 0,0,GraphicsWidth(),MenuHoch,True
 
 Index=1
 For HMenu=1 To MenuCount(Menu$(0))
  IndexNeu=Instr(Menu$(0),"|",Index)
 
  If HMenu=HauptMenu_ausgewaehlt Then
   Menu_ausgewaehlt$=Mid$(Menu$(0),Index,IndexNeu-Index+1)
  EndIf

  MenuName$="  "+Mid$(Menu$(0),Index,IndexNeu-Index)+"  "

  MenuBreit=StringWidth(MenuName$)
  HauptMenuPos(HMenu)=X

  If HauptMenu=HMenu And UnterMenuAktiv=False Then
   Color 0,0,$0A246A
   Rect X+1,MenuPosY+1,MenuBreit-2,MenuHoch-2,0
   Color 0,0,$B6BDD2
   Rect X+2,MenuPosY+2,MenuBreit-4,MenuHoch-4
   HauptMenu=HMenu
  ElseIf Maus_Ueber_HauptMenu=HMenu Or (UnterMenuAktiv=True And HMenu=HauptMenu) Then
   Color 92,92,92
   Rect X+1,MenuPosY+1,MenuBreit-2,MenuHoch-2,0
   Color 255,255,255
   Rect X+2,MenuPosY+2,MenuBreit-4,MenuHoch-4
  EndIf
  Color 0,0,0
  Text X,MenuPosY+MenuHoch/2,MenuName$,False,True
  X=X+MenuBreit
  Index=IndexNeu+1 
 Next
 
 If UnterMenu_ausgewaehlt>0 Then
  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu_ausgewaehlt))
   IndexNeu=Instr(Menu$(HauptMenu_ausgewaehlt),"|",Index)
   MenuName$=Mid$(Menu$(HauptMenu_ausgewaehlt),Index,IndexNeu-Index)

   If UnterMenu_ausgewaehlt=I Then
    Menu_ausgewaehlt$=Lower$(Menu_ausgewaehlt$+MenuName$)
    Exit
   EndIf

   Index=IndexNeu+1
  Next
 EndIf
 
 If UnterMenuAktiv=True Then
  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu))
   IndexNeu=Instr(Menu$(HauptMenu),"|",Index)

   MenuName$="  "+Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)+"  "
   If SubMenuBreit<StringWidth(MenuName$) Then SubMenuBreit=StringWidth(MenuName$)
   Index=IndexNeu+1
  Next
   
  Color 0,0,$D8CCB8
  Rect HauptMenuPos(HauptMenu),MenuHoch,SubMenuBreit,MenuCount(Menu$(HauptMenu))*MenuHoch

  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu))
   IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
   MenuName$="  "+Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)+"  "

   If UnterMenu=I Then
    Color 0,0,$0A246A
    Rect HauptMenuPos(HauptMenu)+1,MenuHoch*I+1,SubMenuBreit-2,MenuHoch-2
    Color 0,0,$B6BDD2
    Rect HauptMenuPos(HauptMenu)+2,MenuHoch*I+2,SubMenuBreit-4,MenuHoch-4
   EndIf
 
   If MenuName$="  -  " Then
    Color 0,0,0
    Rect HauptMenuPos(HauptMenu)+10,MenuHoch*I+MenuHoch/2,SubMenuBreit-20,1
   Else
    Color 0,0,0
    Text HauptMenuPos(HauptMenu),MenuHoch*I,MenuName$
   EndIf
   Index=IndexNeu+1
  Next
 EndIf
 Return Menu_ausgewaehlt$
End Function

Function MenuInst()
 Read Menu$(0)
 For I=1 To MenuCount(Menu$(0))
  Read Menu$(I)
 Next
 
 Index=1
 For HMenu=1 To MenuCount(Menu$(0))
  IndexNeu=Instr(Menu$(0),"|",Index)
  MenuName$="  "+Mid$(Menu$(0),Index,IndexNeu-Index)+"  "
  MenuBreit=StringWidth(MenuName$)
  HauptMenuPos(HMenu)=X
  X=X+MenuBreit
  HauptMenuPos(HMenu+1)=X
  Index=IndexNeu+1
 Next
End Function

Function MenuCount(Count$)
 For I=1 To Len(Count$)
  If Mid$(Count$,I,1)="|" Then Cnt=Cnt+1
 Next
 Return Cnt
End Function

Function Lower$(S$)
 Slen=Len(S)
 If Slen>0 Then
  For P=1 To Slen
   ASCII=Asc(Mid$(S$,P,1))
   If Ascii>64 And Ascii<92 Then
     Ascii=Ascii+32
    ElseIf Ascii=220 Then ;ü
     Ascii=252     
    ElseIf Ascii=196 Then ;ä
     Ascii=228 
    ElseIf Ascii=214 Then ;ö
     Ascii=246
   End If
   R$=R$+Chr$(ASCII)
  Next
  Return R$
 End If
End Function

Data "Datei|Bearbeiten|Ansicht|Werkzeug|Bild|Effekte|Sequenz|Hilfe|"
Data "Neu|Öffnen|Import|-|Speichern|Speichern unter|Export|-|Eigenschaften|-|Beenden|"
Data "Rückgängig|-|Alles auswählen|Ausschneiden|Kopieren|Einfügen voll|Einfügen transparent|"
Data "Vergrößern|Verkleinern|-|Raster|"
Data "Markieren|Stift|Linie|Füllen|Füllen Farbverlauf|Rechteck|Rechteck voll|Kreis|Kreis voll|Pipette|Farbe tauschen|"
Data "Drehen|Spiegeln horizontal|Spiegeln vertikal|Scrollen Links|Scrollen Rechts|Scrollen Hoch|Scrollen Runter|"
Data "Weichzeichnen|Schärfen|Graustufen|Invertieren|Prägen|Solarisation|Diffuser|Skalieren|Helligkeit|Kontrast|Kolorieren|Überblenden|"
Data "Animieren|-|Reihenfolge ändern|Größe ändern|"
Data "Index|Über|Webseite|"

SoNenTyp

BeitragFr, Jan 06, 2006 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow echt klasse!
Eine Function mit der man die Schaltflächen deaktivieren kann ohne sie zu entfernen währe noch supi. Also ich meine sie werden angezeigt aber man kann sie nicht auswählen.
Gruss Der Typ.

User posted image
 

Florian

BeitragSa, Jan 07, 2006 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe deaktivieren und aktivieren von Schaltflächen eingebaut.

Code: [AUSKLAPPEN]



Dim Menu$(20)
Dim HauptMenuPos(20)

Global MenuHoch=25
Global MenuAktiv
Global UnterMenuAktiv

Global HauptMenu
Global UnterMenu

Global MausAltX
Global MausAltY

Graphics 800,600,0,2

SetFont LoadFont("tahoma",20)

SetBuffer BackBuffer()
Repeat
 Cls
 MenuNeu$=MenuUpdate()
 If Menuneu$<>"" Then
  Menuname$=MenuNeu$
 EndIf
 Color 255,255,255
 Text 0,400,Menuname$
 Select Menuname$
  Case "datei|beenden"
   End
 End Select   
 Flip
Forever

Function MenuUpdate$()
 If Menu$(0)="" Then MenuInst
 InstHauptMenu

 MausX=MouseX()
 MausY=MouseY()
 Mausdruck=MouseHit(1)

 If MausX<>MausAltX Or MausY<>MausAltY Then
  Mausbewegt=True
 Else
  Mausbewegt=False 
 EndIf
 
 MausAltX=MausX
 MausAltY=MausY

 If Mausbewegt=True Or Mausdruck=True Then
  For HMenu=1 To MenuCount(Menu$(0))
   If MausY>0 And MausY<MenuHoch Then
    If MausX>HauptMenuPos(HMenu) And MausX<HauptMenuPos(HMenu+1) Then
     Index=1
     HauptMenugesperrt=False
     For I=1 To MenuCount(Menu$(0))
      IndexNeu=Instr(Menu$(0),"|",Index)
      MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If I=HMenu Then
       If MenuName$="-" Or gesperrt=True  Then
        HauptMenugesperrt=True
       EndIf 
      EndIf
      Index=IndexNeu+1     
     Next
 
     If HauptMenugesperrt=False Then
      If Mausdruck=True And UnterMenuAktiv=False Then
       MenuAktiv=True
       HauptMenu=HMenu
       Index=1
       UnterMenugefunden=False
       For I=1 To MenuCount(Menu$(Hauptmenu))
        IndexNeu=Instr(Menu$(Hauptmenu),"|",Index)
        MenuName$=Mid$(Menu$(Hauptmenu),Index,IndexNeu-Index)
        If Left$(MenuName$,1)="~" Then
         gesperrt=True 
        Else
         gesperrt=False
        EndIf
        If MenuName$<>"-" And gesperrt=False Then
         UnterMenu=I
         UnterMenuAktiv=True
         UnterMenugefunden=True
         Exit 
        EndIf
        Index=IndexNeu+1     
       Next
       ;UnterMenu=1
       If UnterMenugefunden=False Then
        UnterMenu=0   
       EndIf
       Exit
      ElseIf Mausdruck=True And UnterMenuAktiv=True Then
       Index=1
       UnterMenuAktiv=False
       MenuAktiv=False
       Exit     
      Else
       If HauptMenu<>HMenu Then 
        HauptMenu=HMenu
        UnterMenugefunden=False
        If MenuAktiv=True Then
         Index=1
         For I=1 To MenuCount(Menu$(HauptMenu))
          IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
          MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
          If Left$(MenuName$,1)="~" Then
           gesperrt=True 
          Else
           gesperrt=False
          EndIf
          If MenuName$<>"-" And gesperrt=False Then
           UnterMenu=I
           UnterMenugefunden=True
           Exit 
          EndIf
          Index=IndexNeu+1     
         Next
         If UnterMenugefunden=False Then
          UnterMenu=0
         EndIf 
        ;UnterMenu=1
        EndIf
        Exit
       EndIf 
      EndIf   
     EndIf
    EndIf 
   EndIf   
  Next

  If MausY<MenuHoch Then
   MausKlickImMenu=True     
  EndIf 

  If UnterMenuAktiv=True Then
   If MausY=>MenuHoch Then
    If MausY<(MenuCount(Menu$(HauptMenu))+1)*MenuHoch
     If MausX=>HauptMenuPos(HauptMenu) Then

   
      Index=1
      UnterMenuNeu=MausY/MenuHoch
      UntermenuGefunden=False
      For I=1 To MenuCount(Menu$(HauptMenu))
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)     
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)

       If Left$(MenuName$,1)="~" Then
        gesperrt=True
        MenuName$=Mid$(MenuName$,2)   
       Else
        gesperrt=False
       EndIf

       MenuName$="  "+MenuName$+"  "
       If UnterMenuNeu=I And gesperrt=False Then
        If Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)<>"-" Then
         UntermenuGefunden=True
        EndIf 
       EndIf
       
       If StringWidth(MenuName$)>SubMenuBreit Then SubMenuBreit=StringWidth(MenuName$)
       Index=IndexNeu+1
      Next   

      If MausX=<SubMenuBreit+HauptMenuPos(HauptMenu) Then
       If Mausdruck=True Then
        MausKlickImMenu=True
       EndIf   
      EndIf

      If UntermenuGefunden=True Then
       If MausX=<SubMenuBreit+HauptMenuPos(HauptMenu) Then   
        UnterMenu=UnterMenuNeu
        If Mausdruck=True Then
         UnterMenuAktiv=False
         MenuAktiv=False
         HauptMenu_ausgewaehlt=HauptMenu
         UnterMenu_ausgewaehlt=UnterMenu
         HauptMenu=0
        EndIf
       EndIf
      EndIf
     EndIf
    EndIf   
   EndIf   
  EndIf   
 
  If Mausdruck=True And MausKlickImMenu=False Then
   UnterMenuAktiv=False
   MenuAktiv=False
   HauptMenu=0
  EndIf   
 Else
  For HMenu=1 To MenuCount(Menu$(0))
   Index=1
   HauptMenugesperrt=False
   For I=1 To MenuCount(Menu$(0))
    IndexNeu=Instr(Menu$(0),"|",Index)
    MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
    If Left$(MenuName$,1)="~" Then
     gesperrt=True 
    Else
     gesperrt=False
    EndIf
    If I=HMenu Then
     If MenuName$="-" Or gesperrt=True  Then
      HauptMenugesperrt=True
     EndIf 
    EndIf
    Index=IndexNeu+1     
   Next

   If HauptMenugesperrt=False Then 
    If MausY>0 And MausY<MenuHoch Then
     If MausX>HauptMenuPos(HMenu) And MausX<HauptMenuPos(HMenu+1) Then
      Maus_Ueber_HauptMenu=HMenu
      Exit 
     EndIf
    EndIf 
   EndIf   
  Next

  If KeyHit(7)Or  KeyHit(77) Or KeyHit(205)  Then ;6 PfeilTaste nach Rechts
   If MenuAktiv=True Then
    If HauptMenu<MenuCount(Menu$(0)) Then

 
     HauptMenuNeu=HauptMenu+1
     HauptMenugefunden=False
     Index=1
     HauptMenugesperrt=False
     For I=1 To MenuCount(Menu$(0))
      IndexNeu=Instr(Menu$(0),"|",Index)
      MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If I=>HauptMenuNeu Then
       If MenuName$<>"-" And gesperrt<>True  Then
        HauptMenugefunden=True
        HauptMenuNeu=I
        Exit
       EndIf 
      EndIf
      Index=IndexNeu+1     
     Next

     If HauptMenugefunden=True Then
      HauptMenu=HauptMenuNeu
      UnterMenuGefunden=False
      ;UnterMenu=1
      Index=1
      For I=1 To MenuCount(Menu$(HauptMenu))
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
       If Left$(MenuName$,1)="~" Then
        gesperrt=True 
       Else
       gesperrt=False
       EndIf
       If MenuName$<>"-" And gesperrt=False Then
        UnterMenu=I
        UnterMenuGefunden=True 
        Exit 
       EndIf
       Index=IndexNeu+1     
      Next
      If UnterMenuGefunden=False Then
       UnterMenu=0
      EndIf
     EndIf
    EndIf
   EndIf
  ElseIf KeyHit(5) Or KeyHit(75) Or KeyHit(203) Then ; Pfeil Tete nach links
   If MenuAktiv=True Then
    If HauptMenu>1 Then
     HauptMenuNeu=HauptMenu-1

     HauptMenugefunden=False
     Index=1
     HauptMenugesperrt=False
     For I=1 To MenuCount(Menu$(0))
      IndexNeu=Instr(Menu$(0),"|",Index)
      MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If I=<HauptMenuNeu Then
       If MenuName$<>"-" And gesperrt<>True  Then
        HauptMenugefunden=True
        HauptMenuNeuNr=I
       EndIf 
      EndIf
      Index=IndexNeu+1     
     Next


     If HauptMenugefunden=True Then 
      ;UnterMenu=1
      UnterMenuGefunden=False
      HauptMenu=HauptMenuNeuNr
      If UnterMenuAktiv=True Then
       Index=1
       For I=1 To MenuCount(Menu$(HauptMenu))
        IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
        MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
        If Left$(MenuName$,1)="~" Then
         gesperrt=True 
        Else
         gesperrt=False
        EndIf
        If MenuName$<>"-" And gesperrt=False Then
         UnterMenu=I
         UnterMenuGefunden=True
         Exit 
        EndIf
        Index=IndexNeu+1     
       Next
       If UnterMenuGefunden=False Then
        UnterMenu=0
       EndIf
      EndIf
     EndIf 
    EndIf
   EndIf
  ElseIf KeyHit(9) Or KeyHit(72) Or KeyHit(200) Then ; Pfeil Tete nach oben
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     If UnterMenu>1 Then
      Index=1
      For I=1 To UnterMenu-1
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)

       If Left$(MenuName$,1)="~" Then
        gesperrt=True 
       Else
        gesperrt=False
       EndIf

       If MenuName$<>"-" And gesperrt=False Then
        UnterMenuNeu=I
       EndIf
       Index=IndexNeu+1
      Next
      If UnterMenuNeu<>0 Then UnterMenu=UnterMenuNeu
     EndIf
    Else
     ;UnterMenu=1
     Index=1
     For I=1 To MenuCount(Menu$(HauptMenu))
      IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
      MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If MenuName$<>"-" And gesperrt=False Then
       UnterMenuAktiv=True
       UnterMenu=I
       Exit 
      EndIf
      Index=IndexNeu+1     
     Next
    EndIf 
   EndIf
  ElseIf KeyHit(3) Or KeyHit(80) Or KeyHit(208) ;Pfeil taste nach unten
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     If UnterMenu<MenuCount(Menu$(HauptMenu)) Then
      Index=1
      For I=1 To MenuCount(Menu$(HauptMenu))
       IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
       MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
       If Left$(MenuName$,1)="~" Then
        gesperrt=True 
       Else
        gesperrt=False
       EndIf
       If MenuName$<>"-" And UnterMenu<I And gesperrt=False Then
        UnterMenu=I
        Exit 
       EndIf
       Index=IndexNeu+1
      Next
     EndIf
    Else
     ;UnterMenu=1 
     Index=1
     For I=1 To MenuCount(Menu$(HauptMenu))
      IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
      MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If MenuName$<>"-" And gesperrt=False Then
       UnterMenu=I
       UnterMenuAktiv=True
       Exit 
      EndIf
      Index=IndexNeu+1     
     Next
    EndIf
   EndIf
  ElseIf KeyHit(8) Or KeyHit(71) Or KeyHit(199) Then;Pos1
   If MenuAktiv=True Then
    UnterMenuAktiv=True
    UnterMenuGefunden=False
    Index=1
    For I=1 To MenuCount(Menu$(HauptMenu))
     IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
     MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
     If Left$(MenuName$,1)="~" Then
      gesperrt=True 
     Else
      gesperrt=False
     EndIf
     If MenuName$<>"-" And gesperrt=False Then
      UnterMenu=I
      UnterMenuGefunden=True
      Exit 
     EndIf
     Index=IndexNeu+1     
    Next
    If UnterMenuGefunden=False Then
     UnterMenu=0
    EndIf   
   EndIf   
  ElseIf KeyHit(2) Or KeyHit(79) Or KeyHit(207) Then;Ende
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     UnterMenu=MenuCount(Menu$(HauptMenu))
     Index=1
     UnterMenuGefunden=False
     For I=1 To MenuCount(Menu$(HauptMenu))
      IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
      MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)

      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf

      If MenuName$<>"-" And gesperrt=False Then
       UnterMenuNeu=I
       UnterMenuGefunden=True
      EndIf
      Index=IndexNeu+1
     Next
     UnterMenu=UnterMenuNeu
     If UnterMenuGefunden=False Then
      UnterMenu=0
     EndIf
    Else
     UnterMenuAktiv=True
     Index=1
     For I=1 To MenuCount(Menu$(HauptMenu))
      IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
      MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If MenuName$<>"-" And gesperrt=False Then
       UnterMenu=I
       Exit 
      EndIf
      Index=IndexNeu+1     
     Next
    EndIf
   EndIf
  ElseIf KeyHit(6) Or KeyHit(57) Or KeyHit(77) Or KeyHit(28) Or KeyHit(156) Then ;5 " " Enter
   If MenuAktiv=True Then
    If UnterMenuAktiv=False Then
     ;UnterMenu=1
     Index=1
     For I=1 To MenuCount(Menu$(HauptMenu))
      IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
      MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If MenuName$<>"-" And gesperrt=False Then
       UnterMenu=I
       UnterMenuAktiv=True
       Exit 
      EndIf
      Index=IndexNeu+1     
     Next
    Else
     If UnterMenu<>0 Then
      UnterMenuAktiv=False
      MenuAktiv=False
      HauptMenu_ausgewaehlt=HauptMenu
      UnterMenu_ausgewaehlt=UnterMenu
      HauptMenu=0
     EndIf       
    EndIf
   EndIf   
  ElseIf KeyHit(56) Then;Alt Taste
   If MenuAktiv=True Then
    MenuAktiv=False
   Else
    ;HauptMenu=1
     Index=1
     For I=1 To MenuCount(Menu$(0))
      HauptMenugesperrt=False
      IndexNeu=Instr(Menu$(0),"|",Index)
      MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
      If Left$(MenuName$,1)="~" Then
       gesperrt=True 
      Else
       gesperrt=False
      EndIf
      If MenuName$="-" Or gesperrt=True  Then
       HauptMenugesperrt=True
      EndIf 
      If HauptMenugesperrt=False Then
       MenuAktiv=True   
       HauptMenu=I
       Exit
      EndIf 
      Index=IndexNeu+1     
     Next
   EndIf 
  ElseIf KeyHit(1) Then ;ESC
   If MenuAktiv=True Then
    If UnterMenuAktiv=True Then
     UnterMenuAktiv=False
    Else
     MenuAktiv=False
     HauptMenu=0
    EndIf   
   EndIf     
  EndIf
 EndIf 
 
 Color 0,0,$D8CCB8
 Rect 0,0,GraphicsWidth(),MenuHoch,True
 
 Index=1
 For HMenu=1 To MenuCount(Menu$(0))
  IndexNeu=Instr(Menu$(0),"|",Index)
 
  If HMenu=HauptMenu_ausgewaehlt Then
   Menu_ausgewaehlt$=Mid$(Menu$(0),Index,IndexNeu-Index+1)
  EndIf

  MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)

  If Left$(MenuName$,1)="~" Then
   gesperrt=True
   MenuName$=Mid$(MenuName$,2)   
  Else
   gesperrt=False
  EndIf
  MenuName$="  "+MenuName$+"  "

  MenuBreit=StringWidth(MenuName$)
  HauptMenuPos(HMenu)=X

  If HauptMenu=HMenu And UnterMenuAktiv=False Then
   Color 0,0,$0A246A
   Rect X+1,MenuPosY+1,MenuBreit-2,MenuHoch-2,0
   Color 0,0,$B6BDD2
   Rect X+2,MenuPosY+2,MenuBreit-4,MenuHoch-4
   HauptMenu=HMenu
  ElseIf Maus_Ueber_HauptMenu=HMenu Or (UnterMenuAktiv=True And HMenu=HauptMenu) Then
   Color 92,92,92
   Rect X+1,MenuPosY+1,MenuBreit-2,MenuHoch-2,0
   Color 255,255,255
   Rect X+2,MenuPosY+2,MenuBreit-4,MenuHoch-4
  EndIf
  If gesperrt=True Then
   Color 92,92,92
  Else   
   Color 0,0,0
  EndIf
  Text X,MenuPosY+MenuHoch/2,MenuName$,False,True
  X=X+MenuBreit
  Index=IndexNeu+1 
 Next
 
 If UnterMenu_ausgewaehlt>0 Then
  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu_ausgewaehlt))
   IndexNeu=Instr(Menu$(HauptMenu_ausgewaehlt),"|",Index)
   MenuName$=Mid$(Menu$(HauptMenu_ausgewaehlt),Index,IndexNeu-Index)

   If UnterMenu_ausgewaehlt=I Then
    Menu_ausgewaehlt$=Lower$(Menu_ausgewaehlt$+MenuName$)
    Exit
   EndIf

   Index=IndexNeu+1
  Next
 EndIf
 
 If UnterMenuAktiv=True And  UnterMenu<>0 Then
  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu))
   IndexNeu=Instr(Menu$(HauptMenu),"|",Index)

   MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
 
   If Left$(MenuName$,1)="~" Then
    MenuName$=Mid$(MenuName$,2)     
   EndIf   
   MenuName$="  " + MenuName$ + "  "   

   If SubMenuBreit<StringWidth(MenuName$) Then SubMenuBreit=StringWidth(MenuName$)
   Index=IndexNeu+1
  Next
   
  Color 0,0,$D8CCB8
  Rect HauptMenuPos(HauptMenu),MenuHoch,SubMenuBreit,MenuCount(Menu$(HauptMenu))*MenuHoch

  Index=1
  For I=1 To MenuCount(Menu$(HauptMenu))
   IndexNeu=Instr(Menu$(HauptMenu),"|",Index)
   MenuName$=Mid$(Menu$(HauptMenu),Index,IndexNeu-Index)
   If Left$(MenuName$,1)="~" Then
    gesperrt=True
    MenuName$=Mid$(MenuName$,2)   
   Else
    gesperrt=False
   EndIf
 
   MenuName$="  "+MenuName$+"  "
   If UnterMenu=I Then
    Color 0,0,$0A246A
    Rect HauptMenuPos(HauptMenu)+1,MenuHoch*I+1,SubMenuBreit-2,MenuHoch-2
    Color 0,0,$B6BDD2
    Rect HauptMenuPos(HauptMenu)+2,MenuHoch*I+2,SubMenuBreit-4,MenuHoch-4
   EndIf
 
   If MenuName$="  -  " Then
    Color 0,0,0
    Rect HauptMenuPos(HauptMenu)+10,MenuHoch*I+MenuHoch/2,SubMenuBreit-20,1
   Else
    If gesperrt=True  Then
     Color 92,92,92
    Else
     Color 0,0,0
    EndIf 
    Text HauptMenuPos(HauptMenu),MenuHoch*I,MenuName$
   EndIf
   Index=IndexNeu+1
  Next
 EndIf
 Return Menu_ausgewaehlt$
End Function

Function MenuInst()
 Read Menu$(0)
 For I=1 To MenuCount(Menu$(0))
  Read Menu$(I)
 Next
End Function

Function InstHauptMenu()
 Index=1
 For HMenu=1 To MenuCount(Menu$(0))
  IndexNeu=Instr(Menu$(0),"|",Index)
  MenuName$=Mid$(Menu$(0),Index,IndexNeu-Index)
  If Left$(MenuName$,1)="~" Then
   MenuName$=Mid$(MenuName$,2)
  EndIf 
  MenuName$="  "+ MenuName$+"  "
  MenuBreit=StringWidth(MenuName$)
  HauptMenuPos(HMenu)=X
  X=X+MenuBreit
  HauptMenuPos(HMenu+1)=X
  Index=IndexNeu+1
 Next
End Function

Function MenuCount(Count$)
 For I=1 To Len(Count$)
  If Mid$(Count$,I,1)="|" Then Cnt=Cnt+1
 Next
 Return Cnt
End Function

Function Lower$(S$)
 Slen=Len(S)
 If Slen>0 Then
  For P=1 To Slen
   ASCII=Asc(Mid$(S$,P,1))
   If Ascii>64 And Ascii<92 Then
     Ascii=Ascii+32
    ElseIf Ascii=220 Then ;ü
     Ascii=252     
    ElseIf Ascii=196 Then ;ä
     Ascii=228 
    ElseIf Ascii=214 Then ;ö
     Ascii=246
   End If
   R$=R$+Chr$(ASCII)
  Next
  Return R$
 End If
End Function

Data "Datei|~Bearbeiten|Ansicht|Werkzeug|Bild|Effekte|Sequenz|Hilfe|"
Data "Neu|Öffnen|Import|-|Speichern|Speichern unter|Export|-|Eigenschaften|-|Beenden|"
Data "Rückgängig|-|Alles auswählen|Ausschneiden|Kopieren|Einfügen voll|Einfügen transparent|"
Data "Vergrößern|Verkleinern|-|Raster|"
Data "~Markieren|~Stift|Linie|Füllen|Füllen Farbverlauf|~Rechteck|Rechteck voll|Kreis|Kreis voll|Pipette|Farbe tauschen|"
Data "Drehen|Spiegeln horizontal|Spiegeln vertikal|Scrollen Links|Scrollen Rechts|Scrollen Hoch|Scrollen Runter|"
Data "~Weichzeichnen|~Schärfen|~Graustufen|~Invertieren|~Prägen|~Solarisation|~Diffuser|~Skalieren|~Helligkeit|~Kontrast|~Kolorieren|~Überblenden|"
Data "~Animieren|-|Reihenfolge ändern|~Größe ändern|"
Data "Index|Über|Webseite|"

  • Zuletzt bearbeitet von Florian am Sa, Jan 07, 2006 14:23, insgesamt einmal bearbeitet
 

Kry

BeitragSa, Jan 07, 2006 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Respekt: nicht schlecht

otta

BeitragMo, Feb 13, 2006 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...irgendwie hab ich kein Plan wie man dieses Programm benutzt...
AthlonXP 2800+, Radeon 9600XT,160GBHDD,512 MB DDR Ram (neuer Rechner neues Glück;))

Aktuelles Projekt:
momentan Projektlos

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group