Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

For Form

11K
20 августа 2007 года
SCiPTAG
34 / / 14.11.2006
Дорогие одна форумцы!
Я столкнулся с проблемой:
У меня есть на форме кнопка Button1
Как сделать что бы при нажатии неоднократно раз появлялось форма такое же кол.
И постоянно новые! Не одно Ито же окно!
Как бы форма в цикле!
355
20 августа 2007 года
<SCORP>
786 / / 21.10.2006
необходимо динамически создавать эти формы.
объявляешь массив форм и индекс следующей доступной ячейки массива.
Код:
Const
  MAX_FORMS = 20;
Var
  forms: array[1..MAX_FORMS] of TForm;
  nextForm: Integer;

initialize
  nextForm := 1;
End;

function CreateForm(): TForm;
Begin
  if (next >= MAX_FORMS)
    return nil; // or somehow other report the error
  forms[nextForm] := TForm.CreateObject(Self);
  Result := forms[nexForm];
  Inc(nextForm);
End;
(или как-то типа того)

потом в обаботчике нажатия кнопки
 
Код:
pocedure Button1Click(..)
Var
  f: TForm;
Begin
  f := CreateForm();
  if (f <> nil)
    f.Show();
End;

сорри, если чё-то напутал -- на делфи лет сто не писал
11K
21 августа 2007 года
SCiPTAG
34 / / 14.11.2006
Спасибо! Если что я сам дальше!
286
21 августа 2007 года
misha_turist
572 / / 28.11.2005
Код:
procedure TForm1.FormCreate(Sender: TObject);
var n: integer;
begin
 // при создании формы выбираем список всех форм
 for n:=0 to Screen.FormCount-1 do
 ListBox1.AddItem(Screen.Forms[n].Caption,Screen.Forms[n]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var form: TForm;
begin
 // создаём новую форму
 Form:=TForm1.Create(Application);
 // передаём ей фокус
 form.Show;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
 // передаём фокус форме присвоеной пункту списка
 ((Sender as TListBox).Items.Objects[(Sender as TListBox).ItemIndex] as TForm).Show;
end;

И обрати вимание, что созданные формы я не удаляю, при завершении программы. Это сделает объект Application.

Полный вариант приложения в архиве.
10
21 августа 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: misha_turist
// создаём новую форму


Обожаю писать без лишних переменных:

 
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // создаём новую форму и отображаем её
  TForm1.Create(Application).Show;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог