Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Клонирование формы

Delphi , Программа и Интерфейс , Формы

Клонирование формы

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 var
   ms: TMemoryStream;
   newform: TForm1;
 begin
   ms := TMemoryStream.Create;
   try
     ms.WriteComponent(Form1);
     newform := TForm1.CreateNew(Application);
     ms.Position := 0;
     ms.ReadComponent(newform);
     { show the new form. Note that it will appear exactly on top of the 
     original! You may want to change its Left and Top property to move it 
     a bit. 

     Zeigt die neue Form. Die neue Form erscheint genau oberhalb der 
     original form. Die Left, Top Properties mussen evtl. noch angepasst werden 
    }
     newform.Show;
   finally
     ms.Free
   end;
 end;

Here is a translation of the text into Russian:

Код на языке Delphi клонирует (или дублирует) текущую форму (TForm1) при клике кнопки Button1. Вот разбивка кода:

  1. Создается новый экземпляр класса TMemoryStream, который является в-memory потоком, используемым для хранения и чтения двоичных данных.
  2. Код записывает всю текущую форму (Form1) в память с помощью метода WriteComponent. Это сериализует свойства, контролы и расположение формы.
  3. Создается новый экземпляр класса TForm1 (тот же класс, что и оригинальная форма) с помощью метода CreateNew и передачей объекта Application в качестве параметра.
  4. Код устанавливает позицию памяти на 0, что позволяет читать из начала сериализированных данных.
  5. Код читает сериализированные данные из памяти в новую форму (newform) с помощью метода ReadComponent.
  6. Наконец, код отображает новую форму, вызвав ее метод Show.

Комментарий в коде отмечает, что новая форма будет появляться над оригинальной формой, и предлагает изменить свойства Left и Top, чтобы переместить ее, если это необходимо.

Альтернативным решением может быть использование метода CloneForm, предоставляемого Delphi' с VCL (Visual Component Library). Этот метод создает глубокую копию заданной формы, включая все ее контролы и свойства. Вот как можно модифицировать код для использования этого метода:

procedure TForm1.Button1Click(Sender: TObject);
begin
  newform := TForm1.CloneForm(Application, Form1);
  newform.Show;
end;

Обратите внимание, что CloneForm требует Delphi 2009 или позднее. В более ранних версиях Delphi вам нужно использовать оригинальный код клонирования, предоставленный в вашем примере.

Клонирование формы в Delphi происходит с помощью класса TMemoryStream и метода WriteComponent, позволяющего записать форму в память, а затем считать ее обратно для создания копии.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Формы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 18:11:29/0.0071749687194824/2