Текущий архив: 2002.09.16;
Скачать: CL | DM;
Вниз
TShellTreeView Найти похожие ветки
← →
Hro (2002-08-30 23:44) [0]Привет всем. Народ подскажите где взять help по TShellTreeView или как при инициализации установить нужный путь?
Заранее благодарю.
← →
Ученик (2002-08-31 00:23) [1]ShellTreeView1.Path := Путь;
Исходники в Delphi6\Demos\ShellControls
← →
Hro (2002-08-31 09:14) [2]> ShellTreeView1.Path := Путь; не сработал :(
Однако за путь к исходникам спасибо.
← →
SuperOleg (2002-08-31 14:25) [3]не знаю чего там у тебя но я сделал так (внимательно просмотри это кусок из проги по этому сам знаешь но всё работоет)!!!
procedure TForm1.ShellListView1Click(Sender: TObject);
var s: string;
begin
with ShellListView1 do
if SelCount=1 then
with Folders[ItemIndex] do
begin
S:=PathName; //Полный путь к файлу
if S="" then //не все иконки соотв. файлам,напр. спсок
//групп в сетевом окружении
S:=DisplayName; //подпись к иконке
Memo1.Lines.LoadFromFile("Txt\"+s+".txt");
Image1.Picture.LoadFromFile("Picture\"+s+".bmp");
ExecuteDefault;
Label1.Caption:=S;
WinExec(PChar(s),SW_SHOW);
end;
end;
← →
Hro (2002-08-31 21:01) [4]>SuperOleg Мне необходимо не выбирать выбранный (тофталогия получилась :) ) в дереве файл, а наоборот! Есть некая глобальная переменная S : string со значением например S := "C:\programs\myprog" и есть форма с TShellTreeView, вот необходимо чтоб при открытии этой формы в ShellTreeView была выбрана именно папка myprog.
← →
Hro (2002-09-01 09:40) [5]Ну. Ну чтож это такое. Неужели никто не делал настройку какого либо каталога из свойе программы!
← →
Ученик (2002-09-01 11:50) [6]>Hro © (01.09.02 09:40)
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellTreeView1.Path := "C:\";
end;
работает ?
← →
Hro (2002-09-02 12:49) [7]> Ученик. К сожалению предложенный тобой вариант неработает :(
Может какие свойства TShellView не так выставленны?
← →
Ученик (2002-09-02 12:57) [8]>Hro © (02.09.02 12:49)
А не пробовал пройти в отладчике, что именно не работает, в тестовом примере я просто поместил TShellTreeView на форму и добавил Ученик © (01.09.02 11:50)
← →
Hro (2002-09-03 09:31) [9]> Ученик ©
Смотри что я выцепил при отладке. В методе SetPath перед вызовом
SetPathFromID стоит FUpdating := True, а в SetPathFromID с самого начала при условии FUpdating = True - выход. Может я чего недопонял, но стоило мне поставить FUpdating := False как все заработало! Ниже привожу кусок из файла ShellCtrls и жирным выделил ключевые моменты. Сравни пожалуйста со своим исходником.
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)
);
FUpdating := True;
SetPathFromID(NewPIDL);
except on EOleSysError do
raise EInvalidPath.CreateFmt(SErrorSettingPath, [Value]);
end;
FUpdating := False;
end;
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;
FUpdating := True;
Items.BeginUpdate;
try
Pidls := CreatePIDLList(ID);
try
Node := Items[0];
for I := 0 to Pidls.Count-1 do
begin
Temp := FolderExists(Pidls[I], Node);
if Temp <> nil then
begin
Node := Temp;
Node.Expand(False);
end;
end;
Node := FolderExists(ID, Node);
Selected := Node;
if Assigned(Node) then
begin
if Assigned(FListView) then
FListView.TreeUpdate(TShellFolder(Node.Data).AbsoluteID);
if Assigned(FComboBox) then
FComboBox.TreeUpdate(TShellFolder(Node.Data).AbsoluteID);
end;
finally
DestroyPIDLList(Pidls);
end;
finally
Items.EndUpdate;
FUpdating := False;
end;
end;
← →
Ученик (2002-09-03 09:40) [10]В моем исходнике FUpdating := True; нет, и сейчас припоминаю, что когда-то его убирал, но очень давно, сорри.
← →
Hro (2002-09-03 23:30) [11]> Ученик © Ok! Значит все нормально! Спасибо за помощь!
Страницы: 1 вся ветка
Текущий архив: 2002.09.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c