⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scp.txt

📁 动态提示控件
💻 TXT
📖 第 1 页 / 共 5 页
字号:

Working Notes:
  * I really need to rip all the namespace stuff out and put it in it's own
    class so that you could use it however you wanted, not just in this comp.
  * The included test project creates a TSystemTreeView object on the fly so
    that you don't have to install the component in your library.  I'm
    fairly confident that the component is stable, but if you don't want to
    install, you don't have to just to see the demo.
  * If anyone knows how to determine the type of object you have given it's
    PIDL, I'd love to know it.  Right now, if it's not a file system object,
    you just get it's name.  I need to determine other types like the
    printer folder, control panel folder, network servers, network
    workgroups, etc.
    New information:  I've noticed that a commercial Explorer replacement that
    I have (PowerDesk from Mijenix) has this exact behavior, i.e. if you select
    the Printers folder, Recycle Bin, etc. you get just a single "Name" column.
    Hey, if a bunch of paid programmers can't figure it out, I probably won't
    either, so I'm inclined to call this "as-designed" behavior.  Comments?


Items On The To-Do List:
  * A few more bugs still in my email.
  * CMF_CANRENAME flag for context menu.  Can't just add it as it will cause
    OLE errors, i.e. system won't handle it.  I need to determine if I can
    use "magic numbers" to interpret rename and other unhandled commands to
    to catch them and process them myself.
  * Use timeGetTime to decide if I should show the hourglass or not in
    EnumerateFolders methods.
  * Change GetItemAttrs so it uses a nice Delphi set instead of API values.
  * Do away with ShowFolders/Files and ShowHiddenFolders/Files properties
    and replace with a set that includes all the stanadard stuff: hidden,
    system, read-only, etc.  AttrMask property.
  * Add properties for the stuff in the registry key HKCU\Software\Microsoft\
    Windows\CurrentVersion\Explorer\Advanced and use those values as default
    values for the properties.  This has stuff like hide extensions, etc.
  * I may or may not implement drag/drop with the shell.  In the meantime,
    Dieter Steinwedel (dsteinwe@rz.uni-osnabrueck.de) has a fine d-n-d shell
    component that works with any TWinControl descendant.  It can be found at
    http://godard.oec.uni-osnabrueck.de/student_home/dsteinwe/delphi/DietersDelphiSite.htm
    There are probably others as well, I haven't looked much.
  * "Cut" context menu command does not show the file icon as disabled yet.
  * Hidden files have same problem as cut files (item above).


Known Issues:
  * C++Builder 3 users:  You must install only the registration unit 
    (SystemControlPackReg.pas) into the package you compile the component into.
    If the package also includes the other source files, you will get error
    messages about DCLSTD35.LIB, which doesn't exist.  It has to do with the
    fact that the source lists ImgList in the uses clause, even though I have
    properly $IFDEFed it out.  Must be some error in the C3 parser that is
    causing it to see this unit, and in C3 this unit is some design-time unit or
    something. It results in the IDE continuously inserting DCLSTD35.LIB into
    the project file, and there's no such file.  Manually removing it from the
    project does not help, it just sticks it back in.  The only way to get it to
    stop is to manually edit the code and remove the reference to ImgList, or to
    not include the source file in the package.  Bizarre.
  * C++Builder 3 users:  You must edit the source files to remove the ImgList
    unit from the uses clauses of the units.  I have properly $IFDEFed out
    this unit, but some error in the C3 parser is causing it at some point to
    see this unit, and in C3 this unit is some design-time unit or something.
    It results in the IDE continuously inserting DCLSTD35.LIB into the project
    file, and there's no such file.  Manually removing it from the project
    does not help, it just sticks it back in.  The only way to get it to stop
    is to manually edit the code and remove the reference to ImgList. Bizarre.
  * None of the demos are probably going to work well with all the new stuff.
    It's late and I really want to get this stuff out, so I'll update them
    in the next version.
  * The list view incorrectly thinks that some folders contain file system stuff
    when the really don't.  For example, it thinks the Control Panel folder
    does, so it get's all the columns for a file directory list.  This is a bug
    introduced with the new way of doing things in v0.96 and I've not yet been
    able to figure it out.  If anyone has any clues, I'd really appreciate it.
    It didn't happen in v0.95, but things were a lot different in the list
    population in that version.
  * Combo box does not like working with a treeview that doesn't have rfDesktop
    as it's root node.  I'm not sure if you'd really ever need to have a combo
    that used something besides the desktop as a root, so at this point and not
    going to invest the somewhat large amount of time to work on doing it.  If
    you do need this, let me know and I'll add it to the to-do list.
  * The tree is hitting the all the sub nodes of a just expanded node again.
    For example, when you expand the "My Computer" node, it hits each item; one
    of those is likely a floppy drive, and that slows things down as it cranks
    on it for a second.  No error message, but the delay is irritating.  And I
    fixed it once before, too!
  * Changing the RootFolder of a tree doesn't update a linked listview at design
    time.  This saved me a ton of work, and it's really not that important at
    design-time anyway, is it?
  * Double clicking on a computer name in a listview that is linked to a
    rfNetHood rooted treeview will not move into that computer.
  * If using the Checkboxes property and you cause the treeview window to be
    recreated by doing something like changing the BorderStyle property or
    something, the checked values will be lost.  I will fix this in the future.
  * Changing the Color property to anything other than clWindow is strongly
    discouraged.  The images will still use the clWindow color as their
    background, so you'll end up with a pretty odd looking tree/list.  The
    reason is that if I changed the background color of the image list(s), it
    would effect the entire system.  That is, Explorer would then have a
    tree/list with a clWindow background color but the images would have your
    new color around them.  The image lists are a shared, system-wide resource
    and a change like this simply can not be allowed.  There is one alternative:
    a copy of the system image list can be made, and that used instead of the
    real system image list.  It can be changed in any way without effecting the
    rest of the system.  The problems I have with this are:  1) It's an awful
    lot of trouble to implement, 2) It's generally very slow since the system
    image list is quite large.  You'd have a delay of a second or three before
    your app started.  If enough people ask me for this to be added, I will
    reconsider, but for now I'm just considering it a known issue.


