Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12

Каталогизатор фотографий: поиск по выбранной папке

02.03.2016, 16:40. Показов 1612. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Нужно написать программу в delphi в которой будут храниться фотографии, мне ее нужно сдать в определенный срок, дотянул до последнего, не разобрался ни чего не могу сделать. Суть программы в том что,в ней находятся фотографии, они лежат в определенной папке вместе с самой программой, чтобы не создавать базу данных а просто указать путь. Программа со списком фотографий, и поиском по всем фото, нужно вписать название фотографии и она должна появиться на экране. Примерно что-то такое должно получиться. Есть что-то похожее, но туда нужно поставить поиск по папке которую выбрал, и чтоб указывалось только название изображения, а не то где он расположен и т.д.Помогите пожалуйста.

Вот код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Masks, FileCtrl, jpeg;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
 
 
 procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
var
  SearchRec: TSearchRec;
begin
Dir := IncludeTrailingBackslash(Dir);
if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
repeat
Application.ProcessMessages;
 
if (SearchRec.Attr and faDirectory) <> 0 then begin
if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
DirSearch(Dir + SearchRec.name, Mask, sl)
end
else
if MatchesMask(ExtractFileName(SearchRec.Name), Mask) then
Sl.Add(Dir + SearchRec.Name);
 
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
chosenDirectory : string;
begin
if SelectDirectory('Выберите каталог','', chosenDirectory)
then 
form1.listbox1.Clear;
DirSearch(chosenDirectory, '*.jpg', form1.listbox1.Items);
end;
 
procedure TForm1.ListBox1Click(Sender: TObject);
var
jpg:tjpegimage;
begin
jpg:=tjpegimage.Create;
jpg.LoadFromFile(listbox1.Items[listbox1.ItemIndex]);
image1.Picture.Assign(jpg);
if Assigned(jpg) then jpg.Free;
end;
 
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 16:40
Ответы с готовыми решениями:

Каталогизатор фотографий
Всем привет, хочу написать каталогизатор фотографий на C++ Builder... Может кто писал, знает как программу реализовать?

Каталогизатор фотографий
В школе заставили делать практическую работу, ну я решил написать программу в delphi в которой будут храниться все таблице по физике за...

Запомнить путь к папке, выбранной в FolderBrowserDialog
Добрый день! Задача такая: в программе использую folderBrowserDialog - через него пользователь задает путь к папке, в которой лежат...

21
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
02.03.2016, 17:43
Цитата Сообщение от nmass Посмотреть сообщение
Помогите пожалуйста.
чем помочь то?
0
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
02.03.2016, 18:01  [ТС]
Цитата Сообщение от nmass Посмотреть сообщение
Есть что-то похожее, но туда нужно поставить поиск по папке которую выбрал, и чтоб указывалось только название изображения, а не то где он расположен и т.д.Помогите пожалуйста.
Примерно этим
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
02.03.2016, 20:19
Цитата Сообщение от nmass Посмотреть сообщение
Примерно этим
чем "этим"?

ты скажи что у тебя не получается, в какой строке ошибка - я подскажу как исправить
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
03.03.2016, 04:36  [ТС]
Я просто не знаю что сделать, как создать поиск.
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
03.03.2016, 09:13
у тебя же есть уже поиск
чего ты не знаешь? как им пользоваться?
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
10.04.2016, 10:15  [ТС]
Как сделать что бы при открытие программы в lisbox'е был список файлов из определенной папки?
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
10.04.2016, 10:46
Есть готовый компонент TFileListBox
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
11.04.2016, 15:56  [ТС]
А как из TFileListBox картинку вывести в image?
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
11.04.2016, 16:04
ты когда элемент выбрал, получил имя файла
ну и работай дальше с именем файла
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
11.04.2016, 16:19  [ТС]
Спасибо, а еще можно такой вопрос, как с помощью edit провести поиск по данной папке, я ввожу название файла, он высвечивается в listboxe(не в TFileListBox). Если не трудно можно с примером а то команд не знаю.
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
11.04.2016, 16:31
Цитата Сообщение от nmass Посмотреть сообщение
как с помощью edit провести поиск по данной папке,
это в твоем коде процедура поиска?
Цитата Сообщение от nmass Посмотреть сообщение
procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
используй ее

