Seite 1 von 1

Edit-Gadget Frage

Verfasst: 17.09.2005 10:49
von Tafkadasom2k5
Jaaa ih bins mal wieder und diesmal wieder mit nem Code der ned funzt...

Korrigiert ihn bitte....
Wenn man auf "Bool" klickt(soweit binsch erst), soll EINMAL der BOOL-Befehl im EditorGadget erscheinen-er erscheint aber 2 mal?
Ich habe PB 3.91.

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1360

Global MyIF.s
Global MyELSE.s
Global MyEND.s
Global MyWHILE.s
Global MyWEND.s
Global MyFOR.s
Global MyNEXT.s
Global MyBOOL.s
Global MyRETURN.s
Global MyBOOLEND.s

;- Window Constants
;
Enumeration
  #Window_Haupt
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration


;- Gadget Constants
;
Enumeration
  #Combo_0
  #Listview_0
  #Editor_Voids
  #Button_Save
  #Button_If
  #Button_For
  #Button_While
  #Button_Void
  #Button_Bool
  #Frame3D_1
  #Frame3D_2
  #Frame3D_3
  #Text_0
  #Text_1
  #Frame3D_4
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Franklin Gothic Medium", 14)

Procedure ChangeLang(Sprache.s)
  If ReadFile(1,"Einstellungen.cfg")

    While Eof(1)=0
      Test.s = ReadString()
  
      If FindString(Test,Sprache,1)
        MyIF = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyELSE =  ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyWHILE = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyWEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyFOR = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyNEXT = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyBOOL = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyRETURN = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyBOOLEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
      EndIf
      
    Wend 
   CloseFile(1)  
  EndIf
EndProcedure
  
      

