Delphi error file not found dfm

I am having one xyz.pas file reference in my project. But that file is not with me. I am having the xyz.dcu and xyz.obj file of that xyz.pas file. When I tried to compile the project I have got the...

I hope you haven’t lost your work.

Simplified, Delphi works like this:
PAS+DFM => DCU
DCU+RES => EXE
More about Delphi files at the end of this answer.

You can compile the project if you only have the DCU file. First, remove the PAS file from your folder else Delphi will try to recompile it (and in order to recompile it, it needs the DFM file).
I don’t think the Obj file will be of any use to you.


The DFM file is very very important for your project but yet not critical important. If you are in deep need, you can still go on without it as it can be reconstructed manually based on information you have in the PAS file and based on the way the application’s GUI looks (if you have ever seen it running).

Here is the trick (involves some work):

Just create a new form and then look at the top of your original PAS file for the declaration of the form. It may look like this:

TYPE
  TYourForm = class(TForm)
     xLabel: TLabel;
     yButton: TButton;
     etc
     etc
  end;

Then put all those controls back to your new form and name them exactly as they are named in the PAS file (xLabel, yButton, etc). Arrange them to resemble the original GUI. When done, replace the new created PAS file with your original PAS file. IMPORTANT: the name of the DFM and PAS file should match. Compile and you are done! The rebuilt GUI may not look EXACTLY as the original one, but it should do it.

Hint:
There are tools that can extract the DFM file from DCU/EXE.
Here are some of them: www.delphi2.software.informer.com/download-delphi-extract-dfm
This will help you a lot!


.PAS — Delphi Source File
PAS should be stored in Source Control
In Delphi, PAS files are always the source code to either a unit or a form. Unit source files contain most of the code in an application. The unit contains the source code for any event handlers attached to the events of the form or the components it contains. We may edit .pas files using Delphi’s code editor. Do not delete .pas files.

.DCU — Delphi Compiled Unit
A compiled unit (.pas) file. By default the compiled version of each unit is stored in a separate binary-format file with the same name as the unit file, but with the extension .DCU (Delphi compiled unit). For example unit1.dcu contains the code and data declared in the unit1.pas file. When you rebuild a project, individual units are not recompiled unless their source (.PAS) files have changed since the last compilation, or their .DCU files cannot be found. Safely delete .dcu file because Delphi recreates it when you compile the application.

.DFM — Delphi Form
DFM should be stored in Source Control
These files are always paired with .pas files. Dfm file contains the details (properties) of the objects contained in a form. It can be view as text by right clicking on the form and selecting view as text from the pop-up menu. Delphi copies information in .dfm files into the finished .exe code file. Caution should be used in altering this file as changes to it could prevent the IDE from being able to load the form. Form files can be saved in either binary or text format. The Environment Options dialog lets you indicate which format you want to use for newly created forms. Do not delete .dfm files.

source: delphi.about.com/od/beginners/a/aa032800a.htm

0 / 0 / 0

Регистрация: 17.04.2012

Сообщений: 14

1

27.04.2012, 22:13. Показов 11292. Ответов 21


Помогите пожалйста [Error] File not found: ‘Unit4.dfm’
Что с этим делать?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



5683 / 2274 / 466

Регистрация: 20.11.2009

Сообщений: 7,655

Записей в блоге: 1

27.04.2012, 22:18

2

если есть исходный код, то можно создать проект заново, и перекопировать код, либо подключить существующий файл исходного кода, больше ничего не сделать



0



0 / 0 / 0

Регистрация: 17.04.2012

Сообщений: 14

28.04.2012, 14:29

 [ТС]

3

а как его подключить? если через юзе юнит все подключенно!?

Добавлено через 33 секунды
исходный код и все остальное есть!
просто я думал может как то быстрее можно?

