![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка
Sergey_Suhoy © (2002-11-26 17:40:00)Очень интересно... Вроде все правильно, но такая конструкция не работает (при выполнении нижеследующего кода возникает ошибка external exception). Прямо гвоздь в ботинке :-). Подскажите, кто знает, в чем я неправ?
//=========CUT============
procedure TForm1.YesBitBtnClick(Sender: TObject);
function FindTXTfiles: TStrings;
var TXTfile: TSearchRec;
TXTFileList: TStrings;
begin
TXTFileList := TStringList.Create;
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then
begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
end;
FindClose(TXTfile); Result := TXTFileList; TXTFileList.Free;
end;
begin
DebugMemo.Lines.Add("Обнаружены следующие TXT-файлы...");
DebugMemo.Lines.AddStrings(FindTXTfiles);
end;
//=========CUT============
mrcat (2002-11-26 18:21:00) [1]>>2tv
>>По моему тут дело все в TXTFileList: TStrings.
истина в ... процедуре
tv (2002-11-26 18:18:00) [2]По моему тут дело все в TXTFileList: TStrings.
Попробуй
function FindTXTfiles: TStringList;
var TXTfile: TSearchRec;
TXTFileList: TStringList;
ну и так далее...
mrcat (2002-11-26 18:07:00) [3]>>MBo
неважно, оптимизацией пусть сам занимается =)
MBo (2002-11-26 18:05:00) [4]>mrcat
Ну ты наворотил...
procedure FindTXTfiles(TXTFileList:TStrings);
var TXTfile: TSearchRec;
begin
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then
begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
FindClose(TXTfile);
end;
end;
mrcat (2002-11-26 17:57:00) [5]дык оно и не должно работать!!!
смотри:
procedure FindTXTfiles(const str: TStrings);
var
TXTfile: TSearchRec;
TXTFileList: TStrings;
begin
TXTFileList := TStringList.Create;
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
end;
FindClose(TXTfile);
Str.AddStrings(TXTFileList);TXTFileList.Free;
end;
begin
DebugMemo.Lines .Add("Обнаружены следующие TXT-файлы...");
FindTXTfiles(DebugMemo.Lines);
end;
MBo (2002-11-26 17:52:00) [6]procedure FindTXTfiles(TXTFileList:TStrings);
...
FindTXTfiles(DebugMemo.Lines);
Smithson (2002-11-26 17:50:00) [7]А на какой конкретно строке возникает ошибка?
И что значит Result := TXTFileList;, у тебя же процедура? Код, похоже, не полный?
mike-d (2002-11-26 17:50:00) [8]Что-то ты тут со Strings намудрил...
Result := TXTFileList; // Result := указателю на объект
TXTFileList.Free; // тут ты его тихо прибил
DebugMemo.Lines.AddStrings(FindTXTfiles); // что теперь вставлять будем?