okay hier hast du den ganzen code... wollte halt nur die übersicht behalten hier im thema....
Code: Alles auswählen
Enumeration
#Main_Fenster
#Neu_Projekt
EndEnumeration
Enumeration
;Main Fenster
#Editor
#Menue
#Panel
#AddOn
#Projct
EndEnumeration
Global NewList Strings.s()
Global NewList Variabeln.s()
Global Image0
Image0 = CatchImage(0, ?Image0)
DataSection
Image0:
IncludeBinary "IMG\dll.ico"
EndDataSection
Procedure.s GetExePath()
Prg.s = Space(#MAX_PATH)
GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH)
Prg = GetPathPart(Prg)
If (FindString(prg,"\PureBasic\Compilers\", 1))
Prg.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH,@Prg)
EndIf
If Right(Prg, 1) <> "\" : Prg + "\" : EndIf
ProcedureReturn Prg
teste$ = Prg.s
EndProcedure
Procedure.s Setting(Lesen$)
If ReadFile(0,"Setting.inf")
While Eof(0) = 0
T$ = ReadString(0)
If FindString(T$,Lesen$+": ",1)
A$ = RemoveString(T$,Lesen$+": ")
If FindString(A$,":\",1)
CloseFile(0)
ProcedureReturn A$
Else
CloseFile(0)
ProcedureReturn GetExePath()+A$
EndIf
EndIf
Wend
Else
MessageRequester("ERROR","Die Datei 'Setting.inf' konnte leider nicht gefunden Werden! Eine neu Installation könnte das Problem beheben.")
End
EndIf
EndProcedure
;{ Syntay Generator
Procedure.s String_Editor(Typ$,WindowID)
Constand = OpenWindow(#PB_Any,0,0,200,300,"String/Variabel ("+Typ$+") Editor",#PB_Window_WindowCentered,WindowID(WindowID))
If Constand And CreateGadgetList(WindowID(constand))
ListView = ListViewGadget(#PB_Any,2,2,196,240)
TextGadget(#PB_Any,2,242,196,20,"Neu Anlegen:")
StringNeu = StringGadget(#PB_Any,2,256,166,20,"")
ButtonNeu = ButtonGadget(#PB_Any,170,256,25,20,"Neu")
ButtonOK = ButtonGadget(#PB_Any,99,278,97,20,"OK",#PB_Button_Default)
ButtonAbbruch = ButtonGadget(#PB_Any,2,278,97,20,"Abbruch")
EndIf
If Typ$ = "!"
ForEach Strings()
AddGadgetItem(ListView,-1,Strings())
Next
ElseIf Typ$ = "&"
ForEach Variabeln()
AddGadgetItem(ListView,-1,Variabeln())
Next
EndIf
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = ButtonNeu
T$ = GetGadgetText(StringNeu)
If Typ$ = "!"
a = CountString(T$,"!")
b = FindString(T$,"!",1)
c = Len(T$)
If FindString(T$,"!",1)
If a = 1 And b = 1 And c > 1 And c <> 0
ForEach Strings()
If Strings() = T$:d=1:Break:EndIf
Next
If d = 1
MessageRequester("'ERROR'","Der String kann nur einmal in der liste vorhanden sein!"):d = 0
Else
AddElement(Strings())
Strings() = T$
ClearGadgetItemList(ListView)
ForEach Strings()
AddGadgetItem(ListView,-1,Strings())
Next
EndIf
Else
MessageRequester("'Syntax ERROR'","Der Angegebene !String kann in dieser form nicht verwendet werden!")
EndIf
ElseIf c <> 0
T$ = "!"+T$
ForEach Strings()
If Strings() = T$:d=1:Break:EndIf
Next
If d = 1
MessageRequester("'ERROR'","Der String kann nur einmal in der liste vorhanden sein!"):d = 0
Else
AddElement(Strings())
Strings() = T$
ClearGadgetItemList(ListView)
ForEach Strings()
AddGadgetItem(ListView,-1,Strings())
Next
EndIf
EndIf
ElseIf Typ$ = "&"
a = CountString(T$,"&")
b = FindString(T$,"&",1)
c = Len(T$)
If FindString(T$,"&",1)
If a = 1 And b = 1 And c > 1 And C <> 0
ForEach Variabeln()
If Variabeln() = T$:d=1:Break:EndIf
Next
If d = 1
MessageRequester("'ERROR'","Die Variabel kann nur einmal in der liste vorhanden sein!"):d = 0
Else
AddElement(Variabeln())
Variabeln() = T$
ClearGadgetItemList(ListView)
ForEach Variabeln()
AddGadgetItem(ListView,-1,Variabeln())
Next
EndIf
Else
MessageRequester("'Syntax ERROR'","Die Angegebene &Variabel kann in dieser form nicht verwendet werden!")
EndIf
ElseIf c <> 0
T$ = "&"+T$
ForEach Variabeln()
If Variabeln() = T$:d=1:Break:EndIf
Next
If d = 1
MessageRequester("'ERROR'","Die Variabel kann nur einmal in der liste vorhanden sein!"):d = 0
Else
AddElement(Variabeln())
Variabeln() = T$
ClearGadgetItemList(ListView)
ForEach Variabeln()
AddGadgetItem(ListView,-1,Variabeln())
Next
EndIf
EndIf
EndIf
ElseIf GadgetID = ButtonOK
A$ = GetGadgetText(ListView)
If A$ <> ""
CloseWindow(Constand)
ProcedureReturn A$
Else
If Typ$ = "!"
MessageRequester("Fehler","Sie müssen vorerst einen !String aus der liste wählen.")
ElseIf Typ$ = "&"
MessageRequester("Fehler","Sie müssen vorerst eine &Variabel aus der liste wählen.")
EndIf
EndIf
EndIf
EndIf
Until GadgetID = ButtonAbbruch
CloseWindow(Constand)
ProcedureReturn "Exit"
EndProcedure
;} Syntax Generator Ende
Procedure Main()
If OpenWindow(#Main_Fenster,0,0,900,600,"Dll Maker",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_SystemMenu)
If CreateMenu(#Menue, WindowID(#Main_Fenster))
MenuTitle("&Datei")
MenuItem(1,"&Neues Projekt")
MenuItem(2,"Ö&ffnen")
MenuItem(3,"&Speichern")
MenuBar()
OpenSubMenu("&Exportieren")
MenuItem(4,"Text &Editor")
MenuItem(5,"Text &Datei")
CloseSubMenu()
OpenSubMenu("&Inportieren")
MenuItem(6,"Text &Datei")
CloseSubMenu()
MenuBar()
MenuItem(7,"&Beenden")
MenuTitle("Bearbeiten")
MenuItem(8,"&Neuer Befehl")
MenuItem(9,"&Befehl Bearbeiten")
MenuItem(10,"Befehl &Löschen")
MenuItem(11,"Befehl &Kopieren")
MenuItem(12,"Befehl &Einfürgen")
MenuBar()
MenuItem(13,"&Add On verwnden")
MenuItem(14,"Add On &Configurieren")
MenuTitle("&Projekt")
MenuItem(15,"&Testen")
MenuItem(16,"Test &Abbrechen")
MenuBar()
MenuItem(17,"Win. &Rechner")
MenuItem(18,"Win. &Editor")
MenuTitle("&Hilfe")
MenuItem(19,"&Hilfe")
MenuItem(20,"Ü&ber")
EndIf
If CreateGadgetList(WindowID(#Main_Fenster))
ListViewGadget(#Editor,2,2,896,400)
AddGadgetItem(#Editor,-1,"[]")
PanelGadget(#Panel,2,404,896,174)
AddGadgetItem(#Panel, -1, "Add On")
ListIconGadget(#AddOn,2,2,892,170,"",892,#PB_ListIcon_GridLines)
ChangeListIconGadgetDisplay(#AddOn, 0)
AddGadgetItem(#AddOn,-1,"Leer",Image0)
AddGadgetItem(#Panel, -1, "Projekt")
ListIconGadget(#Projct,2,2,892,170,"",892,#PB_ListIcon_GridLines)
ChangeListIconGadgetDisplay(#Projct, 0)
AddGadgetItem(#Projct,-1,"Leer",Image0)
EndIf
EndIf
EndProcedure
Procedure.s NeuProjekt()
Constand_ = OpenWindow(#PB_Any,0,0,350,100,"Neues Projekt",#PB_Window_WindowCentered,WindowID(#Main_Fenster))
If Constand_ And CreateGadgetList(WindowID(Constand_))
TextGadget(1,2,2,100,20,"Projekt Name:")
ProjektName = StringGadget(#PB_Any,2,16,167,20,"Projekt")
TextGadget(2,177,2,100,20,"Ordner Name:")
OrdnerName = StringGadget(#PB_Any,179,16,167,20,"Projekt")
TextGadget(0,2,39,100,20,"Projekt Verzeichnis:")
ProjektVerzeichnis = StringGadget(#PB_Any,2,53,324,20,Setting("Projekt Verzeichnis"))
ButtonVerzeichnis = ButtonGadget(#PB_Any,328,53,20,20,"...")
ButtonOK = ButtonGadget(#PB_Any,278,78,70,20,"OK",#PB_Button_Default)
ButtonAbbruch = ButtonGadget(#PB_Any,200,78,70,20,"Abbrechen")
EndIf
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = ButtonVerzeichnis
EndIf
EndIf
Until GadgetID = ButtonAbbruch
CloseWindow(Constand_)
ProcedureReturn "Exit"
EndProcedure
Main()
Debug NeuProjekt()
Debug String_Editor("&",#Main_Fenster)
Repeat:WaitWindowEvent():ForEver