Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 08:33   #11
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А можешь привести пример кода?

08:37

И ещё: когда я вставляю в процедуру код:
Код:
Form2 := TForm2.Create(self);
  try
 Form2.ShowModal;
  finally
 Form2.Free;
  end;
Он мне пишет: Undeclared Identifier "Form2". А, так получается с ним тоже надо делать:
Код:
type
      TForm2 = class(TForm)
      ......
?

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 15.05.2010 в 14:26.
_-Re@l-_ вне форума
Старый 15.05.2010, 09:59   #12
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Вообще он указывает, что такая переменная, как Form2 нигде не описана. Поэтому саму форму создавать не надо, а вот описать совершенно необходимо.
Например, в разделе private.
Код:
  private
    Form2: TForm;
И теперь все будет работать.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума
Старый 15.05.2010, 10:01   #13
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А.Всё, Понял

10:05

О, щаработало, только ошибка была в коде:
Код:
Form2 := TForm2.Create(self);
При такой процедуре он пишет "Undeclared Identifier", а если исправить на:
Код:
Form2 := TForm.Create(self);
то всё будет отлично работать, новая форма прекрасно создаётся =)

10:15

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
А вот если при нажатии одной кнопки создаётся Form2, то как прописать все объекты, которые там будут?Ну, допустим, Button1, Button2, Label1, EditBox1?
Цитата:
Методом create, а в качестве родителя ставить Form2.
При этом проперти компонентов придется прописывать самому (если они отличаются от дефолтных).

Поэтому если на вызываемой форме много элементов, то проще ее создать в дизайнере, напихать туда контролов, а потом показывать ее (show или showmodal).

А еще лучше - скажите для каких целей все это вам надо. Если для чисто познавательных - лучше книги почитать.
Только надо это мне не для познавательных целей, я просто пишу свой калькулятор(с целью обучения), и при нажатии одной из кнопок должно появиться форма, которая запрашивает у пользователя коэффициенты a,b,c и находит корни квадратного уравнения(это одна из очень многих функций моего творения)

И всё-таки( я просто не понял), как будет выглядеть код создания объектов на второй форме?

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 15.05.2010 в 14:28.
_-Re@l-_ вне форума
Старый 15.05.2010, 10:26   #14
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Создавайте лучше в дизайнере.
Так будет нагляднее.
А вообще, так:
Объявляете переменные, например: Label1: TLabel;
В вызове формы (событие OnClick на кнопке) пишите:
Код:
begin
Form2:=TForm.Create(Self);
Label1:=TLabel.Create(Form2);
Label1.Parent:=Form2;
Label1.Caption:='It really works!';
//тут надо прописывать остальные проперти (высота этой надписи, ее положение на форме и т.д.)
Form2.ShowModal;
Form2.Free;
end;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 15.05.2010 в 10:28.
ex.cluz вне форума
Старый 15.05.2010, 10:29   #15
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

то что предлагал
Цитата:
Alter
Цитата:
Сообщение от Alter Посмотреть сообщение
так лучше
Код:
Form2 := TForm2.Create(self);
  try
 Form2.ShowModal;
  finally
 Form2.Free;
  end;
подходит если уже есть модуль в котором описана TForm2, то есть предполагается что вы добавили форму в проект, и в uses того модуля в котором вы это пишите добавлена ссылка на модуль в котором описана TForm2. То есть выполнено хотябы

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
для начала File->New->Form
форму можно удалить из автосооздаваемых в модуле проекта, Project>Options на закладке Forms переместить из auto create в Available, и использовать только там где нужно, то есть создавать, совершать действия, и уничтожать..

если вам требовалось создать не определённую заготовленную форму, а просто чистую форму (ну или заполнить её динамически созданными компонентами) тогда в дизайнере ничего делать не надо, а выглядеть это может примерно так

Код:
var
form_:Tform;
edit_: TEdit;
begin
form_ := TForm.Create(Self);
try
 form_.Position:=poOwnerFormCenter;
 form_.Width:=300;
 form_.Height:=150;
edit_:= TEdit.Create(form_);
with edit_ do
 begin
     Parent:=form_;
     Width:=250;
     Top:= 10;
     Left:=25;
     Text:='введите новый заголовок для формы';
  end;
