Puh. Ohne Debugger nur mit Notepad++ etwas mühsam.
Delphi-Quellcode:
Atom := GlobalAddAtom(PWideChar(DriveList.Strings[nItem]));
SendMessage(DirListHandle, WM_COMMAND, FILL_DIRECTORY, Atom);
Du erzeugst dir eine eindeutige Zeichenfolgen (Atom) und schickst sie als LParam von WM_Command an das Fenster
DirListHandle. Warum?
Schien mir das einfachste um die Liste zu füllen ohne nochmals einen extra Knopf oder was auch immer dafür in Anspruch zu nehmen.
Wird dann hier ausgewertet. DirListBoxProc
Delphi-Quellcode:
WM_COMMAND:
case LoWord(wP) of
FILL_DIRECTORY:
begin
Buffer := StrAlloc(lP + 1);
try
DirList.clear;
GlobalGetAtomName(lP, Buffer, lP + 1);
FindDirs(Buffer, DirList);
FillList(DirList);
SkinEngine.FInvalidateRect(WinHandle, false);
// FileListe löschen
if FileListHandle <> 0 then
SendMessage(FileListHandle, WM_COMMAND, FILL_FILELIST, GlobalAddAtom
(PWideChar(DirStrPath)));
finally
StrDispose(Buffer);
end;
end;
end;
Diese drei listen sind miteinander verknüpft
DirList, DriveList, FileList
Zitat:
Ist irgendwie alles so etwas von hinten durch die Brust ins Auge, habe ich das Gefühl. Kann aber auch sein, dass ich noch nicht so gaz durch den Aufbau des Projekts durchgestiegen bin.
Hmm...
Alle meine Projekt funktionieren bei mir einwandfrei.. Verstehe ich nicht wo das Problem ist.
gruss