Здравствуйте, Гость
Понедельник, 11.12.2017, 11:32
Главная Главная страница форума Регистрация Вход
Новые сообщения Участники форума Правила форума Поиск
Страница 1 из 11
Модератор форума: stalker, Ekz, Admin 
Форум » Все о Delphi » Программа и интерфейс » Одновременное отображение нескольких копий формы
Одновременное отображение нескольких копий формы
AIMorДата: Среда, 17.06.2009, 10:08 | Сообщение # 1
Ранг 1
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Форму создаю следующим образом.

Code
Var
F : TForm;

begin
F:=TForm.Create(Form1);
F.Hide;
F.Caption:='QWERT';
F.Width:=350;
F.Height:=120;
F.FormStyle:=fsStayOnTop;
F.BorderIcons:=[biSystemMenu,biMinimize];
F.BorderStyle:=bsSingle;
end;

Отображаю форму при нажатии на кнопку следующей командой.

F.Show;

Подскажите, пожалуйста, каким образом можно отобразить одновременно несколько копий этой формы (если это конечно вообще возможно)?

// Admin: Пользуемся тегами

 
DJ_ЕвсДата: Среда, 17.06.2009, 12:02 | Сообщение # 2
Ранг 6
Группа: Проверенные
Сообщений: 165
Награды: 3
Репутация: 1
Статус: Offline
Попробуй создать массив с такими переменными и процедуру, делающую выше описанное. А создавать в цикле For от 1 до сколько надо копий.

ПРОЙДИ ТЕСТ!!!!!
http://FIDO20.ru/test.php?4052&c=bbea2a1

 
AdminДата: Среда, 17.06.2009, 13:40 | Сообщение # 3
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
Показать несколько копий одной и той же формы нельзя, точнее в памяти если форма одна то эту форму на два окна одно и тоже не покажешь. Нужно создавать копию формы, то есть дублирование всех всойств в памяти. А следовательно памяти будет использоваться больше. Вот небольшой примерчик:
Code
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); // читаем
     NewForm.Show;              // показываем форму
   finally
     MS.Free                    // высвобождаем память
   end;
end;

Вот вобщем то и все. Пробуй. И попробуй к этому добавить то что сказал DJ_Евс.


Не оказываю помощь через личные сообщения и ICQ
 
Форум » Все о Delphi » Программа и интерфейс » Одновременное отображение нескольких копий формы
Страница 1 из 11
Поиск:

Copyright DelphiDevelop.ru © 2008-2017
Хостинг от uCoz