IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Модули, Пару вопросов.
Rom1k
сообщение 14.05.2007 0:09
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Написал программу с использованием модулей.Всё на 100 % правильно.Компилирую,пишет: "Cannot run a unit" , хотя написал всё правильно.А когда в другой программе пытаюсь использовать его,он пишет,что не найден.В чём ошибка/проблема?!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 14)
мисс_граффити
сообщение 14.05.2007 0:22
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Может, прикрепишь этот модуль?
Возможно, раз выдает ошибку, что-то все же неправильно...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.05.2007 0:31
Сообщение #3


Гость






Цитата
Компилирую,пишет: "Cannot run a unit"
Значит, ты не компилируешь, а запускаешь... А модули нельзя запускать...
 К началу страницы 
+ Ответить 
Rom1k
сообщение 14.05.2007 21:29
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


а как его компилировать,чтобы сохранялся в файле TPU в определенной директории?!

Добавлено через 1 мин.
чтобы можно было использовать модуль в определенный момент?!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Renbo
сообщение 14.05.2007 21:33
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Цитата(Rom1k @ 14.05.2007 22:29) *

а как его компилировать,чтобы сохранялся в файле TPU в определенной директории?!


ты его запустил, после этого у тебя скомпилировался фаил ИМЯ.o и ИМЯ.PPU в той дериктории, где у тебя лежал исходник. Если хочешь запустить исходную прогу, в которой будет использоваться Модуль, то все файлы должны лежать в одной директори.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.05.2007 21:39
Сообщение #6


Гость






В меню зайди Options -> Directories... Там тебя интересуют 2 поля: EXE&TPU Directory - это та папка, куда будут компилироваться EXE и TPU файлы (во что компилировать - Паскаль разберется сам, по исходнику)

И поле Unit Directories - это те пепки, где Паскаль будет искать TPU файлы... Если в это поле добавить через точку с запятой содержимое поля "EXE&TPU Directory", то Паскаль будет искать TPU и в той папке, куда сам их скомпилировал...

Если первое поле оставить пустым, то TPU будет создан в текущей папке...

Добавлено через 2 мин.
Renbo, ты разделом не ошибся? Какие *.PPU? Какие *.O? Обязательно еще больше человека запутать? mad.gif

Сообщение отредактировано: volvo - 14.05.2007 21:41
 К началу страницы 
+ Ответить 
Renbo
сообщение 14.05.2007 22:36
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Я *.PPU Написал, а хотел *.TPU, описочка, упс rolleyes.gif

А *.o появляется, если ты модуль в FreePascal компилишь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 15.05.2007 22:57
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


volvo спасибо. А вот ещё вопрс.Я создал модуль,т.е написал его. Что мне с ним делать дальше.Нажимаю ctrl + F9 ,выводит:
Изображение
нажимаю просто F9,выводит вот это:
Изображение
не могу разобратся,что делать дальше.А когда пытаюсь в следующей программе связаться с этим модулем,он мне пишет:
Изображение

не пойму,что делать дальше(

Добавлено через 7 мин.
я не понимаю каие кнопки мне надо нажать и что вообще делать надо далее?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.05.2007 0:28
Сообщение #9


Гость






А, вот в чем у тебя дело... У тебя TPU модуля не находится по самой банальной причине: ты компилируешь в память (видишь, в окошке, написано Destination: Memory), а от модуля в памяти проку мало - его запускать же нельзя... Зайди (по-моему) в меню Compile, и если Destination показывает Memory (а оно-таки показывает), то щелкни на Destination, оно изменится на Disk... (Совсем забыл про это, дело все в том, что я использую не TURBO.EXE, а TPX.EXE, там нельзя компилировать в память вообще - только на диск)...

После этого перекомпилируй сначала модуль, а потом - программу... Или сделай Compile -> Make (нажми F9), чтобы все файлы, для которых есть исходники, но нет TPU, перекомпилировались автоматически... Тогда должно работать...
 К началу страницы 
+ Ответить 
Rom1k
сообщение 16.05.2007 0:48
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Всё сделал,как вы сказали,теперь вот что пишет:
Изображение
blink.gif blink.gif blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.05.2007 0:57
Сообщение #11


Гость






Вот эта папка: D:\PROG\TP7\TPU на диске существует? Или ее нет?
 К началу страницы 
+ Ответить 
Rom1k
сообщение 16.05.2007 1:15
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Всё.Там моя вина.Н существующий путь был указан.всё работает.вызывающая программа вызывает все модули и правильно работает с ними.спасибо!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
ALma
сообщение 23.02.2009 22:28
Сообщение #13





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


Цитата(Rom1k @ 15.05.2007 21:57) *

volvo спасибо. А вот ещё вопрс.Я создал модуль,т.е написал его. Что мне с ним делать дальше.Нажимаю ctrl + F9 ,выводит:
Изображение
нажимаю просто F9,выводит вот это:
Изображение



Аналогичная ситуация, подскажите пожалуйста. В поле Destination пишет Disk, но все равно при нажатии CTRL+F9, пишет cannot run a unit.
Еще вопрос: имя модуля при вызове должно совпадать с именем файла .TPU?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.02.2009 22:40
Сообщение #14


Гость






Цитата
все равно при нажатии CTRL+F9, пишет cannot run a unit.
Еще раз повторить? Нельзя запускать модули, что тут непонятного? Ctrl+F9 - это аналог Run -> Run из меню... Тебе надо откомпилировать модуль через Alt+F9, а запускать уже основную программу, кк которой этот модуль подключен...

Цитата
имя модуля при вызове должно совпадать с именем файла .TPU?
Не обязательно... Имя файла TPU может содержать только 8 первых символов от имени модуля. Скажем, я могу в файл REALLYLO.PAS записать вот это:
unit reallylongname;
interface
implementation
end.
, и откомпилировать. Будет создан файл REALLYLO.TPU, но чтобы подключить модуль я должен использовать полное имя:
uses reallylongname;
При попытке сделать
uses reallylo;
я получу ошибку о несоответствии имени...
 К началу страницы 
+ Ответить 
ALma
сообщение 26.02.2009 17:56
Сообщение #15





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


Спасибо большое за детальное пояснение. Очень помогло
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.08.2025 6:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"