TacShellListView 6.30

Viewing 20 posts - 1 through 20 (of 31 total)
  • Author
    Posts
  • #32898
    emailaya
    Participant

    hi
    playing a bit with TsShellListView causes an exception, i have 2 callstacks that demonstrates the problem, not really sure why:

    :7c812aeb kernel32.RaiseException + 0x52
    Classes.TThread.Terminate
    acShellCtrls.TacCustomShellChangeNotifier.Destroy
    System.TObject.Free
    acShellCtrls.TacCustomShellListView.SetAutoRefresh(???)
    acShellCtrls.TacCustomShellListView.RootChanged
    acShellCtrls.TacCustomShellListView.SetPathFromID(???)
    acShellCtrls.TacCustomShellListView.Back
    FileSpace.TfrmFileSpace.btnUpFolderClick(???)

    the last line above is a simple: lsflShell.Back;

    the error is: Cannot terminate an externally created thread.
    i seems to get it on several occasions after clicking a folder/drive in “my computer”/”desktop”
    please advice

    #38854
    emailaya
    Participant

    hi

    to make things easier attached exe + sources

    check 2 things:
    1) open the project (D2009) and right click the unit1.pas tab and close it, it will close but u will also get a msg about list index out of bounds(0)
    2) run the exe file, select “my computer” and then press the button try to play a bit with the folders and soon enough u will receive the error i posted in my original post

    #38882
    Support
    Keymaster

    Hi and thank you for demo, I'll research it soon.

    PS. I think, you must try to use the VirtualShellTools components, they are much better than Borland ShellControls and free for use with sources.

    #38894
    emailaya
    Participant

    do u think this will be solved for 6.31?

    #38919
    Support
    Keymaster

    Version 6.31 is ready for uploading already and will be available today-tomorrow.
    I'll try to solve your problem in the next release.

    #38945
    emailaya
    Participant

    ok
    can u give me a kind of a workaround?
    according to the callstack, the error comes from AC code
    maybe i can do something to make it work until the formal fix is out?

    now that u fixed the bordericons (still didnt check it), this is the only thing that stalls me from releasing a new version
    thanks

    #38984
    Support
    Keymaster

    For releasing of new version of program I can suggest to use a stable version of component…

    #38986
    emailaya
    Participant

    you are right but my app was released as beta anyway, moreover, 6.30 had some new features i wanted to use

    with 6.31, the runtime error seems to be fixed, the designtime (closing the unit shows a list index out of bounds(0)) is still there

    #39097
    emailaya
    Participant

    in 6.32 this problem is back (both runtime and design time)
    it didnt happen with 6.22 (i didnt check 6.23 and i rather not do it now that im working with 6.32)

    i guess there were changes between 6.22 and 6.30 that causes this problem

    #39099
    emailaya
    Participant

    this is the bug report i get, i get it constantly (other users with other computers got it as well)

    date/time : 2009-05-09, 23:05:36, 187ms
    operating system : Windows XP Service Pack 3 build 2600
    system up time : 3 days 3 hours
    program up time : 10 seconds
    processors : 2x Intel® Core™2 Duo CPU E6750 @ 2.66GHz
    physical memory : 966/2047 MB (free/total)
    free disk space : (C:) 20.19 GB
    display mode : 1280×1024, 32 bit
    process id : $a6c
    allocated memory : 70.86 MB
    exec. date/time : 2009-05-09 19:20
    compiled with : Delphi 2009
    madExcept version : 3.0i beta 2
    callstack crc : $3711964c, $52e2ea91, $83446841
    exception number : 1
    exception class : EThread
    exception message : Cannot terminate an externally created thread.

    main thread ($6d4):
    00484c40 +0018 app.exe Classes 11419 +1 TThread.Terminate
    006f0ee3 +0027 app.exe acShellCtrls 1453 +5 TacCustomShellChangeNotifier.Destroy
    00404ad8 +0008 app.exe System 9806 +1 TObject.Free
    006f4012 +0022 app.exe acShellCtrls 2806 +1 TacCustomShellListView.Destroy
    00533c11 +008d app.exe Controls 7737 +16 TWinControl.Destroy
    0053b661 +001d app.exe Controls 12703 +2 TCustomControl.Destroy
    007320be +002e app.exe sPanel 155 +2 TsPanel.Destroy
    00533c11 +008d app.exe Controls 7737 +16 TWinControl.Destroy
    00510770 +0028 app.exe Forms 2644 +3 TScrollingWinControl.Destroy
    005116a9 +00f9 app.exe Forms 3246 +33 TCustomForm.Destroy
    00404ad8 +0008 app.exe System 9806 +1 TObject.Free
    0051692c +0000 app.exe Forms 6232 +0 TCustomForm.CMRelease
    005321b6 +02d2 app.exe Controls 6642 +91 TControl.WndProc
    00730d27 +0383 app.exe sSpeedButton 870 +83 TsSpeedButton.WndProc
    00531ddc +0024 app.exe Controls 6420 +10 TControl.Perform
    0076c0be +0032 app.exe sFade 249 +2 TsAnimTimer.Repaint
    0070b0a8 +4b20 app.exe sSkinProvider 2907 +1265 TsSkinProvider.NewWndProc
    7c90e470 +0010 ntdll.dll KiUserCallbackDispatcher
    00535dd4 +002c app.exe Controls 9065 +3 TWinControl.MainWndProc
    00485dcc +0014 app.exe Classes 12723 +8 StdWndProc
    7e418a0b +000a USER32.dll DispatchMessageW
    0051af13 +00f3 app.exe Forms 9613 +23 TApplication.ProcessMessage
    0051af56 +000a app.exe Forms 9643 +1 TApplication.HandleMessage
    0051b281 +00c9 app.exe Forms 9780 +26 TApplication.Run

    apparently it happens on a certain scenario, i can show it to u on teamviewer
    as mentioned, it didnt happen with older versions

    #39100
    emailaya
    Participant
    #39101
    emailaya
    Participant

    apparently its a problem of D2009 IDE
    https://forums.codegear.com/thread.jspa?mes…1821&#61821

    #39104
    emailaya
    Participant

    please read here:
    http://qc.embarcadero.com/wc/qcmain.aspx?d=69358

    u dont have ShellCtrl but acShellCtrls but i wasnt sure how exactly to integrate it into your code – this is about the designtime error.
    about the runtime problem: i pasted the callstack previously, not sure there is a relation between the 2 problems

    please advice

    #39105
    Hunni
    Participant

    Hi,

    QUOTE (emailaya @ May 10 2009, 05:29 PM)
    please read here:
    http://qc.embarcadero.com/wc/qcmain.aspx?d=69358

    u dont have ShellCtrl but acShellCtrls but i wasnt sure how exactly to integrate it into your code – this is about the designtime error.
    about the runtime problem: i pasted the callstack previously, not sure there is a relation between the 2 problems

    please advice

    This fix didn't solved the problem 100%.

    You need some more modifications inside the ShellCtrls.pas (see below).
    If necessary i can post also the complete unit.

    public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override; //was missing
    procedure Refresh(Node: TTreeNode);

    ..
    ..
    ..

    procedure TreeUpdate(NewPath: PItemIDList);
    procedure SetObjectTypes(Value: TShellObjectTypes); virtual;
    //!procedure WMDestroy(var Message: TWMDestroy); message WM_DESTROY;
    public
    constructor Create(AOwner: TComponent); override;

    destructor TCustomShellTreeView.Destroy;
    begin
    ClearItems;
    FRootFolder.Free;
    inherited;
    end;

    procedure TCustomShellTreeView.ClearItems;
    var
    I: Integer;
    begin
    if not HandleAllocated or (Items.Count = 0) then
    Exit;
    Items.BeginUpdate;
    try
    for I := 0 to Items.Count-1 do

    Torsten
    PS: this Bug also exist in older Delphi Versions!

    #39106
    emailaya
    Participant

    yeah i just saw this update in the post on codegear forum itself
    btw, i notice that AC uses its own acShellCtrls so can i just apply these changes there?
    if u have the complete unit of AC itself, please send it to me, if the changes are of the original ShellCtrls then i will try it myself and see if it works

    btw, does this solve the runtime problem as well?
    btw2, r u him (Torsten) ? <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />

    #39107
    Hunni
    Participant

    Hi,

    QUOTE (emailaya @ May 10 2009, 08:09 PM)
    yeah i just saw this update in the post on codegear forum itself
    btw, i notice that AC uses its own acShellCtrls so can i just apply these changes there?
    if u have the complete unit of AC itself, please send it to me, if the changes are of the original ShellCtrls then i will try it myself and see if it works

    btw, does this solve the runtime problem as well?
    btw2, r u him (Torsten) ? <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />

    Yes that's me.

    I haven't changed the acShellCtrls Unit up to now (in the moment no need for it)

    The runtime problems i haven't met with the modification

    Have a nice weekend

    Torsten

    PS: When I just overview the AC Source, I can see that following modification should be necessary

    CODE
    procedure TacCustomShellTreeView.ClearItems;
    var
      I: Integer;
    begin
      if not HandleAllocated or (Items.Count = 0) then
        Exit;
      Items.BeginUpdate;
    .
    .
    .

    #39108
    emailaya
    Participant

    funny, small world <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />

    im using TsShellListView (not TreeView) and the unit acShellCtrls is needed without ShellCtrls unit itself so im not sure how much changing ShellCtrls unit will help.

    can u tip on what i need to change in acShellCtrls unit? except for the change u already mentioned regarding TreeView
    thanks

    #39109
    Hunni
    Participant

    Hi,

    QUOTE (emailaya @ May 10 2009, 08:43 PM)
    funny, small world <img src="style_emoticons//smile.gif” style=”vertical-align:middle” emoid=”:)” border=”0″ alt=”smile.gif” />

    im using TsShellListView (not TreeView) and the unit acShellCtrls is needed without ShellCtrls unit itself so im not sure how much changing ShellCtrls unit will help.

    can u tip on what i need to change in acShellCtrls unit? except for the change u already mentioned regarding TreeView
    thanks

    maybe Serge knows this better.

    But I will have a also a look, but in the moment I'm quit busy with some other problems (PLC Software problems)

    Torsten

    #39136
    emailaya
    Participant

    not sure if the problems are related but the runtime problem is the important one (design time is less important). it could be that the cause of the 2 problems are the same.

    #39139
    Support
    Keymaster

    Hello

    Here is modified file, please try him

Viewing 20 posts - 1 through 20 (of 31 total)
  • You must be logged in to reply to this topic.