|
Release формы
|
|||
---|---|---|---|
#18+
День добрый! Вот слепил класс в дизайнере наследующий класс form. Так и не понял как можно в project manager добавить форму являющуюся объектом класса производного от form.... создаю такую форму вызовом createobject(....), в дизайнере класса леплю кнопку с командой thisform.release, ну а Unload и Destroy формы так и не наступают.... Всем читающим: мож кто подскажет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2010, 17:38 |
|
Release формы
|
|||
---|---|---|---|
#18+
Создать файл SCX на базе собственного класса можно указав в настройках: Tools \ Options \ закладка Forms \ группа объектов "Template classes" \ поставить птичку рядом с "Form" и в появившемся окне указать собственный класс. После этого при создании новой формы (файла SCX) она будет создана на базе указанного класса. Однако можно написать приложение и без создания файлов SCX. Используя только CreateObject() или NewObject(). Это просто другой стиль написания приложения. Вопрос личных предпочтений. Насчет Unload и Destroy - не понял. Что Вы хотите получить в результате? Надеюсь, Вы в курсе, что вернуть значение в переменную, по аналогии с DO FORM MyForm.scx TO MyVar если Вы используете CreateObject() - невозможно? При этой технологии используются другие приемы программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2010, 20:06 |
|
Release формы
|
|||
---|---|---|---|
#18+
авторОднако можно написать приложение и без создания файлов SCX. Используя только CreateObject() или NewObject(). Это просто другой стиль написания приложения. Вопрос личных предпочтений. это не вопрос личных предпочтений, а приученность работать в "старой манере". создание scx влечет: 1. невозможность дальнейшего наследования, огромное количество форм в больших проектах и как следствие - трудносопровожаемость, невозможность быстрой доработки 2. избыточность в виде доп.объектов - ДЕ формы, абсолютно ненужного при определенных приемах ООП и использовании абстрактных классов для работы с таблицами 3. невозможность обыграть поведение (загрузку) , как следствие некоторые проблемы в виде разрушений 4. невозможность "нормального" масштабирования приложений и вызова форм в сложных проектах, состоящих из множества приложений (необходимость создания процедур-оберток) 6. scx-форма - это хлам, который перекочевал из ранних версий в старшую автор ну а Unload и Destroy формы так и не наступают.... приведите пример, демонстрирующий проблему, возможно не убивается какая-то циклическая ссылка на какой-то объект как работать с класс-формами и создавать некоторые абстрактные загрузчики класс-форм (для того чтобы не писать в коде createObject) можно посмотреть здесь: http://www.sql.ru/forum/actualthread.aspx?tid=618865&hl=%ea%eb%e0%f1%f1%fb ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 09:21 |
|
Release формы
|
|||
---|---|---|---|
#18+
ВладимирМ, obj=createobject('myform',....) в дизайнере классов, в классе myform наследуюсь от form и вешаю кнопку в обработчике click которой CLEAR EVENTS thisform.release запускаюсь, при нажатиии кнопки форма не уничтожается... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 10:42 |
|
Release формы
|
|||
---|---|---|---|
#18+
2 _usa__83_ сделайте минимальный проект, включите в него свою библиотеку и другте модуле, упакуйте и положите сюда в миним. варианте у вас должно быть в проекте - библиотека: класс формы, класс наследник от нее - какой то главный модуль, стартующий все это дело в виде Код: plaintext 1. 2. 3. 4. 5.
у формы у вас кнока, в которой нужен только код Код: plaintext 1.
clear events нужно написать в деструктор самого класса (в реальных приложениях такого не пишут, т.к. приложение не состоит из одной формы) я Вам указал ссылку, там имеются примеры, Вы посмотрели? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 11:05 |
|
Release формы
|
|||
---|---|---|---|
#18+
прошелмимоэто не вопрос личных предпочтений, а приученность работать в "старой манере". А разве это не есть "личные предпочтения"? прошелмимосоздание scx влечет: 1. невозможность дальнейшего наследования, огромное количество форм в больших проектах и как следствие - трудносопровожаемость, невозможность быстрой доработки Напрямую наследование невозможно. Это да. Но немного поработав, сделать наследника можно. Только, когда выдвигают подобный аргумент, как-то упускают из вида, что создание наследника от законченной формы (пусть и в виде класса) - исключительно редкая задача. Более того, даже в виде класса - это тоже очень трудоемкая и невозможная в быстрой доработке. прошелмимо2. избыточность в виде доп.объектов - ДЕ формы, абсолютно ненужного при определенных приемах ООП и использовании абстрактных классов для работы с таблицами Это действительно так. Только когда выдвигают этот аргумент скромно умалчивают о том факте, что для класса приходится писать некий самописный аналог DE-формы. Плюс дополнительный код по привязке ControlSource-объектов к полям таблицы. прошелмимо3. невозможность обыграть поведение (загрузку) , как следствие некоторые проблемы в виде разрушений Почему же. Очень даже возможно. Стандартное ветвление кода в Init-формы. А проблемы с разуршением возможны и при использовании классов. прошелмимо4. невозможность "нормального" масштабирования приложений и вызова форм в сложных проектах, состоящих из множества приложений (необходимость создания процедур-оберток) Не аргумент. При использовании классов процедура-обертка также необходима для запуска из внешних APP/EXE. прошелмимо6. scx-форма - это хлам, который перекочевал из ранних версий в старшую Сама терминология и аргументация уже говорит исключительно о личном отношении. "В своем глазу бревна не замечаешь" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:12 |
|
Release формы
|
|||
---|---|---|---|
#18+
2 ВладимирМ, Код: plaintext
не пойти-бы на фоксклаб Вам, сударь? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:15 |
|
Release формы
|
|||
---|---|---|---|
#18+
_usa__83_ВладимирМ, obj=createobject('myform',....) в дизайнере классов, в классе myform наследуюсь от form и вешаю кнопку в обработчике click которой CLEAR EVENTS thisform.release запускаюсь, при нажатиии кнопки форма не уничтожается... Вообще-то, так не делают. Т.е. команда CLEAR EVENTS не дается при закрытии формы, а выносится во вне. А где Вы даете команду READ EVENTS? Надеюсь, не в методах самой формы? Это как раз и может вызвать подобный эффект. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:16 |
|
Release формы
|
|||
---|---|---|---|
#18+
2 _usa__83_ смотрите пример, котрый я указал и пробуйте каким-то образом понимать некоторые механизмы, приведенные там, понимать некий абстрактный подход. для оказания Вам конкретного совета по Вашим проблемам необходим от Вас какой-то пример, который можно будет отсюда взять и воспроизвести(посмотреть) у нас. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:18 |
|
Release формы
|
|||
---|---|---|---|
#18+
ВладимирМ , прошелмимо Прошу прощения за оффтоп. Но касательно Вашего спора. У меня в проекте, порядка 70 формсетов, в каждем формсете в среднем 4-6 форм, все данные получаются из веб-сервиса(тоже написанного на фокспро). Привязку данных к елементам управления на форме произвожу кодом. Хотел-бы попробовать задействовать DE, но не совсем понимаю как это можно сделать. Это первый вопрос, и второй прошелмимоscx-форма - это хлам, который перекочевал из ранних версий в старшую а что использовать вместо визуальных форм? З.Ы. Не холивара ради, хочу понять как можно более эффективно использовать VFP9. З.Ы.Ы Если нужно, давайте перейдем в новую тему. И я могу сделать пример проектов для показа как делаю сейчас и выслушать критику и предложения по улучшению. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:39 |
|
Release формы
|
|||
---|---|---|---|
#18+
авторНе холивара ради, хочу понять как можно более эффективно использовать VFP9. смотрите пример построения фрейма, подход данный не терпит использование scx-форм, это ООП, поэтому приходится некоторым образом делить и оперировать с объемами различных сущностей. автора что использовать вместо визуальных форм? визуальные класс-формы: - универсальные построители-видоизменители в случае возможности такового; - либо разработка "влоб" визуальных класс-форм в случае невозможности динамики (либо трудозатратности, либо ....) scx подходит для каких-то не сложных (не объемных) проектов, иначе - это обширное количество файлов с трудным(затратным) сопровождением, + проблемы в сложных(разбитых по архитектуре) проектах, когда ко всем прелестям возникают проблемы со сборкой проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:48 |
|
Release формы
|
|||
---|---|---|---|
#18+
Игорь Горбонос прошелмимоscx-форма - это хлам, который перекочевал из ранних версий в старшую а что использовать вместо визуальных форм? В данном случае спор ведется не об использовании форм как таковых, а о способе создания экземпляра формы в рабочем приложении. Это можно сделать двумя способами: 1. Создать файл SCX и запускать его на исполнение DO FORM MyForm.scx 2. Создать класс на базе класса Form и запускать его на исполнение CreateObject('MyClass') С точки зрения пользователя результат будет одинаковый. Пользователь увидит форму. Вопрос именно в способе создания этой формы "внутри" FoxPro. Лично я считаю, что оба способа равнозначны. Что больше нравится и удобнее в данном конкретном случае, то и следует использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:49 |
|
Release формы
|
|||
---|---|---|---|
#18+
авторС точки зрения пользователя результат будет одинаковый. Мужчина, Вы меня все больше удивляете. А с точки зрения разработчика, который стремиться к минимизации трудозатрат? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:52 |
|
Release формы
|
|||
---|---|---|---|
#18+
прошелмимоавторС точки зрения пользователя результат будет одинаковый. Мужчина, Вы меня все больше удивляете. А с точки зрения разработчика, который стремиться к минимизации трудозатрат? Это зависит от самого разработчика. Язык программирования и используемые инструменты - не при чем. FoxPro - это инструмент, который требует повышенной самодисциплины от разработчика. Если был "бардак" на стадии планирования, то получишь "бардак" на этапе разработки. И уж какими технологиями при этом пользоваться совершенно не важно. Просто FoxPro не "бьет по рукам" сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:56 |
|
Release формы
|
|||
---|---|---|---|
#18+
Игорь Горбонос Возможно, Вам имеет смысл посмотреть вот этот цикл статей (там все по русски, несмотря на английские заголовки) Статьи о некоторых аспектах применения технологии MS VFP (Visual FoxPro). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 12:57 |
|
Release формы
|
|||
---|---|---|---|
#18+
ВладимирМпрошелмимоавторС точки зрения пользователя результат будет одинаковый. Мужчина, Вы меня все больше удивляете. А с точки зрения разработчика, который стремиться к минимизации трудозатрат? Это зависит от самого разработчика. Язык программирования и используемые инструменты - не при чем. FoxPro - это инструмент, который требует повышенной самодисциплины от разработчика. Если был "бардак" на стадии планирования, то получишь "бардак" на этапе разработки. И уж какими технологиями при этом пользоваться совершенно не важно. Просто FoxPro не "бьет по рукам" сразу. Мужчина, Вы написали "словесный понос". Итак, когда разработчик видит способы снижения трудозатрат, он выбирает такие способы. А то, что для пользователь не видит разницы на экране - это как раз будет результат, получаемый меньшми трудозатратами. А дисциплина и "бардак" это уже из другой "песни о главном". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:06 |
|
Release формы
|
|||
---|---|---|---|
#18+
Мужчина, Вы меня вновь удивили. При суждении о трудозатратах при разработке ПО, реплика: авторЯзык программирования и используемые инструменты - не при чем. очень смелая. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:12 |
|
Release формы
|
|||
---|---|---|---|
#18+
> Автор: прошелмимо > смотрите пример построения фрейма, Не понял какой пример смотреть > визуальные класс-формы: > - универсальные построители-видоизменители в случае возможности такового; > - либо разработка "влоб" визуальных класс-форм в случае невозможности динамики > (либо трудозатратности, либо ....) Но это получается мы "зашиваем" весь специфический функционал в класс. Но использовать можем только для какого-то узкоспециализированного места, ради которого и создавался класс. Я правильно понимаю? И если да, то в чем выгода от класса. Разве что на его основе создать форму и включить в проект уже саму форму и что-то в ней доизменить. > scx подходит для каких-то не сложных (не объемных) проектов, > иначе - это обширное количество файлов с трудным(затратным) сопровождением, > + проблемы в сложных(разбитых по архитектуре) проектах, > когда ко всем прелестям возникают проблемы со сборкой проектов. с другой стороны если в какой-то форме нужно что-то доделать, я отдал форму коллеге, он сделал и я просто скопировал от него измененную форму, если эта форма была с библиотеке классов, то это уже вызывает затруднения в случае изменения другого класса из этой библиотеки. Если каждый класс в отдельном файле, то чем ситуация отличается от варианта с формами? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:12 |
|
Release формы
|
|||
---|---|---|---|
#18+
тобишь рассуждая о ..., ну Вы меня поняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:13 |
|
Release формы
|
|||
---|---|---|---|
#18+
2 Игорь Горбонос , давайте вначале пример посмотрите, не хочу я писать километры, нет никакого желания + Мужчина утомит ("слышит звон, но не знает где он") вот здесь, во 2-м и 3-м топике http://sql.ru/forum/actualthread.aspx?tid=726331 лежит финал некоторого фрейма, который как раз и показывает каким образом сократить трудозатраты при разработке проекта, рез-том выполнения которого будет множество каких-то подобных экранных форм вывод о возможности применения данного подхода(приема разработки) при реализации поставленных перед Вами задач Вы сделаете самостоятельно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:23 |
|
Release формы
|
|||
---|---|---|---|
#18+
авторНо это получается мы "зашиваем" весь специфический функционал в класс. мы "зашиваем" в класс все общее для группы однотипных объектов, которые затем будем создавать используя класс. далее мы видоизменяем у такого класса то, что необходимо для каждого объекта (набор данных, отображаемых контролов, логику выполнения и т.д.) наивысшим пилотажем будет вариант использования для такого видоизменния каких-то предзаготовленных настроечных сущностей, создание этих настроек посредством абстрактных визуальных билдеров, передача данных "преднастроек" классу, разбор и видоизменение класса уже именно этими "преднастройками" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 13:35 |
|
Release формы
|
|||
---|---|---|---|
#18+
> Автор: ВладимирМ > Статьи о некоторых аспектах применения технологии MS VFP (Visual FoxPro). С этих статей и началось моё знакомство с веб-сервисами только в них не описывается использование DE. Поэтому у меня привязка контролов происходит в коде программы, как показано в статье, а я хотел-бы попробовать задействовать DE, если это возможно, но не знаю как. Например у меня процедуры на сервере могут возвращать как курсор в XML, так и просто число, сигнализирующее об ошибке. Как обойти этот момент я не знаю, т.к. прописав вызов функций изменения данных прямо в CursorAdapter у меня нет возможности контролировать получаемое значение, что бы как то влиять на поведение CursorAdapterа в случае получения не XML с курсором, а числа, сигнализирующего об ошибке. Можно изменить поведение процедуры на сервере, что бы всегда возвращать XML с курсором, но тогда не понятно как возвращать ошибку обработки на клиента. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 14:18 |
|
Release формы
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
непонятно какой у Вас сервер, если это MySql, то я ничем не помогу относительно Ms Sql я приводил пример обработки ошибки сгенерированной raiserror в ХП и полученной КАД ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 14:41 |
|
Release формы
|
|||
---|---|---|---|
#18+
> Автор: прошелмимо > относительно Ms Sql я приводил пример обработки > ошибки сгенерированной raiserror в ХП и полученной КАД Сервер MS SQL 2000, а ссылкой не поделишся? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 14:50 |
|
Release формы
|
|||
---|---|---|---|
#18+
бд и пример здесь, нужен 2005 сервер http://sql.ru/forum/actualthread.aspx?tid=726131&hl=2005 сервер возьми отсюда http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848-dcc397514b41&displaylang=en смотри на триггер DocState_delete Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
на клиенте увидишь обработку ошибки, код ошибки и т.д. сможешь также передать доп параметром raiserror, и разрулить на клиенте каким-то своим хитрым способом, все зависит от фантазии. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2010, 14:57 |
|
|
start [/forum/topic.php?fid=41&msg=36422622&tid=1585654]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 154ms |
0 / 0 |