а насчет удаления замени этот символ 0 и все[/QUOTE]
procedure TFileMachine.FilesLeftKeyPress(Sender: TObject; var Key: Char);
begin
If Ord(Key)=13 then
begin
if FilesLeft.Selected.Caption <> '[..]' then
begin
Path:=Path+FilesLeft.Selected.Caption+'\';
InsertFilesLeft(DriveLeft.Text,'\',Path,FilesLeft,ImageListLeft);
PanelPathLeft.Caption:='C:\'+Path;
end;
Файловый Менеджер
Как лучше следать, через массив удалять имя папки, или через другую функцию?
fot не понятно о каких папках речь? т.е. удалять папки со вложеными?
тогда рекурсией, сначало внутри все файлы а потом пустую папку
fot не понятно о каких папках речь? т.е. удалять папки со вложеными?
тогда рекурсией, сначало внутри все файлы а потом пустую папку[/QUOTE]
Нет вы не правильно поняли, я через FindFirst и FindNext, вывожу папки, а так же с помощью SHGetFileInfo, вывожу их иконки, имя, тип... Ну а дальше размер и дату.
Вообщем по папкам он переходит, но обратно не возвращается.
Вот я думаю, нужно если caption='..', что бы удаляло с конца текст до \.
Только незнаю как, может подскажете? :(
а насчет удаления замени этот символ 0 и все
Код:
Вобщем, Path это пусть, FilesLeft.Selected.Caption это выбраная папка. По нажатию на Enter, папка добавляется в путь... В папки заходит без проблем. Вот если я нажимаю на [..], я должен с конца удалить текст до первого '\', и заново перейти в папку, должно сработать. Но вот я не знаю функций работы со строками. :(
Код:
procedure MyProc(var Path: String);
var
I: Integer;
begin
I := Length(Path) - 1;
while I > 0 do begin
if Path = '\' then Break;
Dec(I);
end;
if (I > 0) and (Path = '\') then Path := Copy(Path, 1, I);
end;
var
I: Integer;
begin
I := Length(Path) - 1;
while I > 0 do begin
if Path = '\' then Break;
Dec(I);
end;
if (I > 0) and (Path = '\') then Path := Copy(Path, 1, I);
end;
писал с головы.... возножно есть баги
[ATTACH]1048[/ATTACH]
Почему при отображении иконок файлов, папок, сзади получается чёрный фон? :(
а как ложишь эти иконки?
Загоняются иконки в TImageList, потом FilesLeft.SmallImages:=ImageLeft;
в винде добавлен канал прозрачности (RGBA) а у тя просто RGB... вот и всё...