Добавлено через 16 секунд
завтра сдавать базу уже=(

Добавлено через 11 часов 11 минут
больше вариантов никто не подскажет да?=(



0



Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

28.04.2012, 14:40

4

TRamL, у вас нет формы Unit4.dfm… либо восстановите ее (создать заново), либо уберите все ссылки на нее в проекте…



1



0 / 0 / 0

Регистрация: 17.04.2012

Сообщений: 14

28.04.2012, 15:07

 [ТС]

5

Цитата
Сообщение от Lord_Voodoo
Посмотреть сообщение

TRamL, у вас нет формы Unit4.dfm… либо восстановите ее (создать заново), либо уберите все ссылки на нее в проекте…

Спасибо огромное,выручил!
Я вчера пробовал сам так же сделать,тоесть удалить все что с ней связанно в программном тексте,но поччему то не получилось,а так же пробовал создать такой файл,но пробовал тупо в папку его добавить,что только не перепробовал,аж до обсурда дошло(ну это про то что файл в папку с таким название и разрешением создал и запихнул),а сейчас получилось все,удалил все о юнит 4 и норм=)))загружается,добавляет=)СПАСИБО=)



0



Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

28.04.2012, 15:14

6

TRamL, ну что могу сказать — учите матчасть



0



0 / 0 / 0

Регистрация: 17.04.2012

Сообщений: 14

28.04.2012, 15:17

 [ТС]

7

Цитата
Сообщение от Lord_Voodoo
Посмотреть сообщение

TRamL, ну что могу сказать — учите матчасть

а где можно почитать об этом?
есть какой нибудь определенный сайт?



0



Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

29.04.2012, 00:47

8

TRamL, да справка дельфи содержит предостаточно информации



0



1300 / 706 / 107

Регистрация: 25.05.2011

Сообщений: 2,158

Записей в блоге: 51

29.04.2012, 01:50

9

а где можно почитать об этом?
есть какой нибудь определенный сайт?

библия delphi

ссылки на форумы запрещены



0



0 / 0 / 0

Регистрация: 23.12.2016

Сообщений: 1

23.12.2016, 16:55

10

Так никто и не нашёл причину такого поведения компилятора?



0



Модератор

8254 / 5477 / 2248

Регистрация: 21.01.2014

Сообщений: 23,578

Записей в блоге: 3

23.12.2016, 18:33

11

Цитата
Сообщение от AbEd
Посмотреть сообщение

Так никто и не нашёл причину такого поведения компилятора?

Какого поведения? Еще 4.5 года назад было сказано русским языком: файла формы в проекте нет! Что еще-то объяснять надо?



0



0 / 0 / 0

Регистрация: 18.08.2022

Сообщений: 2

18.08.2022, 11:44

12

Так бывает, если сначала создаешь модуль с формой, а в процессе редактирования все компоненты с формы убираешь и форма становится не нужной, но бац и:
«[Error] File not found: ‘Unit4.dfm'»…

Проверьте, не осталась ли в тексте модуля директива компилятора: {$R *.dfm}. Не нужна ведь теперь.

PS нервные какие-то коты с гуслЯми пошли.



0



Модератор

8254 / 5477 / 2248

Регистрация: 21.01.2014

Сообщений: 23,578

Записей в блоге: 3

18.08.2022, 11:52

13

Цитата
Сообщение от f86tesseract
Посмотреть сообщение

нервные какие-то коты с гуслЯми пошли

Вы действительно считаете, что Ваше глубокомысленное замечание действительно столь ценно, чтобы поднимать мертвую тему спустя 10 лет от начала и 6 — с момента последнего поста?



0



0 / 0 / 0

Регистрация: 18.08.2022

Сообщений: 2

18.08.2022, 12:10

14

Тему о гуслярах никто ни 6 ни 10 назад не поднимал.
А тема об ошибке в заголовке темы — вечная )
А вот замечания, что надо документацию всю переизучить явно бессодержательны, также, как перевод трех слов, выдаваемых компилятором, с английского на русский.

Прекрасно сознавая, что мой пост Вы уберете, советую не нервничать и философски относиться к жизни.