Beta Revision History:
0.98.5 + Added RecreateColumns method to TdfsSystemListView.
       + Fixed problem with SetColumnWidths not using new values until window
         was recreated or repopulated.
       + Updated for Delphi 6 compatibility.  See updated install directions
         above.
0.98.4 + Updated for C++Builder 5 compatibility.
0.98.3 + IShellDetails stuff in SystemControlPack.pas has been removed.  I was
         investigating this, but found out it was only available on Windows 
         2000.  It was causing compiler problems for C++Builder, so I've 
         removed it from the source entirely (it was never being used).
       + Fixed problem with FileMask in tree view.
       + Fixed memory leak problem with list view.
0.98.2 + Fixed some nasty problems with rfFileSystem RootFolder type.
       + Fixed bizarre D5 problem with deleting a tree from a form in the IDE.
       + Fixed problem with main win hook not being released when component
         was destroyed.  Thanks to Matthieu Roger for this. 
0.98   + Fixed redeclaration problem in C++Builder 3.
       + Fixed nasty recursion bug when using rfFileSystem RootFolder value.
       + Bill Miller was nice enough to do a component bitmap for the combo box.
       + Had some problems with right-click not bringing up the context menu
         in the system and list view under D5.  Fixed.
       + Deleting a file in a root directory would cause the list view to "fall
         up" one level higher that where it was supposed to be on refresh.
       + Fixed a couple of problems having to do with the read delay timer.
         Could totally break it if window handle was recreated.  Could get
         "Control has no parent window" errors.
       + Changing treeview file mask to exclude the currently selected filename
         would cause trouble.
       + Removing a directory that was the selected directory would not refresh
         the display.
       + Updated information about the DCLSTD35.LIB Known Issue in C3.  See
         above.
       + I've removed the TFolderItemData.FileSize property for C++Builder 1 &
         3.  They didn't work because I use the Delphi Comp data type, and
         while Builder has a Comp class for this type of thing, it won't
         automatically support Delphi code using Comp.  If you need the file
         size in C1/C3, you'll have to use the FileSizeHigh and FileSizeLow
         properties.  If FileSizeHigh is not zero, you know you have a big file
         and that you'll have to do the 64-bit math yourself.
       + Resetting would not always do a "full" reset.  The system will cache
         some kinds of information, and you have to manually invalidate that
         cache.  The most obvious manifestation of this problem was with a
         CD-ROM drive.  Resetting would update the item's image, but would not
         update it's text.
       + Changing a CD would not update the display.
       + Tree and list view item context menus now show and handle the Rename
         context menu item. 
0.97   + Delphi 5 compatibility.
       + Renamed to include the 'dfs' prefix in the component name.
       + The DFS_STV_FASTMODE and DFS_SLV_FASTMODE defines were broken (code
         wouldn't compile).  Thanks to Felipe Rocha Machado for catching this.
       + Sort column/direction of list view wasn't preserved when directory was
         changed.
       + Added ChangeToParent methods in tree, list and combo to move up one
         level, i.e. "cd .."
       + Added Known Issue item for C++Builder 3 users.  See above.
       + Changing FileMask property of listview at run-time would not refresh
         the list.  Fixed.  Thanks to Tamas Demjen for this.
       + DFS_SLV_FASTMODE conditional define has been removed.
       + Setting the tree view Selection property to a UNC path wouldn't work
         correctly (i.e. something like \\someserver\somepath\someotherpath).
         Lennert Ploeger was kind enough to figure out what was going on and
         fix it.
       + FileMask in the tree view was totally broken.  Lennert also help on
         this one.
       + I think I finally got rid of that pesky removable drive spinning when
         it's parent is selected once and for all.
       + Tamas Demjen sent me code to make the combobox respond better to font
         changes.
       + Nasty problem fixed when something caused the combobox to be recreated.
         Thanks to Joachim Jo Samstag for his help on this.
       + Under Delphi 2, 3, C++Builder 1, and 3 the Color property would not be
         honored by the tree or list because of a VCL bug.  This was fixed in
         version 4 (of both).  I've added code sent to me by Chris Wallace to
         work around it in prior versions.  Many thanks to him.
0.96   + Moved a lot of PItemIDList helper functions into a seperate unit named
         PidlHelp.  This is mostly an internal thing, and shouldn't effect
         component users.
       + Marked public Reset methods as virtual for you folks who want to write
         descendants.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -