Seite 1 von 2

ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 11.03.2018 18:39
von silbersurfer
Hallo Leute,
ich Schreibe an einen Datei-Manger @TotalCommander, und bin auch schon sehr zufrieden soweit.
Mir ist allerdings aufgefallen, dass in manchen Ordner das einlesen der Dateien sehr lange dauert (ein paar Sekunden friert das einlesen ein).
Ist diese erscheinug schon bekannt, und wenn ja gibt es dafür abhilfen ?

Gruß Silbersurfer

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 11.03.2018 20:08
von edel
Unter Windows dauert es tatsaechlich laenger. Abhilfe gibt es hier: https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Hier im Forum muessten sich auch ein paar Beispiele finden lassen.

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 11.03.2018 22:06
von silbersurfer
Danke edel,
aber leider bin ich kein C++ User, und so wie das aussieht müßte man das über WinApi und @callback lösen wo
ich leider noch keine große Erfahrung mit habe.

Mir fehlt da der Ansatz
struct RndItem
{
int iIcon; // Bitmap assigned to this item.
UINT state; // Item state value.
TCHAR Title[BUFFER_SIZE]; // BUFFER_SIZE is a user-defined macro value.
TCHAR SubText1[BUFFER_SIZE]; // Text for the label of the first sub-item.
TCHAR SubText2[BUFFER_SIZE]; // Text for the label of the second item.
};
ist dann wohl die Strutur, vieleicht kommen ja noch die WinApi Profis und bringen Licht in meinen Schatten :D

gruß Silbersurfer

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 10:20
von uweb
Wenn ich "Virtual List-View" aus edel's Tipp zusammen mit "PureBasic" in Google eingebe finde ich u.a. :

http://www.purebasic.fr/german/viewtopic.php?t=19105 - Das trifft genau genau Deine Frage; ist aber aus 2009.
http://www.purebasic.fr/english/viewtopic.php?p=516617 - Da geht es eigentlich um das Scrollen via Mausrad. Aber es ist ein einfaches Beispiel für einen Virtual List-View das so auch unter PB 5.62 läuft.

Da gibt es aber noch mehr.

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 12:54
von Fluid Byte
edel hat geschrieben:Unter Windows dauert es tatsaechlich laenger.
Was hat das mit Windows zu tun?

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 13:01
von RSBasic
@silbersurfer
Wenn du dein ExplorerListGadget mit ListIconGadget selber erstellst, kannst du mit #WM_SETREDRAW das Hinzufügen deutlich beschleunigen.

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 13:02
von Bisonte
Wird es nicht schneller, wenn man das Neuzeichnen während des Einlesen kurzfristig abschaltet ?

Code: Alles auswählen

SendMessage_(GadgetID(#Gadget), #WM_SETREDRAW, #False, 0)
  ; Einlesen
  SendMessage_(GadgetID(#Gadget), #WM_SETREDRAW, #True, 0)
Edit : Arg zu langsam ;)

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 13:38
von edel
Fluid Byte hat geschrieben:
edel hat geschrieben:Unter Windows dauert es tatsaechlich laenger.
Was hat das mit Windows zu tun?
Ich habe keinen Vergleich. Unter macos oder Linux mag es schneller gehen oder eben auch nicht. Ich weiss es nicht. Das standardmäßige Befüllen eines Listviews unter Windows ist aber nun mal sehr langsam.

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 14:53
von silbersurfer
Hallo Leute,
erstmal dank für die vielen Antworten, doch leider mußte ich gestern feststellen, dass das ExplorerListGadget völlig unbauchbar für meine zwecke ist.
nach einbinden meiner Kopierroutine brach das Gadget völlig zusammen (je mehr dateien ich kopierte) um so mehr flackerte das Gadget, spürbar lange dauerte
dieses flackern bis dann endlich die Dateien im Gadget sichtbar wurden.
das kann nicht im sinne des Erfinders sein.

@RSBasic :allright:
Wenn du dein ExplorerListGadget mit ListIconGadget selber erstellst, kannst du mit #WM_SETREDRAW das Hinzufügen deutlich beschleunigen.
genau das habe ich jetzt gemacht RSBasic, es ist deutlich schneller und so nun auch tauglich für einen Dateimanager :)

eine frage gleich dazu, kann man irgendwie das Kontextmenü vom Explorer im einen ListIconGadget nutzen oder nutzbar machen?
das wäre cool.
Icon und Dateitypen habe ich schon eingebunden (Optisch kein unterschied mehr zum ExplorerListGadget)
nur das Menü fehlt da noch

Gruß Silbersurfer

Re: ExplorerListGadget einlesen teilweise langsam ?

Verfasst: 12.03.2018 15:12
von RSBasic
silbersurfer hat geschrieben:eine frage gleich dazu, kann man irgendwie das Kontextmenü vom Explorer im einen ListIconGadget nutzen oder nutzbar machen?
http://www.purebasic.fr/german/viewtopi ... 44#p345444

Du musst nur den Pfad in deinem ListIconGadget selber ermitteln/erstellen und diesen an die jeweilige Funktion übergeben.