Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Привет. Форма1 вызывает форму2 form2:=TForm2.Create(application) form2.showmodal; Как сделать, чтоб сразу после создания формы2 проверялось условие и в случае успеха форма2 закрывалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 16:18 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Если Form1 - созданна первой - т.е. стала главной в приложении: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 16:30 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
А куды энто пхать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 16:31 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Дык не про то код тот :)) Если нужно модальную форму закрыть, как я понял, то Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 18:24 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
2 tygra Не поверишь, но я так пробовал - не работает, поэтому и спрашиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 18:31 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
> tygra прога автоматом закрывается и удаляет все формы если удаляется главная форма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 18:33 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Прогу то закрыть на проблема - нужно форму, которая модально вызывается Тогда делай по-другому: напиши в форме процедуру (или функцию), которая сначала будет проверять условие и если оно не выполняется - тогда показывать форму. Типа такого Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 18:44 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
> tygra Я думал ему нужно Form1 скрыть во время показа Form2. Хотя зачем сие надо - не врубаюсь ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 18:53 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Неа такой вариант не подходит. Проверка должна осуществляться на форме, которую вызвали. Потому что каждую форму (а их 500) может вызывать около 20-30 форм. Получается надо искать все места вызовов и там вставлять проверку. Получится 500*20(30)=10000-15000проверок. Это напряжно. А если повесить проверку на форму, которая вызывается(на все), то не зависимо от того кто ее вызвал проверка осущ на форме которую вызвали,т.е. 500*1=500 проверок. Т.е. как-тока форма захочет родиться надо проверять а может ли она это сделать. Тока не знаю как это сделать. Пробовал вешать на Oncreate, Onactivate, Onshow - не получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2002, 19:47 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Надо вешать проверку на OnPaint - все будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 08:23 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Добро утро 2 eNose Это тоже не очень хорошо. Потому как эта проверка предусматривает запрос к SQL Server и будет напряжно, если при каждой перерисовке будет бесполезный запрос. Хотя можно после первого ONPAINT сигнальной переменной присвоить значение true, а при перерисовке проверять это значение и соответственно либо делать проверку либо нет. Но это как-то извращенно получается. Если других идей никто не подкинет буду делать так. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 09:28 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
У вызываемой формы сделай public-функцию проверки условия. TForm2 = class ... public CheckSomeStuff: Boolean; ... И пиши так: form2:=TForm2.Create(application) ; if form2.CheckSomeStuff then form2.ShowModal else form2.Destroy; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 11:51 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
> Cooper Пожста опиши че те надо - че ты хошь? Тут уже двестимиллиардов советов надавали )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 12:03 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
2 guest2002 Спасибо конечно, но это не подходит. Я же писал, что не хоца искать все места вызова форм и вставлять туда проверку, и в зависимости от проверки либо showmodal либо нет. А хоца вызывать формы, а они уж сами решают показываться им или нет, т.е. один раз впихнуть в каждую форму проверку и если ее пытаются вызвать, то она проверяет сама условие, и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:09 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
2Cooper Самое простое решение (его мы и используем) - формы никогда не вызываются напрямую через Show или ShowModal, а везде - через процедуру FormShow. В ней и лепи, чо хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:22 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
2 dkstranger А как? Кинь примерчик, а то уже ниче не соображаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:25 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
TForm2 = class(TForm) private { Private declarations } public { Public declarations } constructor Create(aOwner: TComponent); reintroduce; virtual; end; ........... constructor TForm2.Create(aOwner: TComponent); begin if True{твое условие} then raise Exception.Create('Нет возможности работать'); end; Вызов формы2 из формы 1 procedure TForm1.Button1Click(Sender: TObject); begin try form2 := TForm2.Create(Self); form2.SHowModal; except on E: Exception do ShowMessage(E.Message); end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:26 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Поправляю: constructor TForm2.Create(aOwner: TComponent); begin inherited Create(aOwner); if True then raise Exception.Create('Нет возможности работать'); // или тут inherited Create(aOwner); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:29 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
TF = class(TForm) private flg_mod:boolean; flg_show:boolean; public property FlagModal:boolean read flg_mod write flg_mod; property FlagShow:boolean read flg_show write flg_show; procedure FormShow; end; procedure TF.FormShow; begin if FormShow then begin if FlagModal then begin ShowModal; end else begin Show; end; end else begin // делай, что тебе нужно и не показывай форму... end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:32 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
Тока не куда не уходите! Ща буду пробовать. Нутром чую сразу не получится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:36 |
|
||
|
Как закрыть форму сразу же после создания
|
|||
|---|---|---|---|
|
#18+
2 &Alexis СПАСИБО!!! После двухдневных мучений наконец-то заработало!!! Тока не совсем понял как работает. А если у меня в form2.create() есть код, касяков не будет? 2 dkstranger Пока не пробовал, но за помощь отдельное СПА!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2002, 14:44 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=58&tid=2119500]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 10ms |
| total: | 258ms |

| 0 / 0 |
