|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Sergey SizovSergey ChМодератор: Хороший вопрос. Может перенести топик в ПТ?Давно пора ибо ничто фоксовое тут уже давно не обсуждается. Да и топикстартер сильно напрашивается на паузу для изучения норм поведения в обществе. Вы же сами его и кормите А от тупо глумится над всеми, кто с ним встревает в разговор. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2013, 14:19 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
...Да и, кстати, - где он? Куды подевался? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2013, 15:24 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Притихли что-то ГУРУ ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 14:56 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Притихли что-то ГУРУ ... Модератор: Видимо все ожидают переноса топика в ПТ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 18:51 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Sergey Chsg12Притихли что-то ГУРУ ... Модератор: Видимо все ожидают переноса топика в ПТ Интересно будут смотреться слова "Основы FoxPro" рядом с темами про гопников, гинекологов и инопланетян . А еще интереснее будет поглазеть, когда там местные гуру начнут разглядывать эти фокспрошные страсти. Если же опять вернуться к теме, то опять тот же вопрос - а вообще, они существуют, эти "Основы программирования в VFP9"? Неужто здесь нет никого, кто за восемь лет его существования не попытался найти хоть какой-то маломальский ответ на этот вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 19:38 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima T, Отличная идея,тем более что сам использую такие форму, взаимодействующие также. А вот вопрос: таким чудным образом создаются только формы справочников ? Если "нет", как тогда "отреагирует" форма если изменить , например, типа столбца или добавить столбец. Какова трудоёмкость адаптации ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 19:51 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2Dima T, Отличная идея,тем более что сам использую такие форму, взаимодействующие также. А вот вопрос: таким чудным образом создаются только формы справочников ? Если "нет", как тогда "отреагирует" форма если изменить , например, типа столбца или добавить столбец. Какова трудоёмкость адаптации ? И попутно опять вопрос - почему вы это делаете в форме, а не в классе? А в форме не добавляете только изменения, вроде столбцов? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 20:01 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12thunder2Dima T, Отличная идея,тем более что сам использую такие форму, взаимодействующие также. А вот вопрос: таким чудным образом создаются только формы справочников ? Если "нет", как тогда "отреагирует" форма если изменить , например, типа столбца или добавить столбец. Какова трудоёмкость адаптации ? И попутно опять вопрос - почему вы это делаете в форме, а не в классе? А в форме не добавляете только изменения, вроде столбцов? Что именно "ЭТО" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 20:23 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2Что именно "ЭТО" ? Например, ваше "взаимодействие форм", если оно решено в родительских классах - почему тогда у вас форма должна отреагировать на изменения столбцов, да еще адаптироваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 20:53 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12thunder2Что именно "ЭТО" ? Например, ваше "взаимодействие форм", если оно решено в родительских классах - почему тогда у вас форма должна отреагировать на изменения столбцов, да еще адаптироваться? По-моему у вас "каша" в голове. Во-первых, я не говорил, что что-то где-то решено. Я сказал, что использую такой же подход. Во-вторых, меня интересует совсем другое и я хотел бы дождаться ответа от DimaT. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2013, 21:51 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12... Если же опять вернуться к теме, то опять тот же вопрос - а вообще, они существуют, эти "Основы программирования в VFP9"? Неужто здесь нет никого, кто за восемь лет его существования не попытался найти хоть какой-то маломальский ответ на этот вопрос? А зачем? Если Вы читаете по английски - написано много хороших книг на эту тему: www.hentzenwerke или полный список Владелец этого сайта Whil Hentzen сделал очень много в свое время по популяризации FoxPro. В этом издательстве даже есть книга, как правильно (по мнению авторов) написать свой Framework... Happy reading! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 00:21 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2Dima T, Отличная идея,тем более что сам использую такие форму, взаимодействующие также. А вот вопрос: таким чудным образом создаются только формы справочников ? Если "нет", как тогда "отреагирует" форма если изменить , например, типа столбца или добавить столбец. Какова трудоёмкость адаптации ? Не только справочники. Есть класс формы для правки документов с табличной частью. В VFP9 c появлением Anchor компоновка форм значительно упростилась. Таблицы в DE, поэтому добавление/изменение полей/колонок с помощью мыши. Последнее время работаю в основном с MS SQL, поэтому использую курсор-адаптеры в DE. В общем трудоемкость создания минимальная. Основные трудозатраты на заточку тяжелых часто используемых форм, дописывание туда специфики конкретной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 06:47 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima T Если судить только по вашим довольно скромным описаниям вы все делаете в формах, которые заготовили на все случаи жизни. А классы используете как хранилище для этих форм. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 14:04 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Dima T Если судить только по вашим довольно скромным описаниям вы все делаете в формах, которые заготовили на все случаи жизни. А классы используете как хранилище для этих форм. Прежде чем судить надо почитать то что я писал Dima TБазовый класс "БазоваяФорма". От нее унаследованы ФормаСправочник, ФормаРедактирование и вообще все классы форм. Вобщем все построено на классе БазоваяФорма. Классы я использую как хранилище повторно используемого кода. Для этого собственно они в ООП и задуманы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 14:24 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima T Ваше запутанное "я писал" и "БазоваяФорма" не мешают вам "все делать в формах". А вот про ваши "хранилища кода" и ваше "задуманное" ООП можно подробнее, что-то интересно стало. Из хелпа: Visual FoxPro поддерживает как стандартное процедурное программирование, так и мощное и гибкое объектно-ориентированное программирование. Объектно-ориентированный разработка и объектно-ориентированное программирование являются более современными и прогрессивными по сравнению со стандартным процедурным программированием. Вместо того, чтобы думать о программе как о процессе последовательного выполнения строк кода, теперь надо думать о создании объектов. Вы можете создавать объекты и манипулировать ими как самостоятельными компонентами приложения и применять их как в своих задачах, так и предоставлять для использования другим разработчикам. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 20:05 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Dima T Ваше запутанное "я писал" и "БазоваяФорма" не мешают вам "все делать в формах". "Все делать в формах" это что по твоему? Ты распиши поподробнее как ты понял мною написанное. sg12А вот про ваши "хранилища кода" и ваше "задуманное" ООП можно подробнее, что-то интересно стало. Что конкретно интересует? Практические вопросы задавай. Не вижу смысла сферических коней в вакууме обсуждать. Я это умею - но не люблю лекции читать. Нужна теория - читай книги. Например ту что Сергей посоветовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 20:30 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima T "Все делать в формах" - у вас нет даже упоминаний о классах объектов. И я "понял" так, что вы эти объекты программируете уже непосредственно в формах. Попробуйте начать хотя бы с классов кнопок, "хранилищ" поубавится. Практический вопрос - свои интригующие "кодохранилища и ЗООП" вы сами придумали? Это что-то новое. Да еще на ходу под них какие-то теории подводите, под "сферических коней в вакууме". Зачем выдумывать, если описание ООП есть в хелпе, с примерами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:08 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Dima T "Все делать в формах" - у вас нет даже упоминаний о классах объектов. И я "понял" так, что вы эти объекты программируете уже непосредственно в формах. Попробуйте начать хотя бы с классов кнопок, "хранилищ" поубавится. Неправильно понял. Есть классы форм, на всех кроме базовой есть контролы. Есть класс формы для правки, на форме кнопки "Сохранить, Отмена" , там все прописано. Когда мне надо форму редактирования записи справочника - я просто создаю форму на основе класса формы правки и получается готовая форма с кнопками "Сохранить, Отмена". Есть класс формы справочника где грид и кнопки "Добавить, Правка, Удалить ...". и т.д. и т.п. Зачем кнопки выносить в отдельный класс? Лично мне никогда не требовались кнопки "Сохранить, Отмена" без формы или форма с двумя парами кнопок "Сохранить, Отмена". Всегда нужна форма на которой одна пара кнопок "Сохранить, Отмена". В отдельные классы вынесено только то что может повторяться несколько раз на форме или использоваться без формы. На все типовые случаи есть готовый класс формы, в котором все прописано, остается только нужные свойства донастроить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:41 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Dima T "Все делать в формах" - у вас нет даже упоминаний о классах объектов. Уважаемый, вы из какого ПТУ пришли ? Вы вообще VFP хоть раз запускали ? Формы в VFP давно являются классами. Перестаньте нести бред. То что вы смешиваете в одном методе разные действия свидетельствует о мягко говоря слабой теоретической подготовке. Может вам освежить знания парадигмы ООП ? А то, ей богу, стыдно за вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 20:49 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima Tthunder2Dima T, Отличная идея,тем более что сам использую такие форму, взаимодействующие также. А вот вопрос: таким чудным образом создаются только формы справочников ? Если "нет", как тогда "отреагирует" форма если изменить , например, типа столбца или добавить столбец. Какова трудоёмкость адаптации ? Не только справочники. Есть класс формы для правки документов с табличной частью. В VFP9 c появлением Anchor компоновка форм значительно упростилась. Таблицы в DE, поэтому добавление/изменение полей/колонок с помощью мыши. Последнее время работаю в основном с MS SQL, поэтому использую курсор-адаптеры в DE. В общем трудоемкость создания минимальная. Основные трудозатраты на заточку тяжелых часто используемых форм, дописывание туда специфики конкретной задачи. Я не получил ответа. Задам вопрос конкретно: имеем форму "Редактирование записи" (пока не важно чего Справочник или другой объект ИС). Изначально для этой записи была получена тем или иным способом форма (для sg12 - объект класса Form в терминах ООП). Теперь меняем тип столбца таблицы с Charater на, например, Numeric или с Charater на Memo (столбец, естественно, редактируется в нашей форме). Что произойдёт в форме ? Как она отреагирует ? Второй вопрос: в нашу таблицу мы добавили столбец. Что мне надо сделать чтобы предоставить возможность редактирования значения этого столбца в форме (столбец имеет скалярный тип данных) ? Спасибо заранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 20:57 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2Теперь меняем тип столбца таблицы с Charater на, например, Numeric или с Charater на Memo (столбец, естественно, редактируется в нашей форме). Что произойдёт в форме ? Как она отреагирует ? Если поменять тип поля то ничего криминального в форме не случится. Текстбоксу без разницы какой тип поля ему достался. Гриду тоже. Другое дело код где это поле используется, его весь перелопатить придется. По-хорошему о типе поля надо думать на этапе проектирования. Я венгерскую нотацию использую. Первый символ в названии поля - тип, поэтому при смене типа изменится имя поля. Исключение разве что изменение размера символьного поля. Тут текстбокс надо поправить (.MaxLenght) thunder2Второй вопрос: в нашу таблицу мы добавили столбец. Что мне надо сделать чтобы предоставить возможность редактирования значения этого столбца в форме (столбец имеет скалярный тип данных) ? Спасибо заранее. Открыть DE, вытащить поле мышкой на форму, сменить label.caption и порядок обхода записей поправить. Если используется курсор-адаптер - сначала поправить его. Стандартные механизмы фокса. Все быстро, легко и просто. Ничего самопального тут я не изобретал. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 08:07 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2, уточню еще что конечная форма правки конкретного справочника - это именно форма (созданная CREATE FORM ... AS clsEditForm), а не класс формы (CREATE CLASS ... AS Form) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 08:16 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
Dima Tsg12Dima T "Все делать в формах" - у вас нет даже упоминаний о классах объектов. И я "понял" так, что вы эти объекты программируете уже непосредственно в формах. Попробуйте начать хотя бы с классов кнопок, "хранилищ" поубавится. Неправильно понял. Есть классы форм, на всех кроме базовой есть контролы. Есть класс формы для правки, на форме кнопки "Сохранить, Отмена" , там все прописано. Когда мне надо форму редактирования записи справочника - я просто создаю форму на основе класса формы правки и получается готовая форма с кнопками "Сохранить, Отмена". Есть класс формы справочника где грид и кнопки "Добавить, Правка, Удалить ...". и т.д. и т.п. Зачем кнопки выносить в отдельный класс? Лично мне никогда не требовались кнопки "Сохранить, Отмена" без формы или форма с двумя парами кнопок "Сохранить, Отмена". Всегда нужна форма на которой одна пара кнопок "Сохранить, Отмена". В отдельные классы вынесено только то что может повторяться несколько раз на форме или использоваться без формы. На все типовые случаи есть готовый класс формы, в котором все прописано, остается только нужные свойства донастроить. Как видите, вы сами подробно и в детялях подтверждаете то что сами и отрицаете - вы все делаете в формах. И даже удивляетесь - зачем вам нужны классы. Фактически это не ООП, без него вы обходитесь - разве что частично используете некоторые его удобные вам моменты с формами. Но VFP9 заточено под объектно-ориентированное программирование. Есть и другая сторона вопроса. Конечно, это дело ваше, как вам программировать. Но вы называете его ООП, хотя по факту оно таковым не является. И таким образом вводите в заблуждение других, которые слепо вам верят. К тому же вы имеете серьезные проблемы с модернизацией. Даже на примере вопроса этого умника. Объекты ведь не ограничиваются одним Textbox, это простейший случай. Поле может быть типа мемо и потребуется EditBox. Хотя бы для обработки бланков простых текстовых документов. Может быть картинкой-фото с поиском и даже небольшим редактированием типа обрезания краев картинки. Может быть ID другого справочника и возможно более эстетичными будут ComboBox или ListBox (например, при нередактируемых небольших справочниках). С числовыми полями порой красиво смотрятся маленькие калькуляторы, в полях типа дата - календарики. Уточнение ваше вовремя - можно ведь еще вызывать и класс формы и динамически добавлять/убирать хотя бы тот же Control. И даже вызывать другую форму - например, с вводимыми расчетами. Также данные могут оказаться вводимые со стороны. Гридов может быть несколько, в т.ч. и динамический или просто с красивой шапкой. Этот перечень можно продолжать до надоедливости. Примеры решений можно найти на сайтах/форумах/Фоксклубе. Попробуйте начать хоть что-то добавлять даже готовенькое и ваши трудом отлаженные кодохранилища начнут опухать. А ООП в этих вопросах обладает куда большой гибкостью - часто решить вопрос можно один раз в одном месте несколькими строками вызова добавляемого класса/объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 13:00 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
thunder2sg12Dima T "Все делать в формах" - у вас нет даже упоминаний о классах объектов. Уважаемый, вы из какого ПТУ пришли ? Вы вообще VFP хоть раз запускали ? Формы в VFP давно являются классами. Перестаньте нести бред. То что вы смешиваете в одном методе разные действия свидетельствует о мягко говоря слабой теоретической подготовке. Может вам освежить знания парадигмы ООП ? А то, ей богу, стыдно за вас. Еще один грамотей. Ладно бы еще что-то путное ляпнул. Инкубатор где работает что-ли, кого только не заносит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 13:03 |
|
Общие принципы построения приложения в FoxPro
|
|||
---|---|---|---|
#18+
sg12Попробуйте начать хоть что-то добавлять даже готовенькое и ваши трудом отлаженные кодохранилища начнут опухать.А кто сказал, что элементы форм - это объекты базовых классов? Вроде бы общепринятая практика (у тех, кто действительно программировал на VFP) - в первую очередь сделать свой набор объектов. А вы тут им рассказываете, что они ООП не пользуют... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 13:25 |
|
|
start [/forum/topic.php?fid=41&msg=38148831&tid=1583148]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 428ms |
0 / 0 |