with TButton.Create(form_)  do
 begin
     Parent:=form_;
     Width:=50;
     Height:=30;
     Top:= form_.ClientHeight-30-10;
     Left:=50;
     Caption:='Ok';
     ModalResult:=mrOk;
  end;
with TButton.Create(form_)  do
  begin
     Parent:=form_;
     Width:=50;
     Height:=30;
     Top:= form_.ClientHeight-30-10;
     Left:=form_.ClientWidth-50-50;
     Caption:='Cancel';
     ModalResult:=mrCancel;
  end;
 form_.ShowModal;
 if form_.ModalResult=mrOk then
 self.Caption:= edit_.Text;
 finally
  form_.Free;
end;
end;
то что предложил вполне можно запихать в обработчик онклик каколибо кнопки на своей форме, ну и проверить.

Последний раз редактировалось vovk; 15.05.2010 в 10:39.
vovk вне форума
Старый 15.05.2010, 10:40   #16
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

2_-Re@l-_
Прошу прощения за дезинформацию (я цифру 2 в TForm2.Create(self); в записи у Alter не заметил)
vovk правильно сказал:
Цитата:
то что предлагал
Цитата:
Alter

Цитата:
Сообщение от Alter
так лучше

Код:

Form2 := TForm2.Create(self);
try
Form2.ShowModal;
finally
Form2.Free;
end;


подходит если уже есть модуль в котором описана TForm2, то есть предполагается что вы добавили форму в проект, и в uses того модуля в котором вы это пишите добавлена ссылка на модуль в котором описана TForm2.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума
Старый 15.05.2010, 11:24   #17
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А, понятно. А как задать размеры открывающейся формы?

10:26

А, всё, нашёл. Тогда спрошу другое: как задать координаты появления второй формы?( а то она появляется в левом верхнем углу, а надо бы посередине)

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 15.05.2010 в 14:29.
_-Re@l-_ вне форума
Старый 15.05.2010, 11:27   #18
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

ндяя.. перечитайте пост №19, только внимательно
Цитата:
form_.Width:=300;
form_.Height:=150;
всёравно перечитайте пост №19, только внимательно

Код:
form_.Position:=poOwnerFormCenter;

Последний раз редактировалось vovk; 15.05.2010 в 11:30.
vovk вне форума
Старый 15.05.2010, 11:38   #19
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

_-Re@l-_, а почему вы хотите создавать именно динамические формы?

Кстати, (если еще не знаете) после Form2.free, вы не сможете считать данные из полей ввода, которые располагались на форме. А вам, насколько я знаю, необходимо считывать значения коэффициентов.

Поэтому метод free для программно созданной формы необходимо вызывать только после того, как будут прочитанны все необходимые данные.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума
Старый 15.05.2010, 11:44   #20
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А вто что здесь не так:
Код:
Edit10.Parent:=Form2;
  Edit10.Top:=40;
  Edit10.Left:=30;
  Edit10.Width:=150;
  Edit10.Height:=20;
? Просто когда жму на кнопку, он должен создавать Label10 с надписью "Вычисление корней кв.уравнения" и Edit1, но он пишет:
"Проект Project2 вызвал исключение класса EAccessViolation с сообщением "Access violation at address 00452089 in module "Project2".Read of address 00000000". Процесс остановленю. Используйте Шаг или Запуск для продолжения"

11:55

В общем, какие параметры нужно задавать Edit10, Button100( это у меня такие наименования), чтобы всё нормально работало?

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 15.05.2010 в 14:30.
_-Re@l-_ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход из одной формы в другую Axlen Microsoft Office Access 2 22.04.2010 07:40
ввод текста из одной формы в другие andrey0701 Microsoft Office Word 15 26.10.2009 10:53
delphi вызов одной формы из другой hi-end1 Помощь студентам 4 17.10.2009 19:53
DblClick запуск ещё одной формы по параметру sali Microsoft Office Access 1 04.06.2009 16:52
как перейти из одной формы в другую lusek Общие вопросы Delphi 7 01.02.2009 14:16