Buttons Erstellen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

klin

Betreff: Buttons Erstellen?

BeitragMo, Jan 01, 2007 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo erstmal,
Dies ist mein aller erste Frage in diesem Forum und daher hoffe ich nicht das dieses Tema schon giebt. Also... Ich hab schon sehr viel über BB3D gelernt, doch dann wollte ich mir mal so ein Prog. machen. Und tu einem Programm gehört ja normalerweise Buttons. Ich hab schon im Google nachgeschaut aber habe dort nur ein ganz Komplitztirtes Tutorial gefunden Sad
Also kamm ich auf die Idee euch mal zufragen ob ihr mir nicht doch sagen könnt wie man in BB3D Buttons erstell und sonst nix.
Bitte um Antwort...
MFG
Klin

the FR3AK

BeitragMo, Jan 01, 2007 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hier hilft vielleicht:
https://www.blitzforum.de/upload/file.php?id=961

BladeRunner

Moderator

BeitragMo, Jan 01, 2007 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Pdd

BeitragMo, Jan 01, 2007 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der Passende Thread dazu:
https://www.blitzforum.de/foru...hp?t=21374
Lieber Apfel als Birne.
 

Todeskop

BeitragMo, Jan 01, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst es auch mit einem userlib machen, sieht aber nicht so gut wie bei
pdd aus... link zu userlib such..... hmmm link hab ich gerad nicht aber vieleicht suchst du einfach nach winblitz3d dann findest du es

klin

Betreff: ???

BeitragDi, Jan 02, 2007 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich hab mir das winblitz3d gedownloaded. Das gute daran ist, da sind stinknormale buttons leicht (English) erklärt. Doch wenn ich einer(oder meiner) Projekte Starte kommt immer:

Fenster:

Error! X
----------------------
User lib not found
OK

Was kann ich tun???
Bitte um Antwort und THX
MFG
Klin

Smily

BeitragDi, Jan 02, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
userlib not found -> Das sagt doch schon alles, du musst die Userlib noch einbinden.

Hier noch eine kleine Funktion von mir um Buttons zu machen:
Du Zeichnest Buttons mit Drawbutton ein, die Funktion gibt auch gleich noch zurück, ob der Button geklickt wurde

Code: [AUSKLAPPEN]
Function drawbutton(x,y,t$)
 If ImageRectCollide(button,x,y,0,mousex(),mousey(),1,1)
  DrawImage buttonov,x,y
  If Mousedown(1) Then klick = 1
 Else
  DrawImage button,x,y
 End If
 Text X,Y, t$,1,1
 If klick=1 Then Return 1
End Function


du musst noch die Variablen Button und Buttonov gobal machen und dort bilder rein laden

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ToeB

BeitragDi, Jan 02, 2007 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily0412 hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
Function drawbutton(x,y,t$)
 If ImageRectCollide(button,x,y,0,mousex(),mousey(),1,1)
  DrawImage buttonov,x,y
  If Mousedown(1) Then klick = 1
 Else
  DrawImage button,x,y
 End If
 Text X,Y, t$,1,1
 If klick=1 Then Return 1
End Function




bei den Variablen X und Y (bei -> Text X,Y,...) Da muss man noch zb
Code: [AUSKLAPPEN]

Text X+50,Y+50,t$,1,1

...oder wie groß man den botton hat
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Smily

BeitragDi, Jan 02, 2007 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder man läd die Bilder einfach mit mithandle Rolling Eyes
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ToeB

BeitragDi, Jan 02, 2007 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
mh...das währe einfacher.Gut ! dann macht es so Very Happy !
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

klin

BeitragDi, Jan 02, 2007 14:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Crack93 hat Folgendes geschrieben:
Smily0412 hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
Function drawbutton(x,y,t$)
 If ImageRectCollide(button,x,y,0,mousex(),mousey(),1,1)
  DrawImage buttonov,x,y
  If Mousedown(1) Then klick = 1
 Else
  DrawImage button,x,y
 End If
 Text X,Y, t$,1,1
 If klick=1 Then Return 1
End Function




