📄 scp.txt
字号:
if the listview is showing "Autoexec.bat" and you edit it, the file
will be renamed.
+ Added two new public functions to listview, RenameItem and DeleteItem.
+ Added Checkboxes published property and ItemChecked public property to
treeview. These require the updated COMCTL32.DLL be on the system. If
you don't know about the updated COMCTL32.DLL issue, get my
TExtListView component and read the ELV.txt file, especially the
"Redistributing COMCTL32.DLL" section.
0.87a + Updated ItemProp.pas unit. This fixes a known issue with
cut/copy/paste context menu items not working on all installations.
No code in SystemTreeView.pas has changed.
0.87 + The fix introduced in v0.85 broke TSystemTreeView if there was no
TSystemListView attached to it. Stupid programmer...
+ Removable drives would still get hit when being displayed in a
TSystemListView. This was very annoying when those drives were empty.
+ Added Data property to TFolderItemData class. The reasoning is that
the components use the TTreeNode.Data and TListItem.Data properties,
so they aren't available to the component user any more. Now, you can
have the equivalent by doing something like this:
TFolderItemData(Node.Data).Data := mydata;
+ Demo program sometimes blew up on NT.
0.86 + Added SystemView.inc file. This file contains all the conditional
defines used by the unit. There are two new defines in this file that
you may be interested in: DFS_STV_SYSTREEVIEW and DFS_STV_SYSLISTVIEW.
See the Conditional Defines section above for a complete description.
+ DFS_STV_USE_ENHLISTVIEW and DFS_STV_USE_EXTLISTVIEW conditionals added.
These are not enabled by default. See the Conditional Defines section
above for a complete description. WARNING: This is just a simple
implemenation currently, and there are likely to be problems. Only use
these if you want to help me work out the bugs in it.
0.85 + Resetting of a treeview that had a linked listview could cause nasty
problems because the listview kept a pointer that wasn't valid any
longer.
0.84 + Updated to publish the new D3 and D4 properties such as RowSelect,
RightClickSelect, Anchors, etc. Note, this stuff only shows up in the
appropriate version of Delphi. For example, only D4's list/tree view
has an Anchors property, so TSystemTree/ListView only has it if
compiled under D4.
+ Renaming a tree node did not update some internal data, and doing
things like trying to expand the renamed directory would complain about
the old name not existing.
+ Deleting nodes in the tree could cause the automatic refresh stuff to
get confused and cause AVs when the component was destroyed.
+ Setting ShowFiles to TRUE in the tree would cause it to try to watch
for changes in a directory with the name of the file selected instead
of the directory that the file was in.
+ Removed the FShellMalloc._Release call in the finalization section for
D3 and higher. It was there to begin with because there appears to be
a compiler bug with COM objects whose references are gotten in an
initialization section. The compiler is supposed to automatically
insert a release call when the reference "goes out of scope", but
Delphi doesn't do this for stuff in the init section. I was
compensating by inserting the call manually, but it turns out that if
you do this, you'll then get two calls to release, yours and the
missing automatic call that Delphi was supposed to be inserting anyway.
So, I figure it is safer to have the ref count of the COM object to be
too high rather than too low. Go too low, and you could conceivably
end up freeing the shell's IMalloc object and that would be a TRULY
bad thing. Thanks to Grahame Marsh for the spelunking he did on this.
0.83 + The 'KB' abbreviation was hard-coded, it is now a resource string.
+ Folders would show '0 kb' in fast mode instead of being blank like they
are in non-fast mode.
+ Fixed range check error when sorting by column click under Delphi 4.
+ AddNewNode method didn't like adding to root directory nodes.
+ Floppy drive is no longer hit when expanding a tree node that contains
it. MANY thanks to Jacques Bordas <farandir@club-internet.fr> for
fixing this EXTREMELY annoying bug.
0.82 + Updated for Delphi 4 compatibility.
0.81 + NT 4 has more than 8 bytes stored in in the registry key used for the
column sizes. This caused problems, but it really shouldn't have.
At any rate, I've modified the code to account for the size being
unknown.
+ Almer. S. Tigelaar <almer-t@usa.net> emailed me a fix for the "never
ending flicker" problem that some people have reported. I could never
duplicate the problem, so I can only tell you that he said it fixed it
for him. If you still have the problem, please let me know.
0.80 + Unit now uses DFS.INC file for my commone defines.
+ Moved all this crap out of source file to this text file.
+ Changed context menu handling entirely. Components now use my ItemProp
unit (included) that handles it all. I did this because I have the
Send To menu problem solved in ItemProp, and redoing it here seemed
pointless. So, the Send To menu bug (it being empty) is now fixed.
+ Added PopupMenuMethod property to both components. pmmNone means use
no popup menus at all, pmmUser means use only menu in PopupMenu
property, pmmContext means use only system context menu, pmmContextUser
means use system context menu if it can and PopupMenu if it can't.
Items like the Desktop node and listviews with nothing selected are
places where the context menu would not be used and the PopupMenu would
kick in.
+ I've added two new defines to the top of the unit, DFS_STV_FASTMODE and
DFS_SLV_FASTMODE. See Conditional Defines section above.
+ Forgot to override the tree's Notification method. This would cause
violations if a linked list view is deleted before the tree view. Many
thanks to Simon Armstrong <simes@clara.net> for catching this one.
+ File time in TSystemListView could be incorrect in some time zones.
Thanks to Frank Kroeger <FKroeger@tkc.de> for providing a fix.
+ Added Reload method to TSystemListView. You can guess what it's for.
+ Shortcut (.LNK) files in the Desktop folder no longer show their .LNK
extension.
+ Wouldn't compile with DFS_STV_FILECHANGES undefined. Thanks to Elmar
Klaus <herr.schwupp@cww.de> for fixing this.
+ Added Known Issuses section above. Please read it.
+ Changing MultiSelect property of TSystemListView at run-time would
clear the contents of the list view. Actually, anything that recreated
the window would do this. Now properly reloads after window is
recreated. May also have been causing some AVs that people reported
when changing MutliSelect value, but I wasn't able to verify this.
+ TSystemTreeView has a new Directory property. It is identical in
every way to the Selection property. :)
+ Added two read-only properties to TSystemListView: Filename and
FullFilename. Both are array properties that use a TListItem as the
index. Ex:
ShowMessage(MyList.FullFilename[MyList.Selected]);
+ Got rid of the hard-coded column captions for TSystemListView. They
are declared as resourcestrings for D3 and just constants for D2 in the
interface section.
+ Double clicking on an item in TSystemListView now takes the item's
default action (the one in bold on it's context menu). However, if you
have an event handler for OnDblClick, this will not happen.
+ Share and link image overlays weren't correct on all machines. Fixed
by Benedykt Kubica <b.kubica@computer.org>. Many thanks.
+ TSystemTreeView and TSystemListView Items property has been changed to
public visibility and read-only. This stuff should only be read from,
never written to from outside the component.
+ Dropping a TSystemListView on a form with a TSystemTreeView on it will
automatically hook it up to the ListView property of the the tree.
+ TSystemListView would always show the contents of the desktop when the
treeview's root node was selected, even if the root node wasn't the
desktop, i.e. RootFolder was rfCustom and CustomDir set to c:\.
+ Setting MultiSelect property of list view at design-time in forms that
were not auto-created would cause AV's when the form was created and
shown at runtime.
+ Found and fixed a problem with the file/dir thread watcher. Not sure
what problems it may have been causing as it would have been very
sporadic, but creating directories may now be more reliable.
+ Sorting is better now. TSystemListView sorting was broken sometimes,
and it wasn't completely right anyway. Now sorts folders first and
items after. Should sort exactly like explorer now.
+ Now compatible with C++Builder 1 & 3.
+ Added AutoScroll property. This feature was entirely written and
contributed by Aristide Torrelli <a.torrelli@tin.it>. I have only
adapted it for use in TSystemListView. Many thanks to him.
+ Palette icon for list view provided by Almer. S. Tigelaar
<almer-t@usa.net>.
+ SimpleMask property added to TSystemListView. This feature was written
by Rafal Platek <creams@creamsoft.com> and slightly edited by me. To
only list files with specific extension(s), just assign the
extension(s) to this property. For example:
MyList.SimpleMask := 'pas'; // show only .pas files.
MyList.SimpleMask := 'pas,dpr,dfm'; // show common Delphi source files
MyList.SimpleMask := ''; // No masking, show all.
+ The following were done by Fabrice Fouquet (services@cfp47.inba.fr):
* Setting Section property of tree now makes sure it is also visible.
* Hourglass cursor during directory changes.
* Use registry info to size list view columns so they match Explorer's.
* Double-click in listview moves into sub-folder and updates treeview,
too. I enhanced this one so that it would work with non-file
system folders, so if something there breaks, it's my bug not
Fabrice's.
* Column sorting for list view.
0.70 + Turns out I was thick-skulled after all (see 0.65 notes). I was
allocating the memory with GetMem, and that of course does not
initialize the memory (i.e. make sure the pointer variables are set
to NIL). So, I assigned something to the IShellFolder variable,
and Delphi 3 checks the existing value and tries to Release it if
it is not NIL. Well, it's just trash initially, so off it goes
into the weeds... I could go back to the dynamic allocation method
and use the Initialize function to clear it all, but the class is
better anyway.
+ General clean-up.
+ Fixed bug in RenameNode method. It updated the relative PIDL, but
not the fully qualifed PIDL. Thanks to Frank Kroeger
(FKroeger@tkc.de) for finding and fixing this.
+ Shared and link overlay images now work for the tree and list. HUGE
thanks go to Peter Ruskin (PeterRuskin@classic.msn.com) and Lars
Randers (lranders@post2.tele.dk) who both for provided this code.
+ Added ShowFolders property to TSystemListView.
+ Files weren't shown in folders that had no subfolders (ShowFiles
property set to TRUE).
+ Fixed problem that would cause bizarre access violations if you did
anything that caused the window to be recreated. For example, if
you changed the BorderStyle property, you would get this because
the window handle has to be destroyed and recreated. This caused
all the pointers to get freed, but then the pointer values were
restored when the window was recreated -- data is gone, just a load
of invalid pointers.
+ Images were screwed up in Control Panel and Printers folder.
+ Overriden Expand method never called inherited. Broke OnExpanded
event.
0.65 + Yes, it's true; I FINALLY got it working under Delphi 3. I thought
I was just really thick skulled, but turns out that Delphi 3 freaks
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -