Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Как запретить Form2.Create, после Form1.Create?   Найти похожие ветки 

 
Guitar ©   (2004-12-22 21:53) [0]

У меня есть две формы. При запуске проекта создаётся Form1.
А так как в разделе implementation Unit1 прописано
uses unit2;
то сразу происходит событие Form2.Create.
Как запретить это, до того, пока я не захочу, чтобы это произошло?


 
begin...end ©   (2004-12-22 21:55) [1]

> Guitar ©   (22.12.04 21:53)

Uses тут ни при чём.

Project -> Options -> Forms -> Auto-create forms


 
Alexander Panov ©   (2004-12-22 21:56) [2]

Project-->Options-->Forms-->Auto-Create Forms

Отсюда удалить Form2.


 
Поручик ©   (2004-12-22 21:57) [3]

в своиствах проекта - на закладке forms, убираешь form2 из Auto-Create forms


>А так как в разделе implementation Unit1 прописано
>uses unit2;
> то сразу происходит событие Form2.Create.


Не поэтому, а потому что в dpr файле прописанно:
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form1);


 
Guitar ©   (2004-12-22 21:58) [4]

Спасибо. Понял.
Я забыл сказать ещё, что с Form2 мне необходим компонент, свойства которого назначаюся в Form1. Такое возможно. Или надо этот компонент разместить на Form1?


 
Kolan ©   (2004-12-22 21:58) [5]


> А так как в разделе implementation Unit1 прописано
> uses unit2;

А если убрать, то нет?


 
Fay ©   (2004-12-22 21:59) [6]

2 Guitar ©   (22.12.04 21:53)
Происходит не Form2.Create, а ТForm2.Create. Не путай.


 
Поручик ©   (2004-12-22 22:00) [7]

Guitar ©   (22.12.04 21:58) [4]

После создания формы и передашь этот параметр.

2All: Вот бы на сложные вопросы с такой скоростью отвечали :)


 
Поручик ©   (2004-12-22 22:02) [8]

Kolan ©   (22.12.04 21:58) [5]
Fay ©   (22.12.04 21:59) [6]
Поручик ©   (22.12.04 22:00) [7]
Kolan ©   (22.12.04 21:58) [8]
Fay ©   (22.12.04 21:59) [9]
Поручик ©   (22.12.04 22:00) [10]

Вот глюки :)))))))))


 
begin...end ©   (2004-12-22 22:02) [9]

> [4] Guitar ©   (22.12.04 21:58)

Может ли идти речь о рождении детей человеком, который сам ещё не родился?


 
Fay ©   (2004-12-22 22:05) [10]

2 begin...end ©   (22.12.04 22:02) [9]
Очень многое говорит о том, что я уже родился. Но о рождении мною детей и речи быть не может! 8)


 
Guitar ©   (2004-12-22 22:16) [11]

4 Fay
Поясни, недалёкому ), чем это отличается и что у меня происходит. Интересно. )

4 begin...end
То есть его надо перенести на Form1, я правильно понял?


 
begin...end ©   (2004-12-22 22:18) [12]

> [11] Guitar ©   (22.12.04 22:16)

> То есть его надо перенести на Form1, я правильно понял?

Необязательно. Можно оставить его на Form2, но обращаться к нему только после создания Form2.


 
Guitar ©   (2004-12-22 22:23) [13]

4 begin...end
Всё по полочкам разложил. ))) Огромное спасибо. Все бы так...


 
Guitar ©   (2004-12-22 22:27) [14]

По горячей теме.
Как правильно создать форму и закрыть форму.

Я пишу
unit2.form2.Create(sender);

Пишет ошибку
[Error] Unit3.pas(36): Incompatible types: "TComponent" and "TObject"

И правильно ли писать
form1.Close;


 
Guitar ©   (2004-12-22 22:28) [15]

В ошибке то что Unit3 - не оращайте внимания. Я индексы менял, чтобы легче вам было.


 
Fay ©   (2004-12-22 22:28) [16]

2 Guitar ©   (22.12.04 22:16) [11]
Form2 - указатель. Если повезёт, то на экземпляр TForm2. По полочкам сам разложишь 8)


 
begin...end ©   (2004-12-22 22:31) [17]

> [14] Guitar ©   (22.12.04 22:27)

> unit2.form2.Create(sender);

Оооо! Так создавать объект НЕЛЬЗЯ! Об этом, кстати, Fay и говорил в [6].

К прочтению: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342


 
Guitar ©   (2004-12-22 22:58) [18]

И ещё маленький вопросец. )
Просто запарился я уже.
Создал я её. А показать не могу. (((
Какой командой её вывести на экран, сделать видимой?


 
Fay ©   (2004-12-22 23:01) [19]

Show


 
Поручик (пароль забыл)   (2004-12-22 23:02) [20]

Form2.Show;
или Form2.ShowModal;
или Form2.Visible := True;


 
Guitar ©   (2004-12-22 23:11) [21]

Хорошо, попробую.
У меня порсто ошибку выводит. Какуб понять не могу.
МОжет я неправильно закрываю Form1. Я пишу
form1.Close;
Этот код при нажатии на кнопку идёт. Вот, так как нажимаю, то ошибка и всё вылетает.
Если я закрываю форму, то ведь компонент, который на ней находится и используется в Unit2 не уничтожается. Иля я не прав. Если уничтожается, то как правильно её убрать и чтобы я мог работать с компонентом, который на ней находится7


 
Guitar ©   (2004-12-22 23:21) [22]

Что за ошибка, вылазит, при нажатии на кнопку. Код в кнопке:

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
TForm1.create(Form3);
end;


Вот процедура на которую идёт ссылка

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Show;
end;


Где ошибка? я понять не могу

Код ошибки

...raised exeption class EAccessViolation with message "Access violation at address 004467BA in module Project1.exe. Read of address 00002CC.


 
Fay ©   (2004-12-22 23:28) [23]

Немедленно прекратите что-либо писать. Читайте.


 
Поручик (пароль забыл)   (2004-12-22 23:37) [24]

Здесь надо создавать так:
Form1 := TForm1.Create(self);
И сразу:
Form1.Show;

или делай так:

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Application.CreateForm(TForm1, Form1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Show;
end;



Fay правду говорит.


 
Guitar ©   (2004-12-22 23:47) [25]

Прошу прошения, что так много писал.
Заработало. )))
Тема закрыта.



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.025 c
1-1103703324
liver
2004-12-22 11:15
2005.01.09
MDI & MainMenu


14-1103524302
MrCorp1
2004-12-20 09:31
2005.01.09
MSDN Library 2005


14-1103394928
bender
2004-12-18 21:35
2005.01.09
Excel>dBASE без OLE


4-1100872941
Змей
2004-11-19 17:02
2005.01.09
не прямоугольная форма


14-1103617210
07BB:080Dh
2004-12-21 11:20
2005.01.09
"Свобода слова" - что это такое?