0



Модератор

8254 / 5477 / 2248

Регистрация: 21.01.2014

Сообщений: 23,578

Записей в блоге: 3

18.08.2022, 12:21

15

У Вас на форуме 2 поста и в каждом упоминаются какие-то нервы… Так кто тут нервничает-то и кому надо «философски относиться к жизни»?



0



Модератор

3199 / 1813 / 664

Регистрация: 15.11.2015

Сообщений: 7,259

18.08.2022, 17:13

16

Цитата
Сообщение от f86tesseract
Посмотреть сообщение

сначала создаешь модуль с формой, а в процессе редактирования все компоненты с формы убираешь и форма становится не нужной, но бац и:
«[Error] File not found: ‘Unit4.dfm'»…

За более чем 20 лет работы с Delphi ни разу такого не было. А я его как только не мучил, нормально работает.



0



80 / 69 / 11

Регистрация: 23.05.2015

Сообщений: 335

18.08.2022, 21:35

17

Что с этим делать?

Если файла нет, попробуйте его восстановить из резервной копии (если конечно она имеется). Если нет и потеря файла это результат сбоя на hdd — копните поглубже в сторону диска. Да помогут вам RecoveryMyFiles и RStudio мультисимптомные.



0



3295 / 1977 / 635

Регистрация: 29.05.2013

Сообщений: 8,553

19.08.2022, 00:36

18

Цитата
Сообщение от SeGun
Посмотреть сообщение

Если файла нет, попробуйте его восстановить из резервной копии (если конечно она имеется). Если нет и потеря файла это результат сбоя на hdd — копните поглубже в сторону диска. Да помогут вам RecoveryMyFiles и RStudio мультисимптомные

Спустя несколько секунд после удаления файла, восстановить его уже не всегда возможно, а уж через 4 месяца шансы стремятся к 0



0



пофигист широкого профиля

4602 / 3062 / 850

Регистрация: 15.07.2013

Сообщений: 17,660

19.08.2022, 01:22

19

Имхо тут вообще разговаривать не о чем.

Цитата
Сообщение от TRamL
Посмотреть сообщение

а сейчас получилось все,удалил все о юнит 4 и норм

Ясен пень автор топика собирал конструктор лего из тех деталек что нашел на помойке. Юнит 4 ему вообще не был нужен. Но какой-то мусор от этого модуля в его проекте остался, что и мешало ему скомпилировать проект.



0



80 / 69 / 11

Регистрация: 23.05.2015

Сообщений: 335

19.08.2022, 08:12

20

Спустя несколько секунд после удаления файла, восстановить его уже не всегда возможно, а уж через 4 месяца шансы стремятся к 0

Это вы напрасно. Как-то, я этим софтом восстановил залежи давних времен, про которые уже давно забыл. Поэтому шанс есть.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

19.08.2022, 08:12

Помогаю со студенческими работами здесь

[Error] Unit1.pas(43): Declaration expected but end of file found
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,…

[Fatal Error] Unit3.pas(7): File not found: ‘frxExportXLS.dcu’
Unit3.pas(7): File not found: ‘frxExportXLS.dcu’

когда f9 вот такое вот выдает че делать…

[dcc32 Fatal Error] Project1.dpr(15): F1026 File not found
У меня делфи выдает ошибку:
Project1.dpr(15): F1026 File not found:…

[Fatal Error] Project1.dpr(5): File not found: ‘Forms.dcu’
Ребята, нужна помощь , буду заранее благодарен . Вот , собственно , сама проблема

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

Или воспользуйтесь поиском по форуму:

20

Решение найдено.

Код:

Здравствуйте, уважаемые эксперты!У меня такой вопрос как правильно переименовать юнит в уже написанном многомодульном приложении.

Код:

Здравствуйте, GAZ!
Если делать это вручную, то операция занимает несколько шагов.
Для примера: переименовать unit1 в unit15
1. Открыть проект, в нем модуль unit1. Первую строку
unit Unit1;
поменять на
unit Unit15;
2. Переименовать файлы unit1.pas, unit1.dfm, Unit1.ddp, Unit1.dcu, Unit1.~pas, Unit1.~dfm, Unit1.~ddp в соответственно unit15.pas, unit15.dfm, Unit15.ddp, Unit15.dcu, Unit15.~pas, Unit15.~dfm, Unit15.~ddp
3. Открыть модуль проекта, и строку
Unit1 in ‘Unit1.pas’ {Project1},
поменять на
Unit15 in ‘Unit15.pas’ {Form1},
4. Открыть по очереди все остальные модули и если где то используется Unit1 (т.е. присутствует строка Uses unit1;) поменять эту строку на Uses unit15;
Откомпилировать.
Если выскакивает ошибка File not found unit1.dcu значит в каком-то модуле ещё присутствует ссылка на использование Unit1 (uses unit1).
P.S. Рекомендация. перед проведением эксперимента сохранить все файлы проекта в отдельном каталоге (сделать копию каталога программы).

Код:

Здравствуйте, GAZ!
В дополнении…
Сам модуль, который необходимо переименовать, лучше переименовывать средставми Делфи. Для этого используйте «Сохранить как…» или откройте окно Менеджера Проекта и там это сделайте. Тем более, если у вас не просто сам юнит, а еще и форма к нему. И лучше удалять старые .dcu файлы. Потом ручками Поиском и Заменой пройтись по всем модулям проекта и заменить старое название на новое.
Я когда-то в Д5 наступал на такие грабли.

Источник : http://expert.delphi.int.ru/question/1825/

и там ещё продолжение имеется.

У меня есть проект Delphi 7 с этой структурой:

.dpr
foo.pas
*.pas
*.dfm
Bin/
debug/

Большая часть исходного кода, за исключением одного файла, совместно используется другими проектами (хотя это не имеет значения), поэтому я провел некоторую реорганизацию, которая выглядит следующим образом:

.dpr
UniqueFile/
    foo.pas
Common/.pas
    *.pas
    *.dfm
Bin/
debug/

Я изменил пути в .dpr с новой структурой, но когда я по какой-то причине пытаюсь скомпилировать, он не может найти один из файлов .dfm в папке Common. Показанная ошибка:

[Error] File not found: 'SomeFile.DFM'

Однако и .pas, и соответствующий .dfm находятся в этой папке.

Я пропустил какую-то конфигурацию?


РЕДАКТИРОВАТЬ: Этот файл включен в файл .dpr следующим образом:

uses
   ...
   SomeFile in 'Common/SomeFile.pas',
   ...

EDIT2: я скопировал только файл SomeFile.dfm в корневую папку, и он компилируется. По какой-то причине он все еще ищет этот файл по старому пути?

РЕДАКТИРОВАТЬ 3: Я включил то, на что указал @ ken-white, но не повезло. Так что теперь .dpr выглядит так:

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {ChildFrame},
   ...

Я также дважды проверил эту строку в SomeFile.pas:

{$R *.DFM}

Еще одна вещь, на которую я должен обратить внимание, это то, что опция Build работает нормально, но не компилируется.

2 ответа

Лучший ответ

Мне кажется, что ваша проблема (по крайней мере, на данный момент) в том, что вы используете косую черту вместо обратной.

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {ChildFrame},
   ...

… вместо этого должно быть …

uses
   ...
   SomeFile in 'CommonSomeFile.pas' {ChildFrame},
   ...


1

Jerry Dodge
1 Май 2019 в 15:03

В вашем файле .dpr пропущена запись для формы, в которой сообщается, что в среде IDE есть связанный файл .dfm.

При создании нового приложения VCL Forms среда IDE записывает следующую запись в файл проекта:

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