bei den Variablen X und Y (bei -> Text X,Y,...) Da muss man noch zb
[code]drawbutton 10, 10, t$(oder wie meinst du das mit dem "t$"?)
oder
Text X+50,Y+50,t$,1,1 ??? doch was bedeuten die letzten beiden ziffern? und
Text X+50,Y+50,t$,1,1

...oder wie groß man den botton hat

Also... wénn ich das jetzt richtig verstanden habe, muss man z.B.:

[code] DrawButton(10, 10, t$)[/code]
so 1ste Frage:
mit oder ohne Klammern?
2te Frage :
was bedeutet "t$"?
[code]Text X+10,Y+10t$,1,1 [/code]
so 1ste Frage:
am schluss ",1,1" was bedeutet das?
2te Frage :
Wie kann man die Userlib einbinden?
THX
MFG
Klin

Smily

BeitragDi, Jan 02, 2007 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
zu 1. und 2. Probiers doch einfach aus
Funktionen, also befehle welche etwas zurückgeben werden mit Klammern geschrieben. Andere nicht.
Drawbutton kannst du theoretisch sowohl mit als auch ohne klammern schreiben.

Also
Drawbutton 5,5,"Spiel starten"
oder
var=Drawbutton(5,5,"Spiel starten")
t$ ist der Text, welche auf dem Button stehen soll

Der Textbefehl schreibt nur etwas auf dem Bildschirm.
Die letzten Beiden zahlen stehen dafür, dass der Text Horizontal und Vertikal zentriert wird.


und nun zu den Userlibs.
Wenn du eine Userlib einbinden willst hast eine Decls-datei und meist auch eine .dll (es ei denn die Befehle werden direkt aus einer System-dll geladen)

die Decls-datei kommt einfach in den Ordner userlibs in deinem Blitzbasic-verzeichniss.

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ToeB

BeitragDi, Jan 02, 2007 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
1.:das t$ ist die Varialble die du in der Function verwenden kannst.
2.: Die klammern musst du nicht machen, kannst du aba.
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

klin

Betreff: Test!!!

BeitragDi, Jan 02, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich jetzt zum Test:
Code: [AUSKLAPPEN]
Graphics 300, 260, 16, 2
SetBuffer BackBuffer()

Function drawbutton(x,y,t$)
 If ImageRectCollide(button,x,y,0,MouseX(),MouseY(),1,1)
  DrawImage buttonov,x,y
  If MouseDown(1) Then klick = 1
 Else
  DrawImage button,x,y
 End If
 Text X,Y, t$,1,1
 If klick=1 Then Return 1
End Function

Drawbutton 5,5,"Spiel starten"

End

schreibe kommt :
Momory access violation
Was muss/kann ich tun?
Bitte um Hilfe
THX
MFG
Klin

klin

BeitragDi, Jan 02, 2007 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily0412 hat Folgendes geschrieben:


du musst noch die Variablen Button und Buttonov gobal machen und dort bilder rein laden

Gruß, Smily0412


Sry war mein Fehler habs TOTAL Vergessen Embarassed doch wie kann man die:
Smily0412 hat Folgendes geschrieben:
Variablen Button und Buttonov gobal

Schreiben? Und wie meinst du das mit den "bilder rein laden"?
Was ich überhaupt will ist:
einfache buttons SCHREIBEN!!!
THX
MFG
Klin

pixelshooter

BeitragMi, Jan 03, 2007 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Type gui         ;GUI Type // field info$[100] = informationstext max 100 Zeilen //typen:   1 = button
   Field typ
   Field active
   Field x
   Field y
   Field w
   Field h
   Field transparenz = 0
   Field img[4]
   Field font
   Field inh$
   Field info$[100]
   Field boole = False
End Type

Dim gui.gui(10000)
Global MarkedGUI = 1
Global maxGUI
Global MouseDownBoole

Function createGUI(nr,x,y,typ,image,inhalt$ = "",font = 0,image2 = 0,image3 = 0,image4 = 0,transparenz = 100)
   DrawImage image,x,y
   SetFont font
   Color 0,0,0
   Text x + ImageWidth(image) / 2,y + ImageHeight(image) /2,inhalt$,1,1
   If Not nr = 0
      gui.gui(nr) = New gui
      gui(nr)\typ = typ
      gui(nr)\x = x
      gui(nr)\y = y
      gui(nr)\w = ImageWidth(image) + x
      gui(nr)\h = ImageHeight(image) + y
      gui(nr)\img[1] = image
      gui(nr)\img[2] = image2
      gui(nr)\img[3] = image3
      gui(nr)\img[4] = image4
      gui(nr)\font   = font
      gui(nr)\inh$   = inhalt$
      If nr > maxGUI Then maxGUI = maxGUI + 1
   EndIf
