Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Как в VFP реализовать этот pattern. Т.е. у меня есть модуль( class library) - мне хотелось бы чтобы для этого модуля во время выполнения существовал только один объект определенного класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 11:51 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Вообще-то singleton это вроде несколько другое понятие. Насколько я понимаю это тоже самое что в multithreaded apartment в СОМ. А то что тебе нужно ищи в сторону ainstance() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:12 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
без понятия ч:е это такое, но если в методе Init() объекта вернуть фальш, то объект не создаца. Соотв в нем нужно устроить проверку есть ли ссылка на этот объект или типа того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:13 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Кстати если класс является формой то очень полезная функция wexists() . С помощью нее обычно отключают пункт меню чтобы нельзя было повторно вызвать туже форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:15 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Библиотеки классов, включенные в проект, добавляются в APP/EXE целиком во время компиляции, даже если обращения в программе к ним отсутствуют. Так что, если задача заключается в выделении какого-то одного класса из библиотеки для использования в проекте, то эта задача решается ручками: MODIFY CLASS ClassName OF ClassLibraryName.vcx, и последующее сохранение класса в новую библиотеку. ЗЫ. Не стоит забывать, что у требуемого класса могут быть родители, из-за которых во время компиляции в проект целиком добавятся библиотеки, в которых они размещены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:17 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Добавчик к сообщению Hel!Riser Не только в Init но и в Load() Примеры Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:20 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Ой последнее не правильно define class MyForm as Form proc Load return !wexists("MyForm") enddefine ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:24 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Я бы кстати сделал бы так define class MainApplication AS Custom func CreateSingleObject lpara lcClassName local array laIns[1] local lnInstCount lnInstCount = ainstance(laIns,lcClassName) return iif(lnInstCount>0,laIns[1],createobject(lcClassName)) endfunc enddefint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:32 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Или просто функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:34 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
:)) Crip, тихо сам с собою я веду беседу (с) :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:44 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Crip Вообще-то singleton это вроде несколько другое понятие Singleton - это патерн описывающий класс для которого может быть создан только 1 экземпляр и присутсвует глобальная точка входа А то что тебе нужно ищи в сторону ainstance() Спасибо - посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:57 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
2Hel!Riser Тоже самое хотел написать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:10 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
2funikovyuri В чистом виде наверное не получится... Можно комбинируя варианты которые я тебе предложил. Описать в классе чтобы он не создавался в случае если его объект уже существует, а при создании проверять создался ли объект и получать ссылку на уже существующий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:25 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
еще один вопрос - есть ли в VFP статические методы-члены классов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:26 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Нет статических методов :( Вместо этого надо юзать просто функции и процедуры либо объявлять методы в главном классе приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:58 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Crip Значит я все далал правильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 14:00 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Есть хилое подобие статических членов , которое скорее является особенностью поведения классов фокса. Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 14:03 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Статических методов в VFP нет и от защищённых Init методов тоже будет мало толку. Предлагаю создать процедуру Instance_Singleton, посредством которой допустимо создание объекта. В Init методе сделать проверку на имя вызывающей процедуры. При попытке создать объект из другой процедуры возращать .f. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2004, 19:13 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
2 funikovyuri ... ну и как тут можно работать, а? Желаю удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 09:26 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
2snake Когда проектируешь приложение надо знать какие ограничения накладывает среда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 11:49 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
особенно когда среда навязана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 11:57 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
Кем и кому? Автору поста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:01 |
|
||
|
Singleton
|
|||
|---|---|---|---|
|
#18+
vklepko Большое спасибо - буду смотреть snake Знаешь - в принципе - как оказалось - работать можно - и даже без каких-то глобальных проблем... Пока меня раздражают 4 вещи - отсутсвие типизации (ну не могу я после C++ это терпеть - и постоянно накалываюсь) - отсутствие исключений (я пока на VFP7 - вот перейду на 8-ку - и тогда этот пункт отпадет) - отсутствие транзакций (так как я работаю с унаследованной системой которой уже более 10 лет - то большая часть кода транзкации не использует и большинство таблиц не входят в .dbc) - ужасный грид Еще - к сожалению любымый мной PD9.5 про VFP не слышал :) P.S> а так - мне эту систему никто не навязывал - так что я знал на что шел...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 13:18 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32401729&tid=1597222]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 361ms |

| 0 / 0 |
