Страница 1 из 2
ругается на show и showmodal
Добавлено: 13.01.2011 11:03:54
maser
Здравствуйте все!
Решил вспомнить паскаль, который использовал еще в студенческие годы. Нашел систему
lazarus под свою
ubuntu, чему был очень рад (
раньше думал, что кроме delphi ничего нет), но вот проблемка всплыла с самого начала практического конструирования приложения:
создал форму, в ней меню, кноперки и .т.д. Затем создал вторую форму, связал её с первой, прописав её в uses. В первой форме на событие одной кноперки прописал
unit2.showmodal; . После этого запустил и увидел сообщение ...
Error: Identifier not found "showmodal". на
unit2.show такая же реакция.
Уже голову сломал в поиске граблей.
Может что-то в
uses прописать надо?
Помогите пожалуйста!

Re: ругается на show и showmodal
Добавлено: 13.01.2011 11:18:14
dunin
А зачем юнит показывать? Может лучше форму показать?
Form2.Show;
Re: ругается на show и showmodal
Добавлено: 13.01.2011 11:26:56
maser
показывал - такая же беда.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 11:45:53
Nik
А можно увидеть фрагмент вашего кода?
Re: ругается на show и showmodal
Добавлено: 13.01.2011 11:56:15
maser
можно конечно, только там кода особого пока нет. Все стандартно. Прога дома лежит, а я на работе целый день. Могу по памяти кое-что написать:
Вот процедура стандартная, в которой затык произошел:
Код: Выделить всё
Procedure TForm1.не помню (Sender: TObject)
begin
unit2.showmodal;
end;
end.
unit2 вообще пустая форма
Re: ругается на show и showmodal
Добавлено: 13.01.2011 11:59:56
Nik
Выше уже сказали, что
нельзя показать
юнит!
Должно быть что-то вроде:
Причём убедитесь, что форма предварительно создана (обычно метод для создания формы автоматически добавляется в исходный код проекта), а
unit2 прописан в секции
uses модуля unit1, их которого вы обращаетесь ко второй форме.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 12:16:18
maser
с Form2 пробовал. В uses unit 1 прописан, а вот метод создания формы не смотрел в исходнике. Если его нет, как и где он должен быть прописан?
PS: работаю в лазаре второй день. ))) В дельфе ниразу. В паскале писал проги в студенчестве (1997-2002 г.г.)
Re: ругается на show и showmodal
Добавлено: 13.01.2011 12:53:47
Nik
В файле project1.lpr должен .быть такой код:
Код: Выделить всё
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2); // !!!
Application.Run;
Если в коде нет ничего секретного, скиньте весь проект - глянем, где ошибка.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 13:17:13
maser
Скинуть могу, но только поздно вечером.
Вот увидел вариант реализации процедуры:
Код: Выделить всё
procedure TForm1.Button2Click(Sender:TObject);
var i:=integer;
begin
i:=Form2.ShowModal;
end;
Вопрос: это просто присваивание переменной i значения Form2.ShowModal или тут есть еще какой секрет?
Re: ругается на show и showmodal
Добавлено: 13.01.2011 13:22:25
Odyssey
maser писал(а):это просто присваивание переменной i значения Form2.ShowModal или тут есть еще какой секрет?
ShowModal -- функция, поэтому здесь присваивается не значение, а результат её выполнения. Т.е. идёт присваивание переменной i результата показа формы. В общем случае этот результат позволяет узнать, какая кнопка на форме была нажата, соответственно для кнопок формы 2 должны быть установлены нужные значения свойства ModalResult.
maser писал(а):работаю в лазаре второй день. ))) В дельфе ниразу. В паскале писал проги в студенчестве (1997-2002 г.г.)
Рекомендую посмотреть
http://freepascal.ru/news//20101025164011/
Re: ругается на show и showmodal
Добавлено: 13.01.2011 14:05:23
maser
Спасибо за консультацию!
Уже читаю эту книгу.
Еще вопрос: В каком модуле (библиотеке) прописаны эти функции? Может просто он у меня не подключен.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 14:27:55
Nik
Еще вопрос: В каком модуле (библиотеке) прописаны эти функции? Может просто он у меня не подключен.
В модуле Forms. При создании формы он прописывается в соответствующий модуль автоматически.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 14:33:49
maser
Ну да, такой прописан. Точно помню.
Re: ругается на show и showmodal
Добавлено: 13.01.2011 15:10:33
Vadim
maserПопробуйте написать:
unit2.Form2.Show;
И поставьте себе на работе Lazarus тоже, чтобы всегда был под рукой.

Re: ругается на show и showmodal
Добавлено: 13.01.2011 15:42:00
maser
спасибо за совет, попробую.
Насчет поставить на работе - это вряд ли получится. Тут даже оперу нельзя поставить - админы режут на корню.

Если только портативную версию поробовать соорудить...