End Function

Function IfGUI(nr)
   If MouseX() > gui(nr)\x And MouseY() > gui(nr)\y And MouseX() < gui(nr)\w And MouseY() < gui(nr)\h
      If MouseDown(1)
         mousedownboole = 1
         DrawImage gui(nr)\img[4], gui(nr)\x, gui(nr)\y      
      Else DrawImage gui(nr)\img[2], gui(nr)\x, gui(nr)\y
      EndIf
   Else
      mousedownboole = 0
   If markedGUI = nr
      DrawImage gui(nr)\img[3], gui(nr)\x, gui(nr)\y
   Else DrawImage gui(nr)\img[1], gui(nr)\x, gui(nr)\y
   EndIf
   EndIf
   SetFont gui(nr)\font
   Text gui(nr)\x + ImageWidth(gui(nr)\img[1]) / 2,gui(nr)\y + ImageHeight(gui(nr)\img[1]) /2,gui(nr)\inh$,1,1
   If gui(nr)\boole Or mouseDownBoole = 1 Then Return True
End Function

Function keyboardGUI()
   If KeyHit(205) Or KeyHit(208)Then markedGUI = markedGUI + 1 ElseIf KeyHit(200) Or KeyHit(203) Then markedGUI = markedGUI - 1
   If markedGUI <= 0 Then markedGUI = maxGUI
   If markedGUI > maxGUI Then markedGUI = 1
   If KeyHit (28) Or KeyHit(156) Then gui(markedGUI)\boole = True
End Function   


ihr braucht jetz nich sagen wie schlecht das is der code is schon älter.
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Firstdeathmaker

BeitragMi, Jan 03, 2007 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hier nen kleines Beispiel wie du Buttons realisieren kannst:

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()


TButton_Create("MeinButton",10,10,100,30)
TButton_Create("MeinAndererButton",160,10,100,30)

Global MX%
Global MY%

Repeat
Cls
   Mouse_Update()

   TButton_Draw()
   Mouse_Draw()
   If MouseHit(1)
      Local button$ = TButton_GetKlicked(MX,MY)
      Select button$
      
         Case "MeinButton"
            RuntimeError ("Du hast den linken Button gedrückt")
            
         Case "MeinAndererButton"
            RuntimeError ("Du hast den rechten Button gedrückt")
      
      End Select
   EndIf

Flip
Until KeyHit(1)
End



Function Mouse_Update()
   MX = MouseX()
   MY = MouseY()
End Function

Function Mouse_Draw()
   Rect MX,MY,5,5
End Function



Type TButton
   Field Name$
   Field X#   ;XPosition
   Field Y#   ;YPosition
   Field W#   ;Breite
   Field H#   ;Höhe
End Type

Function TButton_Create.TButton(Name$,X#,Y#,W#,H#)
   Local b.TButton = New TButton
   b\Name = Name
   b\X = X
   b\Y = Y
   b\W = W
   b\H = H
   Return b
End Function


Function TButton_GetKlicked$(mx#, my#)
   For b.TButton = Each TButton
      If mx>b\X And mx<b\X+b\W
      If my>b\Y And my<b\Y+b\H
         Return b\Name
      EndIf
      EndIf
   Next
End Function

Function TButton_Draw()
   For b.TButton = Each TButton
      Rect b\X,b\Y,b\W,b\H
   Next
End Function
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Firstdeathmaker

BeitragMi, Jan 03, 2007 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder wenn du die Buttons mit Schrift haben willst:

Code: [AUSKLAPPEN]
Function TButton_Draw()
   For b.TButton = Each TButton
      Rect b\X,b\Y,b\W,b\H,0
      Text b\X+b\W/2,b\Y+b\H/2,b\Name,1,1
   Next
End Function
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group