Для дальнейшего использования, когда вы отправите вопрос о коде, скопируйте и вставьте фактический код и сообщите возможные отображаемые ошибки .
В первой редакции вашего вопроса ваш код воссоздал Form1
в конструкторе той же формы. Через некоторое время программа завершается с ошибкой нехватки ресурсов.
Во втором издании, где вы исправили ошибочные ссылки от Form1
до Form2
, в вашем коде все еще отсутствует пара begin .. end
вокруг свойств, которые вы хотите установить после with Form2 do
. Эта ошибка приводит к переполнению стека, поскольку вы устанавливаете Form1
parent в Panel1
, который является потомком Form1
, то есть дилемма куриное яйцо.
Поскольку вы не упомянули ни одну из этих ошибок, можно только сделать вывод, что ваш код отличается от того, что вы опубликовали, или вы считаете, что сообщения об ошибках не важны. НЕПРАВИЛЬНО! Поэтому, пожалуйста, возьмите урок и обратите внимание на отправьте фактический код и сообщите о любых сообщениях об ошибках .
Также, если ваш вопрос касается появления формы, опубликуйте содержимое файла .dfm
.
Со следующим кодом Form2
показано встроенным в Panel1
из Form1
(я удалил настройки ширины и высоты, чтобы уменьшить изображение):
procedure TForm1.FormCreate(Sender: TObject);
begin
Form2 := TForm2.Create(Panel1);
with Form2 do
begin
Name := 'MyForm';
Parent := Panel1;
Top := 10;
Left := 10;
Show;
end;
end;
![enter image description here](https://i.stack.imgur.com/OFhUe.png)
Свойства Top
и Left
выглядят не так, как ожидалось. Это связано с тем, что по умолчанию для свойства TForm.Position
установлено значение poDefaultPosOnly
, что означает, что форма обходит настройки Top
и Left
и оставляет ее на усмотрение ОС для определения местоположения. Тем не менее, так как форма предоставлена родителю, который также не применяется, и форма просто размещается в позиции 0,0. Добавьте строку, касающуюся свойства position
ниже (или задайте ее в конструкторе Form2
).
...
Parent := Panel1;
Position := poDesigned; // add this line
BorderStyle := bsNone; // and this for a better embedded appearance
Top := 10;
...
Результат теперь:
![enter image description here](https://i.stack.imgur.com/ZfQHT.png)