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

Не работает поиск файлов

14.11.2016, 15:27. Показов 1392. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите понять почему не работает программа. при запуске элемент TEdit не запускается , вот код
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
unit _shpic;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, FileCtrl;
type
TForm1 = class(TForm)
 Image1: Timage;
 Button1: TButton;
 Label1: Tlabel;
 Edit1: TEdit;
    Button2: TButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
 
aSearchRec : TSearchRec;
aPath : String; // каталог, в котором находятся иллюстрации
aFile : String; // файл иллюстрации
iw,ih: integer; // первоначальный размер компонента Image
implementation
{$R *.DFM}
// изменение размера области вывода иллюстрации
// пропорционально размеру иллюстрации
Procedure Scalelmage;
var
pw, ph : integer; // размер иллюстрации
scaleX, scaleY : real; // масштаб по Х и Y
scale : real; // общий масштаб
begin
// иллюстрация уже загружена
// получим ее размеры
pw := Form1.Image1.Picture.Width;
ph := Form1.Image1.Picture.Height;
if pw > iw // ширина иллюстрации больше ширины компонента Image
then scaleX := iw/pw // нужно масштабировать
else scaleX := 1;
if ph > ih // высота иллюстрации больше высоты компонента
then scaleY := ih/ph // нужно масштабировать
else scaleY := 1;
// выберем наименьший коэффициент
if scaleX < scaleY
then scale := scaleX
else scale := scaleY;
// изменим размер области вывода иллюстрации
Form1.Image1.Height := Round(Form1.Image1.Picture.Height*scale);
Form1.Image1.Width := Round(Form1.Image1.Picture.Width*scale);
// т. к. Strech = True и размер области пропорционален
// размеру картинки, то картинка масштабируется без искажений
end;
// вывести первую иллюстрацию
procedure FirstPicture;
var
r : integer; // результат поиска файла
begin
aPath:=Form1.Edit1.Text;
//aPath := 'f:\';
Form1.Edit1.Text:=apath;
r := FindFirst(aPath+'*.bmp',faAnyFile,aSearchRec);
if r = 0 then
begin // в указанном каталоге есть bmp-файл
aFile := aPath + aSearchRec.Name;
Form1.Image1.Picture.LoadFromFile(aFile); // загрузить
// иллюстрацию
Scalelmage; //-установить размер компонента image
r := FindNext(aSearchRec); // найти следующий файл
if r = 0 then // еще есть файлы иллюстраций
Form1.Button1.Enabled := True;
end;
end;
// вывести следующую иллюстрацию
Procedure NextPicture();
var 
r : integer;
begin
aFile := aPath + aSearchRec.Name;
Form1.Image1.Picture.LoadFromFile(aFile);
Scalelmage;
// подготовим вывод следующей иллюстрации
r := FindNext(aSearchRec); // найти следующий файл
if r<>0
then // больше нет иллюстраций
Form1.Button1.Enabled := False;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Image1.AutoSize := False; // запрет автоизменения размера компонента
Image1.Stretch := True; // разрешим масштабирование
// запомним первоначальный размер области вывода иллюстрации
iw := Image1.Width;
ih := image1.Height;
Button1.Enabled := False; // сделаем недоступной кнопку Дальше
FirstPicture; // вывести первую иллюстрацию
end;
//щелчок на кнопке Дальше
procedure TForm1.Button1Click(Sender: TObject);
begin
NextPicture;
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  Image1.AutoSize := False; // запрет автоизменения размера компонента
Image1.Stretch := True; // разрешим масштабирование
// запомним первоначальный размер области вывода иллюстрации
iw := Image1.Width;
ih := image1.Height;
Button1.Enabled := False; // сделаем недоступной кнопку Дальше
FirstPicture; // вывести первую иллюстрацию
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var chosenDirectory:string;
begin
if SelectDirectory('Выберите каталог', 'F:\', chosenDirectory)
  then
  begin
  ShowMessage('Выбранный каталог = '+chosenDirectory);
  Edit1.Text:=chosenDirectory;
  end
  else ShowMessage('Ошибка');
 
end;
 
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2016, 15:27
Ответы с готовыми решениями:

Не работает поиск файлов по маске
Народ, помогите! Требуется найти все .exe файлы в папке. Использую FindFirst(); while FindFirst('*.exe',faAnyFile,client)=0 do begin...

Не работает поиск файлов
Он вообще в Линуксе сырой? Например, мне надо найти файл, и я ввожу Ми - например, я не помню, то ли Миша, толи Михаил, или Михай. Не...

Не работает поиск файлов
Не работает поиск файлов только, если выбираю папку, если выбрать только локальный диск например &quot;D&quot;, то пишет ошибку disk =...

15
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,159
Записей в блоге: 3
14.11.2016, 15:51
Цитата Сообщение от Анисина Дарья Посмотреть сообщение
при запуске элемент TEdit не запускается
это что за описание ошибки?
что значит "не запускается"? куда он должен запускаться? в небо?

если вам делфи пишет ошибку - покажите
если ошибка во время работы - покажите
а вы приводите код и "не запускается".. что искать то?
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
14.11.2016, 16:12  [ТС]
qwertehok, программа должна искать фотографии и любого места на компьютере. и вот не могу понять что нужно ввести в TEdit чтобы программа начала работать. думала может в коде ошибка
0
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,159
Записей в блоге: 3
14.11.2016, 16:17
Цитата Сообщение от Анисина Дарья Посмотреть сообщение
вот не могу понять что нужно ввести в TEdit
может туда нужно ввести путь?
0
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
14.11.2016, 16:24
Цитата Сообщение от Анисина Дарья Посмотреть сообщение
программа должна искать фотографии и любого места на компьютере. и вот не могу понять что нужно ввести в TEdit
Цитата Сообщение от qwertehok Посмотреть сообщение
может туда нужно ввести путь?
или имя файла фотографии...

Добавлено через 1 минуту
хотя не.. взглянул на код, скорее путь)
Delphi
1
2
3
4
aPath:=Form1.Edit1.Text;
//aPath := 'f:\';
Form1.Edit1.Text:=apath;
r := FindFirst(aPath+'*.bmp',faAnyFile,aSearchRec);
Добавлено через 2 минуты
Анисина Дарья, попробуйте в Edit ввести путь папки в которой хранятся изображения, типа
c:\Users\admin\Pictures\
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
14.11.2016, 16:56  [ТС]
AHBAR, не ищет все равно
0
Эксперт Pascal/Delphi
 Аватар для droider
