PDA

View Full Version : ShellListView حرکت به جلو



hadiaj168
دوشنبه 09 آذر 1388, 18:43 عصر
سلام
در ShellListView میشه با back به پوشه قبلی رفت.برای پیمایش(!) به جلو هم رویه ای هست؟
در ضمن چجوری میشه آدرسی رو به ShellListView داد ؟منظورم root نیست.
ممنون

Felony
دوشنبه 09 آذر 1388, 19:00 عصر
در ضمن چجوری میشه آدرسی رو به ShellListView داد ؟منظورم root نیست.
منظورتون چی هست ؟ خوب آدرس رو با همون Root میشه بهش داد دیگه .

hadiaj168
سه شنبه 10 آذر 1388, 00:04 صبح
کد زیر رو ببینید :

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellListView1.Back;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ShellListView1.Root:='c:\';
end;
بدون تغییر دادن مقدار rootfolder ، root (اونی که در حال نمایشه)تغییر نمیکنه.

تمام امروز وقتم به این گذشت تا بتونم جوابی پیدا کنم.
کد زیر رو نوشتم که یک شامل دکمه Back و یه دکمه Forward .
اساتید اگه راه بهتری دارن لطف کنن راهنمایی بفرمایند:

var
CurentDir,RootNOW:string;
RootFolderHistory:array[0..100] of string;
RfhNO:integer; // RootFolderHistory No
.
.
.
procedure TForm1.FormCreate(Sender: TObject);
begin
CurentDir:=GetCurrentDir;
ShellListView1.Root:= CurentDir;
end;

procedure TForm1.BbackClick(Sender: TObject);
begin
RfhNO:=RfhNO+1;
RootFolderHistory[RfhNO]:=ShellListView1.RootFolder.PathName;

shelllistview1.Back;

ShellListView1.Root:=ShellListView1.RootFolder.Pat hName;

if ShellListView1.RootFolder.PathName = CurentDir then
Bback.Enabled:=false;

Bforward.Enabled:=true;
shelllistview1.Refresh;
end;

procedure TForm1.BforwardClick(Sender: TObject);
begin
ShellListView1.Root:=RootFolderHistory[RfhNO];
RfhNO:=RfhNO-1;

Bback.Enabled:=true;

if RfhNO=0 then
Bforward.Enabled:=false;
end;

procedure TForm1.ShellListView1Click(Sender: TObject);
begin
RootNOW:=ShellListView1.RootFolder.PathName;
end;

procedure TForm1.ShellListView1DblClick(Sender: TObject);
begin

if ShellListView1.RootFolder.PathName<>RootNOW then
begin
Bforward.Enabled:=false;
Bback.Enabled:=True;
RfhNO:=0;
end;

end;