Seite 1 von 1

Problem mit MDI und EditorGadget!

Verfasst: 02.03.2006 18:08
von FISCHAUGE
Hi, ich habe ein kleines Problem mit dem MDI Gadget und denn childwindows!

Zuerst einmal der code:

Code: Alles auswählen

If OpenWindow(0,0,0,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"")
    If CreateGadgetList(WindowID(0)) And CreateMenu(0, WindowID(0))
      MenuTitle("Datei")
      OpenSubMenu("Neu")
      MenuItem(0,"Dokument")
      CloseSubMenu()
  MenuBar()
      MenuItem(2000,"Laden")
      MenuItem(3000, "Speichern")

CreateStatusBar(1000, WindowID())
AddStatusBarField(120)
AddStatusBarField(80)

          MDIGadget(0, 0, 0, 0, 0, 2, 2, #PB_MDI_AutoSize)

CloseGadgetList()
             
      
      
 Repeat
  EventID = WaitWindowEvent()
If EventType()=#PB_EventType_CloseItem
RemoveGadgetItem(0, GetGadgetState(0))
EndIf



x = CountGadgetItems(0)
d$ = Str(x)

StatusBarText(1000, 0, "Offenen Fenster: " + d$)
datum$=FormatDate("%dd.%mm.%yyyy",Date())
StatusBarText(1000, 1,datum$)

  If EventID = #PB_Event_CloseWindow 
    Quit = 1
  EndIf

If EventID = #PB_EventMenu

If EventMenuID()=0
x = CountGadgetItems(0)
x$ = Str(x)
AddGadgetItem(0,-1,"Fenster: "+x$)
EditorGadget(CountGadgetItems(0),0,0,1275,935)
EndIf



If EventMenuID()=2000
load$=OpenFileRequester("Dokument Laden","","Text (*.txt)|*.txt;|NFE Dokument (*.nfe)|*.nfe;",0)
name$=GetFilePart(load$)
d=ReadFile(1, load$) 
If d 
laden$=""
While Eof(1)=0 
laden$ = laden$+ReadString()+Chr(13)+ Chr(10) 
Wend 
AddGadgetItem(0,-1,name$)
EditorGadget(CountGadgetItems(0),0,0,1275,935)
SetGadgetText(CountGadgetItems(0),"")
SetGadgetText(CountGadgetItems(0), laden$) 
CloseFile(1)
EndIf
EndIf
 EndIf


 If EventMenuID()=3000
 save$=SaveFileRequester("Dokument Speichern unter...","","Text (*.txt)|*.txt;|NFE Dokument (*.nfe)|*.nfe;",0)
 If OpenFile(2,save$+".txt")

text$=GetGadgetText(GetGadgetItemText(0,GetGadgetState(0),""))
 WriteStringN(text$)
Else
EndIf
EndIf


  
Until Quit=1

EndIf
End
EndIf

So durch anklicken des Menü 1, öffnet sich ein neues Fenster, mit einem Editor Gadget, die ID für das Editor Gadget, ist die anzahl der aktuellen Offenen Fenster (= 1 Fenster, EditorGadget(1) )
Das laden etc.. funktioniert einwandfrei, wenn ich nun aber ein neues Fenster öffnen, und etwas in das Editor Gadget reinschreibe, anschließend speicherer, schreibt er immer vor das erste zeichen, die ID des EditorGadget mit rein!
Wie bekomme ich das gelöst?

Verfasst: 02.03.2006 20:03
von roherter
Erstmal solltest du nich dem menu und denn fenstern und dem editorgadget die Id 0 geben sondern eher so!
Hauptfenster 0
Menu 1
Mdi 2
editorgadget 3

Verfasst: 02.03.2006 20:49
von ts-soft
roherter hat geschrieben:Erstmal solltest du nich dem menu und denn fenstern und dem editorgadget die Id 0 geben sondern eher so!
Hauptfenster 0
Menu 1
Mdi 2
editorgadget 3
Verstehe ich nicht?
Fenster:
Hauptfenster 0

Menu:
Menu 0

Gadgets:
MDIGadget 0
EditorGadget 1

Aber Konstanten in einer Enumeration verwenden ist übersichtlicher.
Für Gadgets in MDIChilds ist die Nutzung von #PB_Any sinnvoll.