Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-50753
CrazyHackers
2002-09-05 14:18
2002.09.16
Развернуть данные в таблице


4-51042
hovl
2002-07-23 20:24
2002.09.16
UNLOADDLL


14-50965
Ренат
2002-08-19 10:45
2002.09.16
А какие автомобили предпочитают программеры?


1-50722
lovres
2002-09-05 14:21
2002.09.16
Вопрос про VTable интерфейс


14-50962
JAndrey
2002-08-22 10:24
2002.09.16
Где взять компоненты для работы с COM, LPT, EPP, ECP портами???..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский