Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2022, 21:20   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 462
По умолчанию Прописать но не создавать форму

Как прописать все элементы на форме, но при этом не создавать ее?
То есть, чтобы она не создавалась при открытии программы, а можно было сделать Create в случае какого-то действия?
Kronos913 вне форума Ответить с цитированием
Старый 18.08.2022, 21:29   #2
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 888
По умолчанию

Закомментируйте в файле проекта (drp) строчку Application.CreateForm(TForm1, Form1);

Вариант 2. В свойствах главного окна установите Visible := False;

Последний раз редактировалось BDA; 19.08.2022 в 08:50.
macomics вне форума Ответить с цитированием
Старый 25.08.2022, 11:35   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,748
По умолчанию

В настройках проекта просто переместите свою форму из автосоздаваемых.
FaTaL вне форума Ответить с цитированием
Старый 26.08.2022, 20:21   #4
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 462
По умолчанию

Вот тут?
Изображения
Тип файла: png изображение_2022-08-26_202113218.png (9.5 Кб, 27 просмотров)
Kronos913 вне форума Ответить с цитированием
Старый 26.08.2022, 20:22   #5
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 888
По умолчанию

Да. Но эта фигня сделает тоже самое что и я вам написал выше. Она уберет соответствующую строчку из dpr файла.
macomics вне форума Ответить с цитированием
Старый 26.08.2022, 20:34   #6
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 462
По умолчанию

Мне надо, чтобы существовал такой тип формы TFormX, но без глобальной переменной FormX
Чтобы была готовая форма для вызова окна
Kronos913 вне форума Ответить с цитированием
Старый 26.08.2022, 20:36   #7
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 888
По умолчанию

А чем мешает глобальная переменная FormX? Создавая для окон и их классов локальные переменные вы сами создаете места возможной утечки памяти.
macomics вне форума Ответить с цитированием
Старый 27.08.2022, 01:55   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,802
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Мне надо, чтобы существовал такой тип формы TFormX, но без глобальной переменной FormX
Решения предложенные macomics и FaTaL сделают эту переменную не валидной.
Для пущей уверенности можете в модуле формы удалить строчку
Код:
FormX : TFormX;
Но тут предвижу у вас следующие вопросы о том, как создавать такую форму? И как потом к ней обращаться?
northener вне форума Ответить с цитированием
Старый 27.08.2022, 14:36   #9
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 462
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Решения предложенные macomics и FaTaL сделают эту переменную не валидной.
Для пущей уверенности можете в модуле формы удалить строчку
Код:
FormX : TFormX;
Но тут предвижу у вас следующие вопросы о том, как создавать такую форму? И как потом к ней обращаться?
Ну создавать, по идее через TFormX.Create после закрытия делать Free

У меня в программе есть одна форма, которая может дублироваться. И я дубликат создавал и удалял внутри одной процедуры

Код:
With TFormX.Create(self) do
  showmodal;
  free;
end;
Но это делался дубликат уже существующей формы

А сейчас мне надо сделать всплывающее окно, которое останавливает работу процедуры и дает возможность пользователю выбрать что делать.

Через CreateMessageDialog получается не очень удобно

Так хочу для этого прописать форму, но не создавать ее, а хранить просто ее как тип TFormX, и когда понадобится - создавать ее локально
Kronos913 вне форума Ответить с цитированием
Старый 27.08.2022, 14:44   #10
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 462
По умолчанию

Через CreateMessageDialog приходится вот так мудрить с каждой кнопкой
Код:
          cm := FindChildControl('Cancel');
          try
            TButton(cm).Height:=35;
            TButton(cm).WordWrap:=True;
            TButton(cm).Caption:='В буфер'+#13+#10+'1 номер';
            TButton(cm).Hint:=s_to_buff+' обмена'+#13#10+'первый номер в списке';
            TButton(cm).ShowHint:=true;
          except
          end;
Если всё равно надо кучу кода на то, чтобы перенастроить кучу кнопок, так может тогда уже лучше создавать их

Последний раз редактировалось Kronos913; 27.08.2022 в 14:46.
Kronos913 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
для чего нужно создавать два class(а). Создавать объект типа Building в другом class(е)? bITA666 Помощь студентам 5 27.03.2022 18:07
Как создать форму в ручную и освободить из памяти предыдущую форму, на С++Builder 2009? AndreyK Общие вопросы C/C++ 1 18.01.2012 20:54
что и где нужно прописать чтобы при добавление одежды через форму на Delphi она отображалась в таблице склад студенточка! Помощь студентам 0 14.12.2011 16:35
Как поместить форму в bpl файл, а из основной программы только создавать ее? <Konstantin> Общие вопросы Delphi 1 30.03.2011 20:55
Одну и ту же форму использовать как MDI-child форму и как модальную форму? PrimaryPro Общие вопросы Delphi 2 10.03.2010 20:52