Simple question
Blitz3D Forums/Blitz3D Beginners Area/Simple question
| ||
look at this: txt_Gamma = CreateTextField( 150,8,100,20,ChildPanel) ... Gamma_Num = TextFieldText$(txt_Gamma) ... its really simple but shouldnt this work it says invalid gadget handler, and its a global variable :| Need the complete code? |
| ||
I don't use plus, but isn't it mandatory to state the upper left corner first try: txt_Gamma = CreateTextField( 100,8,150,20,ChildPanel) Edit: Ehh, hmm, no. The command probably doesn't work the way I thought at first, dunno what's wrong about it. |
| ||
Which one is the invalid gadget handle? txt_Gamma or ChildPanel? If you're using them in a function where they were created elsewhere, then they both need to be global. Make sure you're not misspelling anything. |
| ||
source:AppTitle "Coalition Legions Game Commander" Global fileopen = False Global Gamma_Num = 0 Global txt_Gamma Const MAXLINES = 127 ; Create Main Window w% = 300;GadgetWidth(Desktop()) - 100 h% = 300;GadgetHeight(Desktop()) - 100 x% = (ClientWidth(Desktop()) - w) / 2 y% = (ClientHeight(Desktop()) - h) / 2 wndMain = CreateWindow(" Coalition Legions Game Commander", x, y, w, h,0,17) ChildPanel = CreatePanel(2,20,280,220,wndMain,0) MainSlid = CreateSlider(275+1,10,15,228,wndMain,2) SaveBut = CreateButton("Save",5,250,60,20,wndMain) ExitBut = CreateButton("Exit",70,250,60,20,wndMain) lab_Gamma = CreateLabel("Gamma :",15,14,60,15,ChildPanel) txt_Gamma = CreateTextField( 150,8,100,20,ChildPanel) CreatePanel(5,30,255,4,ChildPanel,1) ;CreatePanel(135,5,4,255,ChildPanel,1) CreateLabox("Edit",2,7,270,230,30,1,wndMain) Dim dat$(MAXLINES) ReadCFG = ReadFile ("dfv.cfg") linecount=0 If ReadCFG = 0 Then Notify "Unable to access the file needed!" End Else fileopen=True End If ;------------------------- ; READ While Not Eof(ReadCFG) linecount=linecount+1 dat$(linecount)=ReadLine(ReadCFG) If linecount=MAXLINES Exit Wend CloseFile ReadCFG txt_Gamma = Gamma_Num ;------------------------ CreateTimer(60) quit=False Repeat WaitEvent() ; Close Window If EventID()=$803 If EventSource()=wndMain quit=True End If EndIf ; Always Ontop If EventID()=$4001 ; 60 TIMER LOOP ActivateWindow wndMain EndIf ; If EventID()=$401 If EventSource()=SaveBut ; CLICK SAVE BUTTON If fileopen=True Gamma_Num = TextFieldText$(txt_Gamma) dat$(15) = "gamma = " + Gamma_Num ReadCFG=WriteFile("dfv.cfg") For i=1 To linecount WriteLine ReadCFG,dat$(i) Next CloseFile ReadCFG Notify "Save Successful!" EndIf EndIf If EventSource()=ExitBut ; CLICK EXIT BUTTON quit=True EndIf EndIf Until quit ; LABOX CREATION CODE Function CreateLabox(b_text$,b_x,b_y,b_width,b_height,lab_width,lab_style,b_parent) CreatePanel( b_x, b_y, b_width+3, 4, b_parent, 1) ; Top CreatePanel( b_x, b_y+2, 4, b_height, b_parent, 1) ; Left CreatePanel( b_x, b_y + b_height, b_width+4, 4, b_parent, 1) ; Bottom CreatePanel( b_x + b_width, b_y, 4, b_height+3, b_parent, 1) ; Right CreateLabel( b_text$, b_x+10, b_y-6, lab_width, 16, b_parent, lab_style) ; Text End Function Gamma_Num = TextFieldText$(txt_Gamma) Above txt_Gamma is an invalid Gadget.. simpler.. invalid textfield... |
| ||
Look at what you're doing: txt_Gamma = CreateTextField( 150,8,100,20,ChildPanel) This is OK, but then later, you do this: txt_Gamma = Gamma_Num ...which sets txt_gamma to 0, so it's not referring to a textfield anymore. That's why when you do this later: Gamma_Num = TextFieldText$(txt_Gamma) ...you get that error. txt_Gamma is 0. |
| ||
oh stupid me forgot to remove it :| See I was right it was simple ;) |
| ||
I don't know if this is just weird or something but you said "Gamma_Num = TextFieldText$(txt_Gamma)". Shouldn't Gamma_Num be a string? TextFieldText$() returns a string, but Gamma_Num is an integer variable. Gamma_Num is then zero or something, but it is definitly not a string! Is there something I am missing here? -Rich05 |
| ||
The Blitz compiler can do implicit typecasting. In this case, it converts the string of number digits to an integer, automatically. |