Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

[Delphi6]файлы

Здравствуйте!
Как добавить в листбокс имена всех файлов из определенной директории с
определенным расширением?
Желательно кусок кода.

Спасибо!

Ответить   Sat, 13 Mar 2004 19:22:09 +0200 (#102167)

 

Ответы:

==-==-=-Привета!13 марта 2004 г. (суббота 19:22:09) keel (E-Mail: <dima***@s*****.by>) в мессаге
<<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>

[-~-~-~-~-~-~>

Посмотри в докумененталке к ДЕльфу (в 6.0 100% есть) инфу о том, как рисунки
всовывать в листбох. Там есть то, что тебе ныжно (с исходником)! ТАм по маске
ищятся БМПхи и пихаются в листбокс вместе со своими именами.

Ответить   -=BorMaN=- Mon, 15 Mar 2004 00:38:31 +0200 (#102950)

 

Тема: [Delphi6]файлы

Таки это просто решается с помощью FindFirst и FindNext. Почти как в Borland
Pascal. Примеры есть везде.
В том числе и в справке по Delphi

Ответить   Mon, 15 Mar 2004 09:56:03 +0300 (#103094)

 

==-==-=-Привета!15 марта 2004 г. (понедельник 8:56:03) Surin_bp (E-Mail: <surin_***@m*****.ru>)
в мессаге <<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>
Surin_bp> Тема: [Delphi6]файлы

Surin_bp> Таки это просто решается с помощью FindFirst и
Surin_bp> FindNext. Почти как в Borland
Surin_bp> Pascal. Примеры есть везде.
Surin_bp> В том числе и в справке по Delphi

[-~-~-~-~-~-~>
Да надо глянуть то, что я говорю (см. раньше)!!! Там всего одна строка и ВСЕ!!!
И никаких граблей с FindFirst и FindNext :-)

Ответить   -=BorMaN=- Mon, 15 Mar 2004 21:00:39 +0200 (#103620)

 

==-==-=-Привета!13 марта 2004 г. (суббота 19:22:09) keel (E-Mail: <dima***@s*****.by>) в мессаге
<<[Delphi6]файлы>> накрапал
[-~-~-~-~-~-~>

[-~-~-~-~-~-~>

Вот тебе кусок кода, который тулит в листбокс все битмапы в директории:
_Как вставить растровое изображение в компонент ListBox?_

Для этого необходимо установить в инспекторе объектов поле Style в lbOwnerDrawFixed,
при фиксированной высоте строки, или в lbOwnerDrawVariable, при переменной, и
установить собственный обработчик события для OnDrawItem. В этом обработчике
и надо рисовать растровое изображение.
Пример:Рисуются изображения размером 32*16 (размер стандартного глифа для Delphi).
Очень полезно при поиске нужного изображения для кнопок!Установить в инспекторе
объектов для ListBox поле ItemHeight = 19, а поле Color = clBtnFace.

{ Загрузить список файлов в ListBox1 при нажатии на кнопку Load (например)}
procedure TForm1.bLoadClick(Sender: TObject);
VAR S : String;
begin
ListBox1.Clear; {чистим список}
S := '*.bmp'#0; {задаем шаблон}
ListBox1.Perform(LB_DIR, DDL_ReadWrite, Longint(@S[1])); {заполняем список}

end;
............

{Отобразить изображения и имена файлов в ListBox}
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: DrawState);
VAR
Bitmap : TBitmap;
Offset : Integer;
BMPRect: TRect;
begin
WITH (Control AS TListBox).Canvas DO BEGIN
FillRect(Rect);
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile(ListBox1.Items[Index]);
Offset := 0;
IF Bitmap <> NIL THEN BEGIN
BMPRect := Bounds(Rect.Left+2, Rect.Top+2,
(Rect.Bottom-Rect.Top-2)*2, Rect.Bottom-Rect.Top-2);

{StretchDraw(BMPRect, Bitmap); Можно просто нарисовать, но лучше сначала
убрать фон}
BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
Offset := (Rect.Bottom-Rect.Top+1)*2;
END;
TextOut(Rect.Left+Offset, Rect.Top, ListBox1.Items[Index]);
Bitmap.Free;
END;
end;

Данный пример работает медленно, но оптимизация, для ускорения, вызвала бы трудность
в понимании общего принципа его работы.

Вообще-то тебе нужна только procedure TForm1.bLoadClick(Sender: TObject);

Ответить   -=BorMaN=- Mon, 15 Mar 2004 21:09:11 +0200 (#103621)

 

Здравствуйте, keel.

Вы писали 13 марта 2004 г., 20:22:09:

используй FindFirst \ FindNext

Ответить   Tue, 16 Mar 2004 09:33:15 +0300 (#104411)