Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.042 c
2-1163406326
Panaev
2006-11-13 11:25
2006.12.03
Подключение БД из сети


15-1163079164
Access
2006-11-09 16:32
2006.12.03
Восстановить "опции" explore.exe в реестре


2-1163406956
TrainerOfDolphins
2006-11-13 11:35
2006.12.03
Хранение настроек приложения в файле


2-1163484998
nayer
2006-11-14 09:16
2006.12.03
текущая дата в Paradox


15-1163534530
Виталий Панасенко
2006-11-14 23:02
2006.12.03
FireBird. Руководство разработчика баз данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский