Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

Как запретить 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.038 c
14-1103279089
Alexander Panov
2004-12-17 13:24
2005.01.09
News-Servers попрограммированию в Delphi.


4-1100957096
Nomolos
2004-11-20 16:24
2005.01.09
Аналог папки Fonts


1-1103647618
Илья
2004-12-21 19:46
2005.01.09
IOResult = 103


1-1103741667
Senjer
2004-12-22 21:54
2005.01.09
Курсор над формой


14-1103690989
Slider007
2004-12-22 07:49
2005.01.09
Принтер HP Laser Jet 2300n





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский