![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.07.2012
Сообщений: 34
|
![]()
Откопал на просторах интернета замечательную процедуру на поиск файлов в подпапках, но возникло пару вопросов в которых я не в силах разобраться:
1. Как можно прикрутить вместо Memo вывод данных в какой-то не визуальный объект, к примеру StringList? 2. Допустим мне нужно чтобы в самом конце создаваемого процедурой списка, один раз производилось какое-то действие, к примеру memo1.Lines.Add('End'); когда я эту строчку записываю после FindClose(sRec); то слово End повторяется столько раз, сколько отработала процедура. Можно ли это как-то обойти, чтобы memo1.Lines.Add('End') отработал только один раз? Код:
|
![]() |
![]() |
![]() |
#2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]() Код:
Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 10.07.2012
Сообщений: 34
|
![]()
Дык у меня возникает почти та же ошибка что и при использовании StringList вместо Strings, компилятор подчеркивает красным
Код:
![]() А при выводе данных в Memo всё работает отлично. Собсно поэтому и создавал тему. Последний раз редактировалось Raf-9600; 06.01.2013 в 17:25. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Вы наверняка забыли создать объект, который передаёте в качестве параметра SL
Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 10.07.2012
Сообщений: 34
|
![]()
Serge_Bliznykov, Вы правы
![]() Благодарю за подсказку. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Отлично. Поздравляю.
И не забудьте, как правило, всё, что Вы в программе создали руками, нужно в своей же программе и освободить - вызывать метод SL1.Free или воспользоваться процедурой FreeAndNil( SL1 ) (это почти одно и то же. Процедура дополнительно обнуляет указатель на объект, что более безопасно в плане попыток использования указателя в программе в дальнейшем) |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 10.07.2012
Сообщений: 34
|
![]()
У меня возникла ещё одна трудность: почему-то не получается сделать так, чтобы записываемая строка была уже отформатированной:
Код:
Дык вроде ж все переменные созданные в процедуре, живут только во время действия этой процедуры, а значит в данном случае нет смысла их вручную освобождать. Разве я ошибаюсь? Последний раз редактировалось Raf-9600; 06.01.2013 в 22:51. |
![]() |
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
допустим, Вы написали var SL1 : TStringList; эта переменная (ссылка на объект, == pointer) занимает в Win 32 4 байта. Вы выделяете память под объект, грузите туда кучу строк, потом выходите из процедуры, не вызвав декструктор. Сколько памяти будет освобождено? Верно - 4 байта. А та туева куча строк так и будет висеть в памяти, отмеченная, как занятая. Разумеется, когда Ваша программа закроется, то вся занятая программой память будет отдана системе, но каждый вызов вашей процедуры в программе будет приводит к тому, что памяти будет становится всё меньше, меньше, меньше.. это называется "memory leaks" Цитата:
|
||
![]() |
![]() |
![]() |
#10 | ||||
Пользователь
Регистрация: 10.07.2012
Сообщений: 34
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Raf-9600; 07.01.2013 в 02:11. |
||||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Два простых вопроса | skvair | C++ Builder | 4 | 31.01.2012 22:28 |
Два небольших вопроса :) | f4rr3l | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 10.01.2009 12:44 |
Два тупых вопроса. | proglamer | Общие вопросы Delphi | 2 | 10.04.2008 07:12 |
Два вопроса | Никки | Общие вопросы Delphi | 2 | 19.01.2008 21:39 |
Два простых вопроса | Relrin | Общие вопросы Delphi | 3 | 28.12.2007 16:00 |