Информация {Form1} говорит IDE искать файл .DFM, который содержит информацию о форме. Вы сказали, что файл .pas находится в вашей новой папке Common, но не сказали, что он также должен искать там файл .dfm. Среда IDE ищет его в папке проекта и не может найти его там. Пока, конечно, вы не скопируете его в папку проекта. :-)

Измените свой .dpr для чтения

uses
   ...
   SomeFile in 'Common/SomeFile.pas' {FormClass},

Заменив {FormClass} на имя переменной формы из вашего SomeFile блока.


2

Ken White
1 Май 2019 в 12:28

 
night_light ©
 
(2009-10-15 13:07)
[0]

при создании формы (выполнении create) выскакивает сообщение «Resource TmyForm not Found», что я не сделал?


 
Юрий Зотов ©
 
(2009-10-15 13:38)
[1]

Возможно, в модуле этой формы удалена директива {$R *.dfm}


 
night_light ©
 
(2009-10-15 15:06)
[2]

директиву добавил, теперь компилятор ругается:
[Error] File not found: «uMyForm.dfm»
не смог найти толкового объяснения по динамическому созданию формы.
Чем оно отличается от аналогичного создания компонента?
Может ссылочку кто кинет на нормальную статью?


 
{RASkov} ©
 
(2009-10-15 15:14)
[3]

> [2] night_light ©   (15.10.09 15:06)
> [Error] File not found: «uMyForm.dfm»

Либо модуль, где описана форма, имеет отличное имя от uMyForm.pas либо файла «uMyForm.dfm» действительно нет.

> не смог найти толкового объяснения по динамическому созданию формы.
> Чем оно отличается от аналогичного создания компонента?

ничем, если не содержет дополнительных полей, таких как наприер Label1: TLabel;, Edit1: TEdit; и т.д.
которые в свою очередь и хранятся в ресурсе формы т.е. *.dfm
другими словами это корректно:

with TForm.Create(nil) do try
 ShowModal;
finally
 Free;
end;

будет создана и показана пустая форма у которой нет файла ресурса *.dfm….


 
clickmaker ©
 
(2009-10-15 15:17)
[4]

> не смог найти толкового объяснения по динамическому созданию
> формы.

CreateNew, если dfm нет. ну и в рантайме создавать и класть на форму все компоненты


 
Медвежонок Пятачок ©
 
(2009-10-15 15:17)
[5]

он ковырял руками файлы проекта и все испортил


 
{RASkov} ©
 
(2009-10-15 15:17)
[6]

> Либо модуль, где описана форма, имеет отличное имя от uMyForm.pas

не, немного не так…. правильно сказать модуль формы и ресурс dfm имеют разные имена… :)


 
Медвежонок Пятачок ©
 
(2009-10-15 15:19)
[7]

модуль формы и ресурс dfm имеют разные имена… :)

не обязательно.
они могут иметь одинаковые имена, но при этом их содержимое не бъет с именами


 
night_light ©
 
(2009-10-15 15:28)
[8]

файла «uMyForm.dfm» конечно же нет,
потому что я его не создавал, и делфи не позаботилась,
соответственно вопрос, кто должен создавать этот файл,
что нужно для его корректного создания?
в форме конечно же есть элементы контроля (по задумке),
иначе у неё пропадает смысл.
С динамическим созданием компонент всё элементарно,
создаю модуль, наследую в нём класс от имеющегося компонента,
описываю нужные мне поля, в основном модуле подключаю созданный
модуль, создаю экземпляр класса, для контролов делаю InsertControl и использую. А вот для форм надо сделать что-то ещё не очевидное мне.
Может кто скажет, что?


 
night_light ©
 
(2009-10-15 15:32)
[9]

я ничего не ковырял :)
только теперь сколько нибудь толково
объяснили, как создавать форму, пробую.


 
Anatoly Podgoretsky ©
 
(2009-10-15 15:32)
[10]

А может проще, может он просто хочет создать форму и не понимает, что надо использовать TForm, а не TMyForm


 
Медвежонок Пятачок ©
 
(2009-10-15 15:35)
[11]

