Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.008 c
1-77917
FiendAndre
2003-07-10 10:34
2003.07.24
Перекодировка текста win-to-dos


9-77711
Antichacker
2003-02-02 16:14
2003.07.24
Можно ли вращать камеру вокруг своей оси? В demos camera нету


14-78099
Dmitriy O.
2003-07-08 10:28
2003.07.24
Как качественно


14-78113
Boss
2003-07-08 11:55
2003.07.24
Как зарегестрировать БД, чтоб она работала на другом ПК


1-77903
SVN17
2003-07-11 15:18
2003.07.24
Обработчик сообщений





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский