|
|
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Рылась-рылась, не нашла, как сделать, чтоб был единственный экземпляр формы. =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2005, 16:58 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Что-то я не вьеду в вопрос, а можна поподробнее Истина где-то там... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2005, 22:15 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Если вопрос стоит в том, чтобы запретить повторный запуск одной и той же формы, то простейший вариант: ПЕРЕД запуском формы примерно такой код Код: plaintext 1. 2. 3. Подробнее здесь Как проверить факт существования переменной памяти, поля таблицы, метода формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2005, 23:33 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Почему то данный код не срабатывает. Форма загружается повторно. Name формы = 'myform'. В чем ошибка %( PROCEDURE IconClickEvent IF TYPE("_VFP.Forms('myform')")="U" DO FORM form_hi ENDIF ENDPROC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 14:47 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
А еще можно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. авторство не мое но непомню где брал. (наверно на foxclub) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 14:56 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
а еще и вот так попробовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 14:59 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
S866а еще и вот так попробовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. таким образом вообще не запускается. А что же делать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 15:24 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Извиняюсь - там логически неправильно сделано НАДО ТАК: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. а вот если не срабатывает условие if alltrim(upper(_screen.forms(j).name))='APPEND621K' то надо глядеть почему оно не срабатывает - поэтому там и alltrim и upper стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 16:40 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Интересно, а почему IF TYPE("_VFP.Forms('MyForm')")="U" do form MyForm ENDIF не срабатывает. У меня TYPE("_VFP.Forms('MyForm')") всегда со значением "U" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 16:48 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Надеюсь, понимаешь разницу между значением свойства Name формы и именем файла SCX? То, что надо подставлять в выражение IF TYPE("_VFP.Forms('MyForm')")="U" это НЕ имя файла SCX. Это значение одного из реквизитов (свойств) формы. В данном случае реквизита Name. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 16:59 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
S866Извиняюсь - там логически неправильно сделано НАДО ТАК: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. а вот если не срабатывает условие if alltrim(upper(_screen.forms(j).name))='APPEND621K' то надо глядеть почему оно не срабатывает - поэтому там и alltrim и upper стоит. ХОТЯ ВАШ КОд сработал. Странно, вроде существенной разницы с предыдущим вашим примером не было, только else использовалось, за место флага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:04 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
ВладимирМНадеюсь, понимаешь разницу между значением свойства Name формы и именем файла SCX? То, что надо подставлять в выражение IF TYPE("_VFP.Forms('MyForm')")="U" это НЕ имя файла SCX. Это значение одного из реквизитов (свойств) формы. В данном случае реквизита Name. Да конечно, я это понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:16 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Сделай тестовую формочку, запусти ее и в командном окне дай команду Код: plaintext Кстати, о какой версии FoxPro идет речь? А вот такая команда что вернет: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:52 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
ВладимирМСделай тестовую формочку, запусти ее и в командном окне дай команду Код: plaintext Кстати, о какой версии FoxPro идет речь? А вот такая команда что вернет: Код: plaintext вы знаете, тестовая формочка работает правильно. Возвращается 0 и Form1. Но я нашла в чем проблема. В моей форме form.showwindow=2. Как только я меняю это свойство в тестовой форме, тогда при ее запуске ?TYPE("_VFP.Forms([Form1])") возвращает U. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 08:34 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
to Krushinskaya Olga Код: plaintext 1. 2. 3. 4. 5. 6. 7. тут elase do form выполнится _screen.formcount-1 раз (где formcount - кол-во откр. форм в момент начала цикла. т.к. он будет увеличиваться при каждом следующем do form). Для ВладимираМ - у меня правило одинаково обзывать name - формы и имя файла scx - во избежании путаницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 08:43 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
а у нас в квартире газ на взлете присваиваем форме уникальный дескриптор и делов - та ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 10:31 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
to alex11100 а как вы по дискриптору к форме обращаться будете? а по имени просто Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 11:34 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
это примерчик, но он не в тему а если вообчета оч.интересно, то могу заселить смуту в головы людские Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 11:55 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Я использую такой код для проверки повторного запуска формы. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:02 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Если есть ссылка на объект - форму, то можно узнать имя ее .SCX - файла SYS(1271, oObjectFormName) Можно пройтись циклом по всей коллекции _SCREEN.Forms(), то можно легко найти требуемую форму и активизировать ее. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 14:23 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
А почему TYPE("_VFP.Forms([Form1])") все время равно U при Form1.showWindow=2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 14:42 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Krushinskaya OlgaА почему TYPE("_VFP.Forms([Form1])") все время равно U при Form1.showWindow=2? Дело в том, что указание в качестве параметра символьной строки - это НЕ документированная возможность. Т.е. в описании ясно указано, что параметром коллекции Forms() может быть только число. Как следствие, такое использование не всегда предсказуемо. "Правильным" является именно полный перебор вообще всей коллекции форм и поиск нужной формы по какому-либо уникальному реквизиту. Хотя, "еще более правильным" является создание собственного стэка запущенных форм. Т.е. где-то отдельно вести список тех форм, которые уже запущены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 19:29 |
|
||
|
экземпляры формы
|
|||
|---|---|---|---|
|
#18+
Кстати, оказалось, что TYPE("_VFP.Forms([Form1])") равно "U" при Form1.showWindow=2 не все время, а только в том случае, если искомая форма не является активной на момент проверки. Т.е. в качестве _Screen.ActiveForm указана другая форма (или ничего не указано) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 10:25 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33474772&tid=1592580]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 519ms |

| 0 / 0 |
