Buttons für Jedeman

Previous topic - Next topic

mull

Hiermit kann jeder schnell und einfach Buttons für sein Programm verwenden.
Zusätzlich sind noch Funktionen für 3D Boxen und Mittiger TExt dabei.
Enfach kopieren und ausprobieren.

SYSTEMPOINTER TRUE
ED=1
WHILE TRUE
   MOUSESTATE mx, my, mb1, mb2
   IF Menu1=0 AND Butt("Hauptmenue", 200, 100, 200, 50, RGB(50,150,200))
     Menu1 = 1
   ELSE
     IF Menu1=0 AND Butt("ENDE", 200, 200, 100, 50, RGB(50,150,200))
        END
     ENDIF  
   ENDIF
   IF Menu1
     IF Butt("Menue Schliessen", 250, 300, 250, 40, RGB(50,150,200))
       Menu1 = 0; qw=0
     ELSE
       IF Butt("Editor " + ED, 250, 150, 150, 30, RGB(50,150,200))
         ED = -ED
       ELSE
         IF Butt("Spielerei", 250+qw, 200, 190, 30, RGB(50,150,200))
           INC qw, 10
         ENDIF
       ENDIF
     ENDIF
   ENDIF

SHOWSCREEN
WEND
//
//
// ------------------------------------------------------------- //
// -=#  BOX  #=-
// ------------------------------------------------------------- //
FUNCTION Box: X, Y, W, H, Col, Press
  LOCAL Fa, Dunkel = RGB(22,22,22), Hell = RGB(244,244,244)
  INC W, X; INC H, Y
  IF Press = 1
    Fa=Dunkel; Dunkel= Hell; Hell=Fa
  ENDIF
  FILLRECT X, Y, W, H, Col
  DRAWLINE X, Y, W, Y, Hell   // oben
  DRAWLINE W, Y, W, H, Dunkel // rechts
  DRAWLINE X, H, W, H, Dunkel // unten
  DRAWLINE X, Y+1, X, H, Hell // links
ENDFUNCTION // BOX
// ------------------------------------------------------------- //
// -=#  BUTT  #=-
// ------------------------------------------------------------- //
FUNCTION Butt: Tex$, X, Y, W, H, Col
   //Butt wird immer Mittig angezeigt
   //PRINT mb1+" , "+ButtKlick+ " BX: "+ ButtMausX  + " BX: "+ ButtMausX ,0,30
   DEC X, W/2; DEC Y, H/2
   Box(X, Y, W, H, Col, 0) ; Text(Tex$, X+W/2, Y+H/2) // Normal
    IF istdrin(X, Y, W, H)  
       IF mb1=0 AND ButtKlick = 0
         ALPHAMODE 0.15 ; Box(X, Y, W, H, Col, 0)  // Hoverefekt
       ELSE  // gedrückt
          ALPHAMODE 0 ; Box(X, Y, W, H, Col, 1) ; Text(Tex$, X+W/2, Y+H/2) // Normal
          ALPHAMODE 0.15 ; Box(X, Y, W, H, Col, 0)  // Hoverefekt
          ButtKlick = 1 ; Press = 1
          ButtMausX = mx; ButtMausY = my
          IF mb1 = 0  //Maus losgelassen
             ButtKlick = 0; ButtMausX = -1 ; ButtMausY = -1
             PLAYSOUND (Sound, 0, .95)
             RETURN 1
          ENDIF
       ENDIF
    ENDIF
    ALPHAMODE 0
    IF mb1 = 0 AND ButtKlick = 1 AND ButtMausX <> mx AND ButtMausY <> my
       ButtKlick = 0; ButtMausX = -1 ; ButtMausY = -1
    ENDIF
ENDFUNCTION // BUTT
// ------------------------------------------------------------- //
// -=#  ISTDRIN  #=-
// ------------------------------------------------------------- //
FUNCTION istdrin: X, Y, W, H
   IF (mx >= X AND mx <= X + W) AND (my >= Y  AND my <= Y + H) THEN RETURN 1
ENDFUNCTION // ISTDRIN
// ------------------------------------------------------------- //
// -=#  TEXT  #=-  Mittiger Text
// ------------------------------------------------------------- //
FUNCTION Text: Text$, X, Y
  GETFONTSIZE W, H
  W = W * LEN(Text$)
  PRINT Text$, X - W / 2 , Y - H / 2   
ENDFUNCTION // TEXT
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Schranz0r

Hab ich auch schon gemacht,


Guckst du da:  http://www.styleattax.de/phpBB/viewtopic.php?t=5

Ist aber eine Simple Variante
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Yo. Cool. Ich verwende trotzdem meistens lieber DDgui, weil's bisserl mehr bietet.

Schranz0r

Jow die DDgui können aber net alle benutzen, da wird man ja blöd im Kopf :D....   zu viele Befehle, bin froh das die net in der Befehlreferenz drin steht, dann hätte ich ja keinen durchblick mehr =)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Hä!?:
Das ist doch nur:
DDGui_PushDialog()
DDGui_Text / DDgui_Button / usw.. (Das Teil machen)

und dann:
DDGui_Show();
DDgui_Get("object_TEXT")
DDGui_Set("object_TEXT", "neuer Text")

also - wie kann GUI einfacher sein!?

Schranz0r

Da wär ein Grundlagentutorial net schlecht, von einen der sich da auskennt.
Ich bin davor gestanden, wie bestellt und nicht abgeholt XD
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard