Seite 1 von 1

ExplorerTreeGadget refreshen

Verfasst: 22.01.2005 01:59
von Calloway
Hallo!

Ich habe da Problem, dass nach einem "CreateDirectory"-Befehl das neu erstellte Verzeichnis nicht automatisch im ExplorerTreeGadget angezeigt wird. Wie kann ich dieses Gadget "refreshen", dass wieder alle Verzeichnisse angezeigt werden?

--
Gruß, Callo.

Verfasst: 22.01.2005 02:46
von nicolaus
schau mal in der hilfe bei EventTyp() nach #PB_EventType_Change das dürfte das sein was dir hilft denke ich mal.

Verfasst: 22.01.2005 11:27
von Laurin
nicolaus: Mit #PB_EventType_Change bekommt man nur mit, ob sich was auf deinem Fenster ändert.

Calloway: Probiere mal UpdateWindow_(WindowID(%Fensternummer%)). Trag da einfach die Fensternummer ein. Wenn das nicht funktioniert: Trick17**.

Trick17**:
1) Versuche den "Ast" der gerade geöffnet ist, einmal zu schließen und dann wieder zu öffnen. Dabei müssten die Verzeichnisse neu geladen werden.
2) Bau das ExplorerGadget mit einem TreeGadget nach. Das TreeGadget kannst du dann regelmäßig im Hintergrund mit neuen Verzeichnisdaten füttern.
3) Lösche das ExplorerGadget im laufenden Betrieb und erstelle sofort ein Neues. Sorg dafür, dass das neue Gadget auch gleich die aktuellen Verzeichnisdaten bekommt.


Greetz Laurin

Verfasst: 22.01.2005 12:34
von Calloway
Laurin hat geschrieben: 1) Versuche den "Ast" der gerade geöffnet ist, einmal zu schließen und dann wieder zu öffnen. Dabei müssten die Verzeichnisse neu geladen werden.
Das war das erste, was ich getan hatte, aber es funktionierte nicht. Ich wefde mal Trick 17 ausprobieren. Wenn jemand noch einen Trick 18 auf Lager hat, dann her damit. :mrgreen:

Dennoch vielen Dank an Euch für die Hilfestellung...
--
Gruß, Callo.

Verfasst: 22.01.2005 13:45
von Laurin
Naja, wenn ich das so recht überlegen haben ich Trick 17, 18 und 19 aufgeschrieben.

Egal.

Hat schon irgendwas davon Erfolg gebracht?

Verfasst: 22.01.2005 13:54
von Calloway
Laurin hat geschrieben:Naja, wenn ich das so recht überlegen haben ich Trick 17, 18 und 19 aufgeschrieben.
Ach so. Ich hatte das als 17a, 17b und 17c interpretiert. :mrgreen:

Ich werde dieses Problem erst einmal zurückstellen müseen, werde mich dann aber Trick 17c widmen... :allright:

Gruß, Callo.

Verfasst: 25.01.2005 12:27
von Shardik
Der praktikabelste Weg dürfte darin bestehen, das ExplorerTreeGadget mit SetGadgetText() in der Form

SetGadgetText(#ExplorerTree, GetGadgetText(#ExplorerTree) + "*.*")

aufzurufen.

Hier ist ein Code-Beispiel:

Code: Alles auswählen

; Refresh ExplorerTreeGadget

OpenWindow(1, 0, 0, 290, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Demo für Refresh des ExplorerTreeGadget")

CreateGadgetList(WindowID(1))
ExplorerTreeGadget(1, 10, 10, 270, 230, "C:\")
ButtonGadget(2, 40, 250, 200, 40, "Neues Verzeichnis 'C:\Test' anlegen und in Verzeichnisstruktur einblenden", #PB_Button_MultiLine | #PB_Button_Default)

If ExamineDirectory(1, "C:\Test", "") <> 0
  DisableGadget(2, #True)
EndIf  

Repeat
  WindowEventID = WaitWindowEvent()

  If WindowEventID = #PB_Event_Gadget And EventGadgetID() = 2
    CreateDirectory("C:\Test")
    SetGadgetText(1, GetGadgetText(1) + "*.*")
    DisableGadget(2, #True)
  EndIf
Until WindowEventID = #PB_Event_CloseWindow
Gruß,

Shardik

Verfasst: 25.01.2005 13:51
von Calloway
Danke :allright:

Ich werde es heute Abend mal testen...

Gruß, Callo.