Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Программа с многими формами   Найти похожие ветки 

 
Choco ©   (2006-11-13 11:30) [0]

Доброго дня!  Как сделать так, чтоб формы создавались не сразу, а в процесе работы программы по условию(формы и обработчики компонентов стандартные, созданы заранее)


 
Sergey13 ©   (2006-11-13 11:32) [1]

Убрать все, кроме главной, из автосоздания в опциях проекта и создавать их вручную по мере надобности (create + F1).


 
Choco ©   (2006-11-13 11:37) [2]

Вручную негодится... Надо сделать так чтоб нужная форма открывалась ПО УСЛОВИЮ, например при фокусе на определенной записи ListBox


 
Sergey13 ©   (2006-11-13 11:40) [3]

> [2] Choco ©   (13.11.06 11:37)
> Вручную негодится...
Автоматически негодится, вручную негодится. Что хочется то? Вручную - это ведь не из картона вырезать.


 
Dmitrij_K   (2006-11-13 11:41) [4]

Создавать не сразу, а в процесе работы программы = вручную


 
KilkennyCat ©   (2006-11-13 11:41) [5]

> [2] Choco ©   (13.11.06 11:37)

что Вы поняли под "создавать вручную"? :))


 
Плохиш ©   (2006-11-13 11:41) [6]


> Choco ©   (13.11.06 11:37) [2]
> Вручную негодится... Надо сделать так чтоб нужная форма
> открывалась ПО УСЛОВИЮ

Вам надо нанять программиста, тогда, после создания им программы, для Вас всё будет открываться не вручную.


 
Choco ©   (2006-11-13 12:24) [7]

не надо ёрничать... возможно мой вопрос и некорректен тогда скажите мне об этом... мне не нужно чтоб все формы создавались в момент старта программы...для особо непонятливых(меня то есть) напишите мне фрагмент кода, который по условию if a=0 подключает оконный объект ( видимо это должно быть что-то типа If not Assigned (Form1)then
Form1:=form1.Create(Self))


 
Anatoly Podgoretsky ©   (2006-11-13 12:26) [8]

> Choco  (13.11.2006 11:37:02)  [2]

Вручную, значить написать код создания в программе, при выполнение условия.


 
novill ©   (2006-11-13 12:30) [9]

> [7] Choco ©   (13.11.06 12:24)
> If not Assigned (Form1)then
> Form1:=form1.Create(Self))

Ну правильно написал, только букву Т забыл: TForm.Create


 
Kolan ©   (2006-11-13 12:35) [10]

> Ну правильно написал, только букву Т забыл: TForm.Create

ИМХО вообше неправильно он написал.

Form1:=form1.Create(Self))
From1 - Это экземпляр чего? Какого класса?


 
Choco ©   (2006-11-13 13:37) [11]

экземпляр стандартного класса TForm... написала то я неправильно...только ведь мне надо надо загрузать мою, готовую а не стандартную пустую... или я не так говорю?


 
Anatoly Podgoretsky ©   (2006-11-13 13:41) [12]

> Kolan  (13.11.2006 12:35:10)  [10]

Почему ты так уверен, это нормальная форма, откуда ты знаешь, что он хотел здесь сделать, может переинициализировать. Смотреть справку по конструкторам.

--


 
StriderMan ©   (2006-11-13 13:45) [13]

Все очень просто. создаешь форму как обычно. Далее в свойствах проекта/Forms убираешь ее из списка auto-create. Пусть форма называется Form1, ей соответствует класс TForm1

в ран-тайме пишешь

procedure ShowForm1Modal;
var
 f: TForm1;
begin
 f := TForm1.Create(nil);
 try
   f.ShowModal;
 finallly
   f.Free;
 end;
end;


 
Choco ©   (2006-11-13 13:57) [14]

ладно, поставим вопрос иначе:видимо мне надо создать экземпляр моей формы например MyForm.Как модель с формой включить в Exeшник... если можно - пример кода


 
MikePetrichenko ©   (2006-11-13 14:02) [15]


> ладно, поставим вопрос иначе:видимо мне надо создать экземпляр
> моей формы например MyForm.Как модель с формой включить
> в Exeшник... если можно - пример кода

Не правильно поставлен вопрос. В корне.
Вопрос вам нужно ставить так:
"Поскажите пожалуйста, что можно почитать по Delphi? Где можно найти хорошую литературу?"
либо
"Готов заплатить $XXXX. Кто возмется сделать мне программу?"


 
Sergey13 ©   (2006-11-13 14:03) [16]

