ExplorerTreeGadget-Anzeige ohne Dateiendung
ExplorerTreeGadget-Anzeige ohne Dateiendung
Hey,
wie kann ich das ExplorerTreeGadget dazu bringen, die Dateien in einem Verzeichnis ohne Dateiendung anzuzeigen.
Beispiel:
"foto1.jpg" soll nicht angezeigt werden, sondern "foto1"
Gruß
Dysti
wie kann ich das ExplorerTreeGadget dazu bringen, die Dateien in einem Verzeichnis ohne Dateiendung anzuzeigen.
Beispiel:
"foto1.jpg" soll nicht angezeigt werden, sondern "foto1"
Gruß
Dysti
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Da wirste wohl ein Treegadget bemühen müssen und selber füllen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Würde ich dir ohnehin raten selber ein ExplorerTreeGadget zu bauen.
Klar ist das PB-ExplorerTreeGadget recht gut, aber es arbeitet zB nicht mit Threads, was dazu führt, dass beim öffnen von Ordnern die viel inhalt haben die gesamte Anwendung zum stillstand kommt.
Außdem kannst du so auch selber eigene "Extras" einbinden, wie zB Desktop, Netwerkumgebung, usw. was ja beim PB nicht angezeogt wird.
Dort hast du nun Eigene Dateien
Klar ist das PB-ExplorerTreeGadget recht gut, aber es arbeitet zB nicht mit Threads, was dazu führt, dass beim öffnen von Ordnern die viel inhalt haben die gesamte Anwendung zum stillstand kommt.
Außdem kannst du so auch selber eigene "Extras" einbinden, wie zB Desktop, Netwerkumgebung, usw. was ja beim PB nicht angezeogt wird.
Dort hast du nun Eigene Dateien
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Auch ein Treegadget kann man nicht im Thread befüllen, lediglich die DatenSTARGÅTE hat geschrieben:zB nicht mit Threads, was dazu führt, dass beim öffnen von Ordnern die viel inhalt haben die gesamte Anwendung zum stillstand kommt.
vorbereiten, was nichts bringt. Das füllen dauert eben so lange, jedenfalls
beim ListiconGadgert, mit TreeGadget hab ichs ja nicht getestet
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ja Daten vorbereiten sowieso, aber auch das füllen geht im Thread:
machst du nur Fill(0)
bleibt das ganze fenster grau und "eingefroren", für ca 5s
bei CreateThread(@Fill(),0)
kann ich dem Fenster beim füllen zusehen, und wenn das erste efüllt ist bereits schon rumscollen, ohne das ihn das stört.
Alle Einträge werden auch sauber eingetragen.
HINWEIS!
Zwei Thread die auf das selber gadget zugreifen sollte man nicht machen, das geht in die hose!
Code: Alles auswählen
OpenWindow(0, 0, 0, 800, 400, "Fenster", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TreeGadget(1, 5, 5, 390, 390)
TreeGadget(2, 405, 5, 390, 390)
Procedure Fill(Null)
For n = 1 To 3000
AddGadgetItem(1, -1, "Eintrag "+Str(n))
Next
For n = 1 To 3000
AddGadgetItem(2, -1, "Eintrag "+Str(n))
Next
EndProcedure
; Fill(0) ; Fülllen ohne Thread
; CreateThread(@Fill(),0) ; Fülllen mit Thread
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 0
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 0
EndSelect
EndSelect
ForEver
bleibt das ganze fenster grau und "eingefroren", für ca 5s
bei CreateThread(@Fill(),0)
kann ich dem Fenster beim füllen zusehen, und wenn das erste efüllt ist bereits schon rumscollen, ohne das ihn das stört.
Alle Einträge werden auch sauber eingetragen.
HINWEIS!
Zwei Thread die auf das selber gadget zugreifen sollte man nicht machen, das geht in die hose!
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
> kann ich dem Fenster beim füllen zusehen, und wenn das erste efüllt ist bereits schon rumscollen, ohne das ihn das stört.
Trotzdem mußte zumindest das gadget was gefüllt wird deaktivieren, was
meinste was das Programm macht wenn man da doppelt klickt
Es bringt absolut garnichts.
Du könntest ein virtuelles Control im Thread befüllen und dann den Speicher
copieren, das wäre die einzige sinnvolle Möglichkeit. Leider weiß ich nicht
wie man da dran kommt, gnozal bietet sowas in seiner Userlib.
Trotzdem mußte zumindest das gadget was gefüllt wird deaktivieren, was
meinste was das Programm macht wenn man da doppelt klickt

Es bringt absolut garnichts.
Du könntest ein virtuelles Control im Thread befüllen und dann den Speicher
copieren, das wäre die einzige sinnvolle Möglichkeit. Leider weiß ich nicht
wie man da dran kommt, gnozal bietet sowas in seiner Userlib.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Es öffnet ganz normal den Baum der ausgewählt wurde, ohne das das befüllen behindert wird.ts-soft hat geschrieben: Trotzdem mußte zumindest das gadget was gefüllt wird deaktivieren, was
meinste was das Programm macht wenn man da doppelt klickt![]()
Dazu einfach mal den Code heir ersetzen:
Code: Alles auswählen
Procedure Fill(Null)
For n = 1 To 3000
AddGadgetItem(1, -1, "Eintrag "+Str(n), 0, n%3)
Next
For n = 1 To 3000
AddGadgetItem(2, -1, "Eintrag "+Str(n), 0, n%3)
Next
EndProcedure
ich berichte dann wen es den ersten fehler gab ...
INFO: Ich werde auch nicht mit einem thread zwischen den einträgen rumspielen! sondern immer nur hinten was anhängen, damit sollte nie die riehenfolge oder Eintragsnummer von andere Einträgen verändert werden wenn der thread was neues hinzufügt
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Warum sollte die Routine im Thread schneller sein? Sehe ich nicht. Das
Gadget muß in jedemfall deaktiviert werden, was passiert wenn ich auf eine
leere Stelle droppe, wenn der da gerade was füllt?
Geschwindigkeitsvorteil: 0
Erhöhung der Fehlerwahrscheinlichkeit: 50%
Hab da ja nun genug Tests gemacht. GUI-Sachen bringen in Threads nichts,
ausser evtl. Abstürze.
Gadget muß in jedemfall deaktiviert werden, was passiert wenn ich auf eine
leere Stelle droppe, wenn der da gerade was füllt?
Geschwindigkeitsvorteil: 0
Erhöhung der Fehlerwahrscheinlichkeit: 50%
Hab da ja nun genug Tests gemacht. GUI-Sachen bringen in Threads nichts,
ausser evtl. Abstürze.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Schneller nicht, aber immerhin wird das Fenster/die Hauptschleife nicht blockiert.
Mit dem Droppen hast du recht, da könnte wirklich etwas passieren, obwohl ich ja dort auch das Ereignis selber abfangen kann, und das eigentliche Droppen erst statt findet wenn der Thread beendet wurde oder die Thread pausiere ...
HauptPunkt war bei mir halt, das ich nicht will, dass das Fenster beim "öffnen von C:\" (was bei mir sehr voll ist) einfriert.
Fass es da einen andere Weg gibt, wäre ich auch glücklich.
! Außer C:\ leerer zu machen
Mit dem Droppen hast du recht, da könnte wirklich etwas passieren, obwohl ich ja dort auch das Ereignis selber abfangen kann, und das eigentliche Droppen erst statt findet wenn der Thread beendet wurde oder die Thread pausiere ...
HauptPunkt war bei mir halt, das ich nicht will, dass das Fenster beim "öffnen von C:\" (was bei mir sehr voll ist) einfriert.
Fass es da einen andere Weg gibt, wäre ich auch glücklich.
! Außer C:\ leerer zu machen

PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr