Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2014, 14:53   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
Вопрос Создание дочерных форм

Приветствую форумчане!
Проблема следующая: есть основная форма (или родительская) на форме расположена кнопка и листбокс. Вопрос: как создать дочерное окно при нажатии на кнопку, а название этого окна занеслось в листбокс, при этом создать на этой форме (дочерной) те компоненты которые необходимы, и количество создаваемых дочерных окон не должно быть ограниченным?
Дальше хуже, надо что бы, если мы закроем созданное окно то при двойном нажатии на его название в листбоксе это окошко опять появлялось....
Подскажите пожалуйста что да как если это возможно.
Раньше с таким не сталкивался, всегда создавал формы через file-new-form ставил fjrmstyle-MDIChild и все дочерные потом убирал из автосоздания через project-options а потом при выполнении просто создавал их когда они нужны, но тут другое, обязательное условие что заранее не известно сколько форм будет создано....
Заранее всем огромное СПАСИБО!!!
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 11.08.2014, 15:43   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Создание Form2 убери из dpr
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var xForm2: TForm2;
begin
  xForm2:=TForm2.Create(Application);
  xForm2.Caption:=xForm2.Name;
  ListBox1.Items.AddObject(xForm2.Name,TObject(xForm2));
  xForm2.Show;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var i: Integer;
begin
  if ListBox1.ItemIndex>=0 then TForm(ListBox1.Items.Objects[ListBox1.ItemIndex]).Show;
end;

end.



unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit1;

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caHide;
end;

end.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание форм из процедуры DIMASIKXXX32 Общие вопросы Delphi 14 15.11.2012 15:29
БД Создание запроса и форм Lena_ Помощь студентам 0 18.10.2012 14:39
Создание форм Михаил Юрьевич Общие вопросы Delphi 5 16.07.2012 03:41
Создание нескольких форм Лера123 Общие вопросы Delphi 4 16.10.2010 18:16
Создание форм DeNyS=) Microsoft Office Access 2 13.12.2009 15:30