Procedure Open_Window_0()
  If OpenWindow(#Window_Haupt, 258, 64, 647, 549,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , "Simple Void Editor")
    If CreateMenu(#MenuBar_0, WindowID())
      MenuTitle("Datei")
      MenuItem(1, "Öffnen"   +Chr(9)+"Ctrl+O") 
      MenuItem(2, "Speichern"   +Chr(9)+"Ctrl+S")  
      MenuItem(3, "Schliessen"  +Chr(9)+"Ctrl+C") 
      
      MenuTitle("Preferences")
      MenuItem(4, " .cfg Datei suchen")
      MenuItem(5, "Sprache hinzufügen")
      MenuTitle("Info")
    EndIf
    
    If CreateGadgetList(WindowID())
      ComboBoxGadget(#Combo_0, 20, 10, 120, 120)
      ListViewGadget(#Listview_0, 20, 50, 120, 330)
      EditorGadget(#Editor_Voids, 160, 50, 460, 330)
      SetGadgetFont(#Editor_Voids, FontID1)
      ButtonGadget(#Button_Save, 520, 440, 90, 30, "Save")
      ButtonGadget(#Button_If, 260, 400, 80, 30, "If...Then...Else")
      ButtonGadget(#Button_For, 140, 430, 80, 30, "For")
      ButtonGadget(#Button_While, 260, 460, 80, 30, "While")
      ButtonGadget(#Button_Void, 20, 460, 80, 30, "Void")
      ButtonGadget(#Button_Bool, 20, 400, 80, 30, "Boolean")
      Frame3DGadget(#Frame3D_1, 10, 380, 100, 120, "Prozeduren")
      Frame3DGadget(#Frame3D_2, 130, 380, 100, 120, "Schleifen")
      Frame3DGadget(#Frame3D_3, 240, 380, 120, 120, "Abfragen")
      TextGadget(#Text_0, 150, 10, 150, 20, "<----    Sprache auswählen")
      TextGadget(#Text_1, 300, 20, 130, 30, "Void Editierfeld")
      SetGadgetFont(#Text_1, FontID1)
      Frame3DGadget(#Frame3D_4, 500, 420, 130, 70, "Save Void")
      
    EndIf
  EndIf
EndProcedure


Procedure StartVorgang()
If ReadFile(1,"Einstellungen.cfg")
 
  

  
  
Else 
  
  If OpenFile(1,"Einstellungen.cfg")
    WriteStringN("--Java--")
    WriteStringN("if(%Bedingung)<BR>{" )
    WriteStringN("}<BR>Else<BR>{")
    WriteStringN("}")
    WriteStringN("while(%Bedingung)<BR>{")
    WriteStringN("}")
    WriteStringN("for(%IntVariable;%Ziel < %Variable; i+%Inkrementator)<BR>{")
    WriteStringN("}")
    WriteStringN("boolean %name()<BR>{<BR>")
    WriteStringN("<BR>}<BR>return %Value<BR>}")
    WriteStringN("}")
  EndIf

EndIf


CloseFile(1)

  
Open_Window_0()
  
OpenFile(1,"Einstellungen.cfg")

While Eof(1) = 0
  Test.s = ReadString()
  If FindString(Test,"--",0)
    AddGadgetItem(#Combo_0,-1,Test)
  EndIf
Wend


SetGadgetState(#Combo_0,0)
CloseFile(1)
ChangeLang("--Java--")


EndProcedure

Procedure BooleanProce()
  SetGadgetText(#Editor_Voids,GetGadgetText(#Editor_Voids) + MyBOOL + MyBOOLEND)
EndProcedure

Procedure VoidProce()
EndProcedure
Procedure ForProce()
EndProcedure
Procedure IfProce()
EndProcedure
Procedure WhileProce()
EndProcedure
Procedure SaveProce()
EndProcedure


StartVorgang()

Repeat

  EventID = WaitWindowEvent()

  If EventID = #PB_Event_CloseWindow
    quit = 1
  EndIf

  EvGadgetID = EventGadgetID()
  
  Select EvGadgetID
    Case #Button_Bool
      BooleanProce()
    Case #Button_Void
      VoidProce()
    Case #Button_For
      ForProce()
    Case #Button_If
      IfProce()
    Case #Button_While
      WhileProce()
    Case #Button_Save
      SaveProce()
  EndSelect


  EvGadgetID = 0
  EventID = 0
      


Until quit = 1

Merci im Vorraus,
Der Marc :allright:

Verfasst: 17.09.2005 10:58
von zigapeda
Der code ist richtig nur du klickst zu lange. ein kurzes delay würde helfen.
oder du programmierst eine variable die auf true gesetzt wird wenn man zum ersten mal drauf klickt und erst nach dem loslassen wieder auf false geht und eben die procedure nur aufgerufen wird wenn die variable false ist.

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1360

Global MyIF.s
Global MyELSE.s
Global MyEND.s
Global MyWHILE.s
Global MyWEND.s
Global MyFOR.s
Global MyNEXT.s
Global MyBOOL.s
Global MyRETURN.s
Global MyBOOLEND.s

;- Window Constants
;
Enumeration
  #Window_Haupt
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration


;- Gadget Constants
;
Enumeration
  #Combo_0
  #Listview_0
  #Editor_Voids
  #Button_Save
  #Button_If
  #Button_For
  #Button_While
  #Button_Void
  #Button_Bool
  #Frame3D_1
  #Frame3D_2
  #Frame3D_3
  #Text_0
  #Text_1
  #Frame3D_4
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Franklin Gothic Medium", 14)

Procedure ChangeLang(Sprache.s)
  If ReadFile(1,"Einstellungen.cfg")

    While Eof(1)=0
      Test.s = ReadString()
 
      If FindString(Test,Sprache,1)
        MyIF = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyELSE =  ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyWHILE = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyWEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyFOR = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyNEXT = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyBOOL = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyRETURN = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
        MyBOOLEND = ReplaceString(ReadString(),"<BR>",Chr(13) + Chr(10))
      EndIf
     
    Wend
   CloseFile(1) 
  EndIf
EndProcedure
 
     

Procedure Open_Window_0()
  If OpenWindow(#Window_Haupt, 258, 64, 647, 549,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , "Simple Void Editor")
    If CreateMenu(#MenuBar_0, WindowID())
      MenuTitle("Datei")
      MenuItem(1, "Öffnen"   +Chr(9)+"Ctrl+O")
      MenuItem(2, "Speichern"   +Chr(9)+"Ctrl+S") 
      MenuItem(3, "Schliessen"  +Chr(9)+"Ctrl+C")
     
      MenuTitle("Preferences")
      MenuItem(4, " .cfg Datei suchen")
      MenuItem(5, "Sprache hinzufügen")
      MenuTitle("Info")
    EndIf
   
    If CreateGadgetList(WindowID())
      ComboBoxGadget(#Combo_0, 20, 10, 120, 120)
      ListViewGadget(#Listview_0, 20, 50, 120, 330)
      EditorGadget(#Editor_Voids, 160, 50, 460, 330)
      SetGadgetFont(#Editor_Voids, FontID1)
      ButtonGadget(#Button_Save, 520, 440, 90, 30, "Save")
      ButtonGadget(#Button_If, 260, 400, 80, 30, "If...Then...Else")
      ButtonGadget(#Button_For, 140, 430, 80, 30, "For")
      ButtonGadget(#Button_While, 260, 460, 80, 30, "While")
      ButtonGadget(#Button_Void, 20, 460, 80, 30, "Void")
      ButtonGadget(#Button_Bool, 20, 400, 80, 30, "Boolean")
      Frame3DGadget(#Frame3D_1, 10, 380, 100, 120, "Prozeduren")
      Frame3DGadget(#Frame3D_2, 130, 380, 100, 120, "Schleifen")
      Frame3DGadget(#Frame3D_3, 240, 380, 120, 120, "Abfragen")
      TextGadget(#Text_0, 150, 10, 150, 20, "<----    Sprache auswählen")
      TextGadget(#Text_1, 300, 20, 130, 30, "Void Editierfeld")
      SetGadgetFont(#Text_1, FontID1)
      Frame3DGadget(#Frame3D_4, 500, 420, 130, 70, "Save Void")
     
    EndIf
  EndIf
EndProcedure


Procedure StartVorgang()
If ReadFile(1,"Einstellungen.cfg")
 
 

 
 
Else
 
  If OpenFile(1,"Einstellungen.cfg")
    WriteStringN("--Java--")
    WriteStringN("if(%Bedingung)<BR>{" )
    WriteStringN("}<BR>Else<BR>{")
    WriteStringN("}")
    WriteStringN("while(%Bedingung)<BR>{")
    WriteStringN("}")
    WriteStringN("for(%IntVariable;%Ziel < %Variable; i+%Inkrementator)<BR>{")
    WriteStringN("}")
    WriteStringN("boolean %name()<BR>{<BR>")
    WriteStringN("<BR>}<BR>return %Value<BR>}")
    WriteStringN("}")
  EndIf

EndIf


CloseFile(1)

 
Open_Window_0()
 
OpenFile(1,"Einstellungen.cfg")

While Eof(1) = 0
  Test.s = ReadString()
  If FindString(Test,"--",0)
    AddGadgetItem(#Combo_0,-1,Test)
  EndIf
Wend


SetGadgetState(#Combo_0,0)
CloseFile(1)
ChangeLang("--Java--")


EndProcedure

Procedure BooleanProce()
  SetGadgetText(#Editor_Voids,GetGadgetText(#Editor_Voids) + MyBOOL + MyBOOLEND)
EndProcedure

Procedure VoidProce()
EndProcedure
Procedure ForProce()
EndProcedure
Procedure IfProce()
EndProcedure
Procedure WhileProce()
EndProcedure
Procedure SaveProce()
EndProcedure


StartVorgang()

Repeat

  EventID = WaitWindowEvent()

  If EventID = #PB_Event_CloseWindow
    quit = 1
  EndIf

  EvGadgetID = EventGadgetID()
 
  Select EvGadgetID
    Case #Button_Bool
      BooleanProce()
      Delay(10)
    Case #Button_Void
      VoidProce()
    Case #Button_For
      ForProce()
    Case #Button_If
      IfProce()
    Case #Button_While
      WhileProce()
    Case #Button_Save
      SaveProce()
  EndSelect


  EvGadgetID = 0
  EventID = 0
     


Until quit = 1
sollte es immer noch nicht gehen einfach das delay erhöhen

Verfasst: 17.09.2005 11:20
von Tafkadasom2k5
Habe das delay an verschiedenen Stellen ausprobiert...Hilft leider ned die Bohne....
Selbst ned bei nem delay von 100...Die beiden Texte erscheinen wieder und das Fenster is 100MS unbrauchbar... :roll:

Vielleichtn anderen Vorschlag?

EDIT:
Zusatzfragen:
Kennt jemand die Codes wie man den Text innem Editor Gadget formatiert(Farbe,Grösse, etc)?
Und was muss man machen damit sich die Gadgets automatisch der Grösse des Fensters anpassen?(wenn der User sie per Size-Gagdet verändert).[/b]

Verfasst: 17.09.2005 11:29
von Kiffi
Vergiss das mit dem Delay! Das ist Quatsch.

Stell' Deine Event-Schleife mal ein wenig um:

Code: Alles auswählen

Repeat
  
  EventID = WaitWindowEvent()
  EvGadgetID = EventGadgetID()
  
  Select EventID
    
    Case #PB_Event_CloseWindow
      quit = 1
      
    Case #PB_Event_Gadget
      
      Select EvGadgetID
        Case #Button_Bool
          BooleanProce()
        Case #Button_Void
          VoidProce()
        Case #Button_For
          ForProce()
        Case #Button_If
          IfProce()
        Case #Button_While
          WhileProce()
        Case #Button_Save
          SaveProce()
      EndSelect
      
  EndSelect
  
Until quit = 1
Grüße ... Kiffi

Verfasst: 17.09.2005 11:31
von zigapeda
[Edit]ne wird so auch nicht gehen (nicht kiffis code sondern der der hier vorher drin stand)[/Edit]

Verfasst: 17.09.2005 11:35
von Tafkadasom2k5
Danke für deine Bemühungen bisher-aber funzen tuts trotzdem ned...:(
Sitzt da jetzt schon ewig an diesem blöden Problem.... :cry:

Hast du noch Tips für meine Anderen fragen die ich im letzten post stellte?

Gr33tz
Der Marc

EDIT
OK ich probier Kiffis eben aus..

Verfasst: 17.09.2005 11:40
von Tafkadasom2k5
> Wie bringt man Gadgets dazu sich dynamisch an den SizeGadget anzupassen?

nun, da gibt's zwei Möglichkeiten. Entweder Du 'resized' Deine Gadgets per
Hand, wenn Du ein #PB_Event_SizeWindow - Event bekommst, oder aber Du
verwendest die PureRESIZE-Library von Gnozal aus dem englischen Forum.

Grüße ... Kiffi