Цитата Сообщение от nmass Посмотреть сообщение
а то команд не знаю.
0
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
11.04.2016, 16:50  [ТС]
сорян но понятней не стало)
не понимаю как этим воспользоваться, и что вообще делать.
0
11.04.2016, 16:55

Не по теме:

а ты диссертацию не пишешь на тему "ох уж эти скифы"?

0
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
11.04.2016, 16:58  [ТС]
нет)
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
11.04.2016, 17:09
подсказать могу
написать за тебя могу, но не бесплатно

но обучать с нуля не буду
0
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
11.04.2016, 17:21  [ТС]
вот что то наклякал, так должно быть?

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
FindFile(Edit1.Text);
end;

procedure TForm1.FindFile(Dir:String);
Var SR:TSearchRec;
FindRes:Integer;
begin
FindRes:=FindFirst(Dir+'*.*',faAnyFile,S R);
While FindRes=0 do
begin
if ((SR.Attr and faDirectory)=faDirectory) and
((SR.Name='.')or(SR.Name='..')) then
begin
FindRes:=FindNext(SR);
Continue;
end;

if ((SR.Attr and faDirectory)=faDirectory) then
begin
FindFile(Dir+SR.Name+'\');
FindRes:=FindNext(SR);
Continue;
end;

ListBox1.Items.Add(SR.Name);
FindRes:=FindNext(SR);
end;
FindClose(SR);
end;

Добавлено через 6 минут
и еще вопросик, как мне сделать чтобы в FileListBox при нажатии на файл он открывался в image, написал это но не робит

procedure TForm1.FileListBox1Change(Sender: TObject);
begin
FileListBox1.Directory:='D:\Pictures\ио\ ';
end;
procedure TForm1.FileListBox1Click(Sender: TObject);
var
jpg:tjpegimage;
begin
jpg:=tjpegimage.Create;
jpg.LoadFromFile(FileListBox1.Items[FileListBox1.ItemIndex]);
image1.Picture.Assign(jpg);
if Assigned(jpg) then jpg.Free;
end;
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
11.04.2016, 19:48
Все несколько проще, после добавления Jpeg в Uses можно напрямую грузить Jpg-файл:
Delphi
1
2
3
4
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
 image1.Picture.LoadFromFile(FileListBox1.FileName);
end;
1
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 12
14.04.2016, 18:14  [ТС]
А как можно сделать чтоб при в воде в edit начало названия что бы он выдавал тебе возможные варианты, как поиск в яндексе.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
14.04.2016, 19:54
Видимо обработать событие изменения текста вашего едита:
Delphi
1
 FileListBox1.Mask := Edit1.Text
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2016, 19:54
Помогаю со студенческими работами здесь

Открыть все файлы в выбранной папке
Помогите написать батник, который открывает все файлы в выбраной папке. Текстовые просто выводит на экран, а для остальных выдает 2...

Как узнать путь к папке, выбранной в Проводнике ?
Задача такая: При ПКМ на папке в Проводнике Винды в контекстном меню должен появиться пункт &quot;Rename by Folder Name&quot;, при клике...

Получить путь к папке, выбранной посредством формы
Здравствуйте! Кто-нибудь знает как получить путь к папке, выбранной указанным ниже способом: &lt;form action = &quot;&quot; method =...

Удалить N строк из всех файлов в выбранной папке
с одним файлом у меня проблем не возникло: считал файл и при записи пропустил через Skip нужное количество строк, а вот как сделать чтобы...

Как правильно создать файлы в выбранной пользователем папке
Есть такая задача: по кнопке пользователь выбирает папку, в которой создаются текстовые файлы с уже известным содержимым. Как правильно это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru