Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > расширение вlistbox


Автор: Михалыч 31.8.2011, 17:07
Загружаем в listbox из папки файлы, далее нужно из listbox загрузить в combobox названия файлов но без расширений , вот чего наэкспериминтировал: Но загружается в combobox только имя пследнего файла

Код:


Код

var
  index: Integer;
begin

  form1.fllst1.Directory := 'c:\555';
 form1.fllst1.Mask := '*.dll';
  For index := 0 to form1.fllst1.Count -1 do
   ExtractOnlyFileName(form1.fllst1.Items[index]);
    ComboBox1.Items.Add(file_extension);//переменная string
end;

function TForm1.ExtractOnlyFileName(const FileName: string): string;
begin
 file_extension:=StringReplace(ExtractFileName(FileName),ExtractFileExt(FileName),'',[]);
end;



Автор: superVad 31.8.2011, 17:16
Код

  For index := 0 to form1.fllst1.Count -1 do
  begin
    ExtractOnlyFileName(form1.fllst1.Items[index]);
    ComboBox1.Items.Add(file_extension);//переменная string
  end;


Код

function TForm1.ExtractOnlyFileName(const FileName: string): string;
begin
 Result := StringReplace(ExtractFileName(FileName),ExtractFileExt(FileName),'',[]);
end;

//И потом:
ComboBox1.Items.Add(ExtractOnlyFileName(form1.fllst1.Items[index]));


Глобальные переменные - это не очень хорошо.

Автор: Keeper89 31.8.2011, 17:18
Ну потому что во всем этом ужасе надо сделать хотя бы так:
Код

  For index := 0 to form1.fllst1.Count -1 do
  begin
    ExtractOnlyFileName(form1.fllst1.Items[index]);
    ComboBox1.Items.Add(file_extension);//переменная string
  end;


Добавлено через 21 секунду
Опоздал smile

Автор: Михалыч 31.8.2011, 17:18
Спасибо! Но а почему не загружается весь список? В чем ошибка?

Теперь я опоздал, спасибо

Автор: superVad 31.8.2011, 17:20
Цитата(Михалыч @  31.8.2011,  16:18 Найти цитируемый пост)
Спасибо! Но а почему не загружается весь список? В чем ошибка?

Обрати внимание на  begin end. Если все равно не понятно то надо читать книжки по делфи.

Автор: Михалыч 31.8.2011, 17:23
А есть вариант другого ужаса?

Спасибо ,обратил внимание,сразу не понял


Ну а че,этот ужас, совсем ужас или нормально?

Автор: Keeper89 31.8.2011, 18:54
Если хочется иметь отдельную функцию, то можно сделать так:
Код

For index := 0 to form1.fllst1.Count -1 do
    ComboBox1.Items.Add(ExtractOnlyFileName(form1.fllst1.Items[index]));

function TForm1.ExtractOnlyFileName(const FileName: string): string;
begin
  Result := StringReplace(ExtractFileName(FileName),ExtractFileExt(FileName),'',[]);
end;

Автор: superVad 31.8.2011, 19:16
Цитата(Михалыч @  31.8.2011,  16:23 Найти цитируемый пост)
Ну а че,этот ужас, совсем ужас или нормально?

Работает и ладно.

Я бы только файлы искал по другому. http://delphidevelop.ru/publ/13-1-0-17 - таким бы образом сразу вставлял строчки в комбобокс (вместо листбокса в примере) возможно.

Автор: Keeper89 31.8.2011, 19:23
Цитата(superVad @  31.8.2011,  19:16 Найти цитируемый пост)
Работает и ладно.

Что значит работает и ладно? Это пипец использовать функцию для изменения глобальной переменной да еще и ничего не возвращать.

Автор: superVad 31.8.2011, 20:16
Цитата(Keeper89 @  31.8.2011,  18:23 Найти цитируемый пост)
Что значит работает и ладно? Это пипец использовать функцию для изменения глобальной переменной да еще и ничего не возвращать.

Ну я с той точки зрения, что про это уже выше написано.

 smile поздравляю с сертификатом  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)