> [14] Choco ©   (13.11.06 13:57)

if a>b then MyForm:=TMyForm.Create(application);


 
Плохиш ©   (2006-11-13 14:03) [17]

Тут одно из двух, либо ты читаешь теорию, либо "Kirche, Küche, Kinder"


 
Choco ©   (2006-11-13 14:07) [18]

понятно, большое спасибо что ничем не помогли


 
Anatoly Podgoretsky ©   (2006-11-13 14:29) [19]

> Choco  (13.11.2006 13:57:14)  [14]

Это в свойствах проекта - Добавить модуль

--


 
RWolf ©   (2006-11-13 14:32) [20]


> понятно, большое спасибо что ничем не помогли

Вообще-то ответ был озвучен в первом же посте.


 
Anatoly Podgoretsky ©   (2006-11-13 14:33) [21]

> Choco  (13.11.2006 14:07:18)  [18]

Ну а разве совет  [17] плох?

--


 
Игорь Шевченко ©   (2006-11-13 14:36) [22]

Choco ©   (13.11.06 14:07) [18]


> понятно, большое спасибо что ничем не помогли


Обычно для помогания требуется чтобы уровень помогаемого адекватно оценивал предложенное помогание


 
Ketmar ©   (2006-11-13 17:22) [23]

Удалено модератором


 
RASkov   (2006-11-14 02:06) [24]

> [18] Choco ©   (13.11.06 14:07)

Это почему же не помогли. Тут чуть ли не в каждом посте ответ на твой вопрос.
Еще раз: У тебя формы и модули в проекте имеются. Т.е. созданы формы на них компоненты обработчики описаны, так?
Если да, то в меню Project>Options остовляешь только главную форму в AutoCreate forms остольные выкидываешь в Availableforms. Далее в коде программы создаешь эти формы так как тебе уже писали. Типа:
В каждом модуле с формой описана переменная типа этой формы.
Модуль с формой: (которую впоследствии создадим вручную)
unit UMyForm;
type TMyForm = class(TForm)
...
var MyForm: TMyForm;
-------------------------
unit MainForm;
....
uses UMyForm;
......
//Собственно создание:
if a=0 then begin
if not Assigned(MyForm) then MyForm:=TMyForm.Create(self);
MyForm.ShowModal;
FreeAndNil(MyForm); //Если этого не сделать то второй раз форма не создастся и на строчке выше AV будет
end;

С показом методом Show нужно немного по другому поступить. Подумай.
Теперь понятно?

ЗЫ Не женское это дело:)


 
Ketmar ©   (2006-11-14 02:33) [25]

Удалено модератором


 
MikePetrichenko ©   (2006-11-14 02:41) [26]


> RASkov   (14.11.06 02:06) [24]

Не стоит так напрягаться. Бесполезно.


 
RASkov   (2006-11-14 02:45) [27]

Удалено модератором


 
Германн ©   (2006-11-14 03:27) [28]

Жаль, что сей форум потерял "ЦифроЧеловека". Вот это дейстительно жаль! :-(


 
Ketmar ©   (2006-11-14 04:00) [29]

>[28] Германн(c) 14-Nov-2006, 03:27
эх... не трави отсутсвие души...


 
Jeer ©   (2006-11-14 13:11) [30]


> Германн ©   (14.11.06 03:27) [28]
>
> Жаль, что сей форум потерял "ЦифроЧеловека". Вот это дейстительно
> жаль! :-(


Это кто так решил ? :)


 
Игорь Шевченко ©   (2006-11-14 13:19) [31]

Германн ©   (14.11.06 03:27) [28]

Никто никого не терял


 
Ketmar ©   (2006-11-14 17:43) [32]

я лично про ник говорил. красивый.
%-)



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.073 c
2-1163792521
vasIzmax
2006-11-17 22:42
2006.12.03
Понятие объекта


2-1163174786
yuraspb
2006-11-10 19:06
2006.12.03
Как записать в файл массив размером 8 точек на миллион


11-1140002148
KingMidas
2006-02-15 14:15
2006.12.03
SQLLite


4-1153468924
Lagrima_JN
2006-07-21 12:02
2006.12.03
Как определить, что эл. питание отсутствует?


2-1163515415
Ruffian
2006-11-14 17:43
2006.12.03
Хелп плиз с работой с файлами...