4888 / 2822 / 865
Регистрация: 04.10.2012
Сообщений: 10,262
14.11.2016, 18:17
Анисина Дарья, как путь прописали?
0
15.11.2016, 05:46

Не по теме:

Люди, о чем вы говорите? какие пути? Тут же "Edit не запускается"!!! :D

0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
15.11.2016, 13:19  [ТС]
droider,
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
15.11.2016, 13:20  [ТС]
droider, D1973, вот сама программа, посмотрите пожалуйста. он ищет просто на диске, а вот уже в подкаталогах не видит
Вложения
Тип файла: zip LR10.zip (243.2 Кб, 5 просмотров)
0
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,159
Записей в блоге: 3
15.11.2016, 13:35
Анисина Дарья, покажите как вы путь задаете
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
15.11.2016, 14:04  [ТС]
qwertehok, D:\work вот к примеру

Добавлено через 14 минут
droider, D:\work вот так к примеру
0
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,159
Записей в блоге: 3
15.11.2016, 14:34
а вы свой код смотрели который за поиск отвечает?
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
15.11.2016, 16:29  [ТС]
qwertehok, ну конечно смотрела, но понять в чем проблема не могу
0
60 / 60 / 26
Регистрация: 30.05.2016
Сообщений: 293
15.11.2016, 16:59
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Анисина Дарья, работает и в подкаталогах - завершайте путь слэшем
0
0 / 0 / 0
Регистрация: 01.05.2016
Сообщений: 142
15.11.2016, 17:07  [ТС]
rusqwe, да действительно, спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2016, 17:07
Помогаю со студенческими работами здесь

Не работает поиск файлов на диске
Dim a() As String = IO.Directory.GetFiles(&quot;с:&quot;, &quot;.exe&quot;, IO.SearchOption.TopDirectoryOnly) Почему a() все время 0, функция ничего не...

Не работает поиск программ и файлов в пуске
Всем привет. Вылазит надпись, когда через &quot;найти программы и файлы&quot; пытаюсь запустить программы. Например ввожу cmd. Возникает вертикальное...

Чтение файлов, запись и дозапись в файл, поиск файлов в каталоге и поиск данных в файле
2. Создать файлы, в которых будут вмещаться строки с именами студентов и их средними балами. Каждый файл будет отвечать отдельной группе. ...

Поиск файлов на всех дисках и вывод найденных файлов в одну строку
using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Поиск давних файлов кроме системного диска и системных файлов
Здравствуйте, есть код: string firstAcessedPaths3 = DriveInfo.GetDrives() //.Where(di =&gt;...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru