ругается на show и showmodal

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

ругается на show и showmodal

Сообщение maser » 13.01.2011 12:03:54

Здравствуйте все!

Решил вспомнить паскаль, который использовал еще в студенческие годы. Нашел систему lazarus под свою ubuntu, чему был очень рад (раньше думал, что кроме delphi ничего нет), но вот проблемка всплыла с самого начала практического конструирования приложения:
создал форму, в ней меню, кноперки и .т.д. Затем создал вторую форму, связал её с первой, прописав её в uses. В первой форме на событие одной кноперки прописал unit2.showmodal; . После этого запустил и увидел сообщение ...Error: Identifier not found "showmodal". на unit2.show такая же реакция.

Уже голову сломал в поиске граблей.
Может что-то в uses прописать надо?

Помогите пожалуйста! :cry:
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение dunin » 13.01.2011 12:18:14

А зачем юнит показывать? Может лучше форму показать? :roll:
Form2.Show;
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 12:26:56

показывал - такая же беда.
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Nik » 13.01.2011 12:45:53

А можно увидеть фрагмент вашего кода?
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 12:56:15

можно конечно, только там кода особого пока нет. Все стандартно. Прога дома лежит, а я на работе целый день. Могу по памяти кое-что написать:

Вот процедура стандартная, в которой затык произошел:

Код: Выделить всё
Procedure TForm1.не помню (Sender: TObject)
begin
unit2.showmodal;
end;
end.


unit2 вообще пустая форма
Последний раз редактировалось maser 13.01.2011 13:24:07, всего редактировалось 1 раз.
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Nik » 13.01.2011 12:59:56

Выше уже сказали, что нельзя показать юнит!

Должно быть что-то вроде:

Код: Выделить всё
Form2.ShowModal;


Причём убедитесь, что форма предварительно создана (обычно метод для создания формы автоматически добавляется в исходный код проекта), а unit2 прописан в секции uses модуля unit1, их которого вы обращаетесь ко второй форме.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 13:16:18

с Form2 пробовал. В uses unit 1 прописан, а вот метод создания формы не смотрел в исходнике. Если его нет, как и где он должен быть прописан?

PS: работаю в лазаре второй день. ))) В дельфе ниразу. В паскале писал проги в студенчестве (1997-2002 г.г.)
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Nik » 13.01.2011 13:53:47

В файле project1.lpr должен .быть такой код:

Код: Выделить всё
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); // !!!
Application.Run;


Если в коде нет ничего секретного, скиньте весь проект - глянем, где ошибка.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 14:17:13

Скинуть могу, но только поздно вечером.

Вот увидел вариант реализации процедуры:
Код: Выделить всё
procedure TForm1.Button2Click(Sender:TObject);
var i:=integer;
begin
i:=Form2.ShowModal;
end;


Вопрос: это просто присваивание переменной i значения Form2.ShowModal или тут есть еще какой секрет?
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Odyssey » 13.01.2011 14:22:25

maser писал(а):это просто присваивание переменной i значения Form2.ShowModal или тут есть еще какой секрет?

ShowModal -- функция, поэтому здесь присваивается не значение, а результат её выполнения. Т.е. идёт присваивание переменной i результата показа формы. В общем случае этот результат позволяет узнать, какая кнопка на форме была нажата, соответственно для кнопок формы 2 должны быть установлены нужные значения свойства ModalResult.

maser писал(а):работаю в лазаре второй день. ))) В дельфе ниразу. В паскале писал проги в студенчестве (1997-2002 г.г.)

Рекомендую посмотреть http://freepascal.ru/news//20101025164011/
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 15:05:23

Спасибо за консультацию!
Уже читаю эту книгу.

Еще вопрос: В каком модуле (библиотеке) прописаны эти функции? Может просто он у меня не подключен.
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Nik » 13.01.2011 15:27:55

Еще вопрос: В каком модуле (библиотеке) прописаны эти функции? Может просто он у меня не подключен.

В модуле Forms. При создании формы он прописывается в соответствующий модуль автоматически.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 15:33:49

Ну да, такой прописан. Точно помню.
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

Re: ругается на show и showmodal

Сообщение Vadim » 13.01.2011 16:10:33

maser
Попробуйте написать:
unit2.Form2.Show;

И поставьте себе на работе Lazarus тоже, чтобы всегда был под рукой. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: ругается на show и showmodal

Сообщение maser » 13.01.2011 16:42:00

спасибо за совет, попробую.

Насчет поставить на работе - это вряд ли получится. Тут даже оперу нельзя поставить - админы режут на корню. :( Если только портативную версию поробовать соорудить...
maser
новенький
 
Сообщения: 20
Зарегистрирован: 13.01.2011 11:42:25
Откуда: Волгодонск

След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru