Einzelnen Beitrag anzeigen

CepheidenX

Registriert seit: 11. Mär 2003
43 Beiträge
 
Delphi 6 Professional
 
#5
  Alt 3. Jul 2003, 16:07
So hier der Quelltext
Also in der Datei ..\Delphi6\Demos\ShellControls\ShellCtrls.pas muss der Wert FUpdating false sein und nicht true.
ACHTUNG für ShellTreeView
Delphi-Quellcode:
procedure TCustomShellTreeView.SetPath(const Value: string);
var
  P: PWideChar;
  NewPIDL: PItemIDList;
  Flags,
  NumChars: LongWord;
begin
  NumChars := Length(Value);
  Flags := 0;
  P := StringToOleStr(Value);
  try
    OLECheck(DesktopShellFolder.ParseDisplayName(
        0,
        nil,
        P,
        NumChars,
        NewPIDL,
        Flags)
     );
    // DELPHI 6 PRO - Orginalquellcode
    // FUpdating := True;
    FUpdating := false;

    SetPathFromID(NewPIDL);
  except on EOleSysError do
    raise EInvalidPath.CreateFmt(SErrorSettingPath, [Value]);
  end;
  FUpdating := False;
end;
es kann natürlich auch sein das die 1. Abfrage in TCustomShellTreeView.SetPathFromID
Delphi-Quellcode:
procedure TCustomShellTreeView.SetPathFromID(ID: PItemIDList);
var
  I: Integer;
  Pidls: TList;
  Temp, Node: TTreeNode;
begin
  if FUpdating or (csLoading in ComponentState)
    or ((SelectedFolder <> nil) and SamePIDL(SelectedFolder.AbsoluteID, ID)) then Exit;
{..}
end;
nicht stimmt auf jeden falls funktioniert meiner erste Variante für das TreeView.

Bei der ShellListView existiert die Prozedur SetPath bzw. das Property Path nicht. Allerdings dürfte es kein Problem sein die von ShellTreeView nach ShellListView zu übertragen
Zynismus ist der geglückte Versuch, die Welt so zu sehen, wie sie wirklich ist.
  Mit Zitat antworten Zitat