ковырял ковырял. не отмажешься.
R директиву у тебя же не лунатики грохнули.


 
night_light ©
 
(2009-10-15 15:40)
[12]

Удалено модератором
Примечание: Повежливее к отвечающим


 
night_light ©
 
(2009-10-15 15:50)
[13]

на самом деле я хотел вот это:

unit umyForm;
interface

uses Forms;
type
TmyForm = class(TForm)
 public
  ...
  constructor create(...);
 end;

implementation

constructor TmyForm.create(...);
begin
inherited CreateNew(Application);
Visible := True;
...
end;

...
end.


unit Unit1;
interface

uses Forms, uMyForm;

type
TForm1 := class(TForm)
 ...
 public
  myForm: TmyForm;
  ...
 end;

var
 Form1: TForm1;

implementation
{$R *.dfm}
...
end.


 
Медвежонок Пятачок ©
 
(2009-10-15 15:56)
[14]

а чем визуальный дизайнер форм-то не угодил?


I hope you haven’t lost your work.

Simplified, Delphi works like this:
PAS+DFM => DCU
DCU+RES => EXE
More about Delphi files at the end of this answer.

You can compile the project if you only have the DCU file. First, remove the PAS file from your folder else Delphi will try to recompile it (and in order to recompile it, it needs the DFM file).
I don’t think the Obj file will be of any use to you.


The DFM file is very very important for your project but yet not critical important. If you are in deep need, you can still go on without it as it can be reconstructed manually based on information you have in the PAS file and based on the way the application’s GUI looks (if you have ever seen it running).

Here is the trick (involves some work):

Just create a new form and then look at the top of your original PAS file for the declaration of the form. It may look like this:

TYPE
  TYourForm = class(TForm)
     xLabel: TLabel;
     yButton: TButton;
     etc
     etc
  end;

Then put all those controls back to your new form and name them exactly as they are named in the PAS file (xLabel, yButton, etc). Arrange them to resemble the original GUI. When done, replace the new created PAS file with your original PAS file. IMPORTANT: the name of the DFM and PAS file should match. Compile and you are done! The rebuilt GUI may not look EXACTLY as the original one, but it should do it.

Hint:
There are tools that can extract the DFM file from DCU/EXE.
Here are some of them: www.delphi2.software.informer.com/download-delphi-extract-dfm
This will help you a lot!


.PAS — Delphi Source File
PAS should be stored in Source Control
In Delphi, PAS files are always the source code to either a unit or a form. Unit source files contain most of the code in an application. The unit contains the source code for any event handlers attached to the events of the form or the components it contains. We may edit .pas files using Delphi’s code editor. Do not delete .pas files.

.DCU — Delphi Compiled Unit
A compiled unit (.pas) file. By default the compiled version of each unit is stored in a separate binary-format file with the same name as the unit file, but with the extension .DCU (Delphi compiled unit). For example unit1.dcu contains the code and data declared in the unit1.pas file. When you rebuild a project, individual units are not recompiled unless their source (.PAS) files have changed since the last compilation, or their .DCU files cannot be found. Safely delete .dcu file because Delphi recreates it when you compile the application.

.DFM — Delphi Form
DFM should be stored in Source Control
These files are always paired with .pas files. Dfm file contains the details (properties) of the objects contained in a form. It can be view as text by right clicking on the form and selecting view as text from the pop-up menu. Delphi copies information in .dfm files into the finished .exe code file. Caution should be used in altering this file as changes to it could prevent the IDE from being able to load the form. Form files can be saved in either binary or text format. The Environment Options dialog lets you indicate which format you want to use for newly created forms. Do not delete .dfm files.

source: delphi.about.com/od/beginners/a/aa032800a.htm

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Deep sea electronics ошибки
  • Deep rock galactic сессия закончена ошибка
  • Deep rock galactic ошибка при запуске
  • Deep rock galactic как изменить имя на пиратке
  • Deep rock galactic the error cube

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии