Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизTListView Найти похожие ветки
← →
Officeman (2003-07-10 21:43) [0]Доброе время суток! Мастера!
Вопрос по TLIstView
Вывожу в listview содержимое каталога (direc\*.txt)
1. Как выводить в список название подкаталогов каталога "direc", а не файлы (*.txt)!
2. При щелчке на файле из списка в ListView должно происходить событие. Если элемент НЕ выбран в listview и мы нажимаем кнопку с событием, например удалить элемент из
списка ListView то из за того что небыло ничего выбрано происходит ошибка!
Как проверить выбран ли файл(выделен ListView.Selected) из списка ?
ListView.Selected - неподходит всё равно ошибка вылазит! как сделать всё правильно?
3. имеется строка такого вида: 1@001@002
Как разбить её на три подстроки
str1=1
str2=001
str3=002
Методами Delphi6
с Уважением и неисчерпаемой благодарностью, Офисмен
← →
Spawn (2003-07-10 21:55) [1]1)Покажи как выводишь
2) if ListView.Selected<>nil then
3)SavedId:=0;
for i:=0 to Length(str)-1 do
if str[i]="@" then
begin
ShowMessage(Copy(str,SaveId,i-1));
SaveId:=i+1;
end;
Сплю на ходу, тка что могут быть ошибки))
← →
Officeman (2003-07-10 22:18) [2]procedure TForm1.addNewFile(f: TSearchRec);
begin
with form2.L1.items.add, f do begin
caption:=name;
end;
end;
//Вывожу все файлы
procedure TForm1.N20Click(Sender: TObject);
var
f:tsearchrec;
fa:integer;
ff:textfile;
begin
form1.ListView1.Items.Clear;
fa:=faanyfile;
if findfirst("direc\*.txt",fa,f) <>0 then exit;
AddNewFile(f);
while findnext(f)=0 do
begin
addnewfile(f);
end;
findclose(f);
end;
end;
вот таким вот образом вывожу файлы каталога в ListView1
← →
Officeman (2003-07-10 22:23) [3]//поправка !
procedure TForm1.addNewFile(f: TSearchRec);
begin
with form1.ListView1.items.add, f do begin
caption:=name;
end;
end;
← →
Officeman (2003-07-10 22:38) [4]2Spawn©
НЕработает правильно!
показывает только первый элемент!
надо какнить подругому придумать!
лучше выводить в:
label1, label2, label3
procedure TForm1.Button1Click(Sender: TObject);
var
savedid,i:integer;
str:string;
begin
SavedId:=0;
str:=edit1.text;
for i:=0 to Length(str)-1 do
if str[i]="@" then begin
begin
ShowMessage(Copy(str,SavedId,i-1));
SavedId:=i+1;
end;
end;
end;
← →
wl (2003-07-11 10:17) [5]1) Посмотри помощь в делфи по FindFirst(), когда ты пишешь "direct\*. txt" ты ограничиваешь запрос, так как каталоги не имеют расширения как правило.
3) Посмотри помощь по функции Pos, она выдает номер подстроки в строке. Чтобы искать второй и третий символ, уменьшай строку с помощью Copy(...);
← →
Spawn (2003-07-11 10:38) [6]3)Я был сонный мало что соображал)) Вот это нормально все показывает:
procedure TForm1.Button1Click(Sender: TObject);
var
SavedId,i, Counter:integer;
str:string;
begin
str:="2123@34221334@2311234";
Counter:=0;
for i:=0 to Length(str)-1 do
begin
if str[i]="@" then
begin
ShowMessage(Copy(str,i-Counter+1,Counter-1));
Counter:=0;
end;
if (Length(str)-1)=i then
ShowMessage(Copy(str,i-Counter+1,Counter+1));
Inc(Counter);
end;
end;
← →
wl (2003-07-11 11:08) [7]to Spawn © (11.07.03 10:38)
ещё был пожелание выводить в Label1,..3
предложи свой вариант.
Ещё один вопрос, 0 символ в строке паскаля,как мне кажется, означает количество символов с строке? если это так, не возникнет конфликта, если длина строки = Коду символа "@"?
← →
Officeman (2003-07-13 13:54) [8]Как вывести не файлы а наименования подкаталогов (1 уровень), каталога "direc"
procedure TForm1.addNewFile(f: TSearchRec);
begin
with form2.L1.items.add, f do begin
caption:=name;
end;
end;
//Вывожу все файлы
procedure TForm1.N20Click(Sender: TObject);
var
f:tsearchrec;
fa:integer;
ff:textfile;
begin
form1.ListView1.Items.Clear;
fa:=faanyfile;
if findfirst("direc\*.txt",fa,f) <>0 then exit;
AddNewFile(f);
while findnext(f)=0 do
begin
addnewfile(f);
end;
findclose(f);
end;
end;
вот таким вот образом вывожу файлы каталога в ListView1
← →
Marser (2003-07-13 15:01) [9]Добавление поддириктории
....
var f:TsearchRec;
begin
findfirst("direc\*.*",fa,f);
if f.attr=faDirectory then addnewSubdir;
....
end.
← →
Marser (2003-07-13 15:04) [10]
> if f.attr=faDirectory then addnewSubdir;
Естественно, addNewSubdir(f)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c