Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-77856
чайниковский
2003-07-10 10:21
2003.07.24
DirectX


14-78039
Skier
2003-07-07 09:23
2003.07.24
---|Ветка была без названия|---


14-78157
Shum
2003-07-09 15:20
2003.07.24
Квадратик


1-77906
Sasha82
2003-07-14 13:03
2003.07.24
Типа про скроллбар


9-77705
VEG
2003-01-24 15:59
2003.07.24
Как растянуть картинку с помощью DirectX?





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