|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как бы реализовать простую штукенцию
В папке лежать файлы(анкеты) типа "запись", программа находит все нужные файлы и выводит в какую либо область напр "ListBox" немного информации для ознакомления из каждого файла, далее при двойном нажатии на выбранное поле нужно загрузить этот файл. Как бы связать эту информацию с файлом ?
|
#2
|
|||
|
|||
1. Либо сохраняешт в отдельный список имена файлов, а потом по индексу можешь узнать
2. Либо (что не надежно) высчитывать Index по FileSearch, т.е. когда добавлялась строка с индексом 5 (ListBox.Items[5]), она естественно добавлялась при 6-ом NextFind-е, так можно вычислить :-) НО! Не факт что повторный поиск выдает в таком же порядке и что файлы небыли удалены или добавлены. |
#3
|
|||
|
|||
Да я уже пробовал через динамический массив но что то не то, то ли я где то ошибку допустил толи еще что то, в общем при обращении к строке загружался не тот файл. ладно попробую еще раз.
|
#4
|
||||
|
||||
Достаточно создать класс типа TMyFile
(смотри вложенный пример) как работать с файлами я туда не писал надеюсь это ты уже и сам написал |
#5
|
|||
|
|||
не могу закачать файл, DownloadMaster скачивает attachment.php а встроенная качалка нехотит перехватывать и DM не отключается.
зараза. Скачал, пришлось IE юзать Последний раз редактировалось Gad99, 28.02.2008 в 23:32. |
#6
|
||||
|
||||
Не понял зачем 3 кило кочалкой мой Лис в 2 секунды закачал
|
#7
|
|||
|
|||
Дык о чем и говорю. У мну тоже лис + (DM + FlashGot) установлены. Дык эта связка качалок перехватывали закачку и качали не то что надо, а отключить их не как не получалось. Ну да ладно скачал и появился вопрос. Я с классами не очень точнее совсем ни как. С горем пополам собрал все вместе но не могу срастить такую стоку.
Код:
AssignFile(Anketa1, ); и Load1.ListBox1.Items.Objects |
#8
|
|||
|
|||
Цитата:
Может подскажешь так что б до конца дошло |
#9
|
||||
|
||||
Код:
procedure TForm1.ListBox1Click(Sender: TObject); begin // ItemIndex - текущий индекс (проверим не на пустой лист щелкнули) if ListBox1.ItemIndex < 0 then exit; // проверяет что индекс содержит наш объект if not (ListBox1.Items.Objects[ListBox1.ItemIndex] is TMyFile) then exit; // выдаем сообщение или AssignFile(Anketa1, (ListBox1.Items.Objects[ListBox1.ItemIndex] as TMyFile).Name); Application.MessageBox(PChar('Выбран файл: ' + (ListBox1.Items.Objects[ListBox1.ItemIndex] as TMyFile).Name),'Выбран файл') end; |
#10
|
||||
|
||||
Немного дополню(надеюсь не лишне)
Если можно, то немного дополню:
За место Код:
function Name: string; Код:
property Name: string read Fname write Fname; Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#11
|
|||
|
|||
Компилятор все равно ругается вот на эту строчку
AssignFile(Anketa1,(Load1.ListBox1.Items.Objects[Load1.ListBox1.ItemIndex] as TMyFile).Name)+'.tms'); Incompatible types: 'String' and 'Procedure', untyped pointer or parameter. Весь код Код:
procedure TForm1.Load1ListBox1DblClick(Sender: TObject); Var x : string; begin SetCurrentDir(CurDir+'\data\'); if Load1.ListBox1.ItemIndex < 0 then exit; if not (Load1.ListBox1.Items.Objects[Load1.ListBox1.ItemIndex] is TMyFile) then exit; AssignFile(Anketa1,(Load1.ListBox1.Items.Objects[Load1.ListBox1.ItemIndex] as TMyFile).Name)+'.tms'); Reset(Anketa1); Read(Anketa1,Anketa); CloseFile(Anketa1); end; Последний раз редактировалось Gad99, 02.03.2008 в 21:57. |
#12
|
||||
|
||||
дополнение лишнее
Цитата:
если б мы объект использовали в полной мере можно было бы, а так при создании записываем, а Name() только для чтения можно вообще: PHP код:
тогда property имеет смысл, а так только надстройка. |
#13
|
||||
|
||||
Цитата:
попробуй убрать красную скобку AssignFile(Anketa1,(Load1.ListBox1.Items.Objects[Load1.ListBox1.ItemIndex] as TMyFile).Name)+'.tms'); а +'.tms' зачем? ты же Name никому не показываешь и извлекаеш из файла так и храни там хоть полный путь (хотя это уже твое дело) И не забывай смотреть, что пишешь |
#14
|
||||
|
||||
хотел бы еще раз вернуться к
PHP код:
Можно вынести этот вопрос в отдельную тему типа: зачем писать PHP код:
понятно если property Name: string read Fname; или property Name: string read GetName write SetName; и почему в компонентах это часто встречается? (у меня уже есть свой вариант ответа) |
#15
|
|||
|
|||
Все заработало СПС, после того как кое что переделал:
1) убрал лишнюю скобку (которая крассная) 2) убрал '.TMS', мне казалось что в .name хранилось только имя файла без разширения. |