Як зробити default

Свої форми я створюю динамічно. І мені треба щоб вони з'являлися з visible = false; можна звичайно через про. інспектор, але це не підходить. Як це можна зробити в описі типу форми. Urn

створи конструктор та напиши тама: visible = false

то ця справа створюється динамічно і дельфа лається, що я, мовляв, не створив об'єкт, а вже чіпаю.

створи клас, у ньому конструктор, у ньому .

форми, ти кажеш, у тебе "свої" Що це означає, тип у них свій (відмінний від TForm)? Якщо так, значить у тебе: є свій клас TSvoyForm, і dfm при ньому (1)

Ось і вистав про інспектором у ньому візібл фолс. він це у своєму дфмі запам'ятає. і створюй собі потім динамічно! Потрібні будуть інші типи форм з тією ж вимогою - породжуй їх від TSvoyForm.

Ну а якщо (1) неправильно, то зроби так, щоб було правильно:)

Phorm2: = TPhorm2.Create (Selph); Phorm2.Visible := False; //доки не викликається: //Phorm2.Show; // Ніхто твою форму не побачить.

> Свої форми я створюю динамічно. > І мені треба, щоб вони з'являлися з visible = false;

Саме так вони і з'являтимуться. Самі. Головне – не треба їм заважати. Тобто нічого не треба робити.

> так ця справа створюється динамічно і дельфа лається, що я, > мовляв, не створив об'єкт, а вже чіпаю.

Тоді це вже називається не динамічний, а супердинамічний створення.

Головна форма з'явиться у візиблі однаково. Можна і без *.dfm. Створюєш клас від TForm - у його конструкторі CreateNew - після inherited - пишеш Hide. Форми створюєш цим конструктором.

> > так ця справа створюється динамічно і дельфа лається, > що я, > > мовляв, не створив об'єкт, а вже чіпаю.Ане чіпай поки не створив - Assign(..)

НЕ ТРЕБА НІЯКИХ КОНСТРУКТОРІВ, НІЯКИХ HIDE І НІЯКИХ ЗМІН VISIBLE. Взагалі НІЧОГО НЕ ТРЕБА торкатися. Взагалі НІЧОГО НЕ ТРЕБА РОБИТИ.

За умовчанням властивість Visible у форми і так False (перевірте в Інспекторі Об'єктів). Тому після свого створення форма і так невидима, без будь-яких наших рухів тіла. Очевидною вона стає ТІЛЬКИ після виклику Show (Modal). Для головної форми цей виклик робиться автоматично, а для решти – ні. Щоб і головна форма теж залишалася невидимою, потрібно в OnCreate написати: Application.ShowMainForm := False.

Тому невидима динамічна форма робиться так: Form2 := TForm2.Create(. ); і це ВСЕ. Форма є, але невидима. Більше нічого не потрібно.

Та ні, звичайно, ніякої грубості і не було, і вибачатися зовсім нема за що. Вже, швидше за мене, за зайві емоції. Розумієте, просто вже набридли ці гілки з десятками глибокодумних постінгів з дрібниці та очевидного питання, коли всю відповідь можна дати однією фразою, і обговорювати просто нічого.

Людина ставить запитання:

>Свої форми я створюю динамічно.Отже, йдеться не про головну форму, і в які OnCreate лізти не потрібно.

>І мені треба щоб вони з'являлися з visible = false;А у них і так Visible = False, без нас.

Тому все просто - НІЧОГО НЕ ТРЕБА РОБИТИ. Викликати конструктор – і все.

І замість такої простої відповіді починаються розмови про заміщення конструктора, розводиться флейм на тему виїденого яйця та ін. А Ви пишете – створювати форми через CreateNew! CreateNew не читає DFM, тому форма залишиться порожньою. Для Вас це проходить (у Вас немає DFM), але іншим це явно не підійде, навіщо давати такі поради? Це ж простозаплутування малодосвідченої людини виходить. Значить, він поставить наступне питання - "CreateNew не працює, чому?". І піде подальший флейм, вже з приводу CreateNew, НІЯК НЕ ВІДНОСИТЬСЯ ДО САБЖУ. Навіщо?

> > Свої форми я створюю динамічно. > Значить, мова йде не про головну форму, і ні в яку OnCreate > лізти не треба.Вибачте, Юрію - це не по сабжу - але ж і головну форму можна створити динамічно - у мене в одному проекті всі форми такі. Або я дурю?

Можна, звісно, ​​ніхто не заважає. Якщо програма цього вимагає, то так і треба чинити. У мене взагалі був проект, в якому DFM головної форми був СВІЙ У КОЖНОГО ЮЗЕРА. Звичайно, все створювалося динамічно.

А юзерність кожного юзера на якому рівні ловили?

То була БД. За логіном, звісно.

А що означає "головну форму створити динамічно"? Вибрати створення першої форми за умовою або щось наворочене.

Створити головну форму динамічно - це в DPR рядок Application.CreateForm(MainForm, TMainForm) перемістити в інше місце або взагалі прибрати і замінити іншим кодом.

Тобто створювати головну форму не відразу, а тоді, коли це буде потрібно. І не так, як написала IDE, а так як потрібно.

>> За умовчанням властивість Visible у форми і так False Сорі, забув

Так, флейм неабияк. Ну-с і я свого додам. І якраз у "Потріпатися" поїдемо, і слава Богу.