|
|
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Уважаемые гуру FoxPro, у меня возникла необходимость добавить в свою библиотеку классов класс, объявляемый с IMPLEMENTS. Код: plaintext 1. 2. 3. 4. 5. Что-то по-простому не получается, кто-нибуть пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 18:13 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Или это очередное подтверждение отстойности foxpro? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 15:02 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev Или это очередное подтверждение отстойности foxpro? У меня с Implements например никаких проблем не возникает. Но я не собираюсь делать вывод об абсолютной совершенности foxpro на этом основании. Если бы чуть подробнее все описал , то возможно тебе бы что и подсказали. Мы же здесь не телепаты , чтобы брать все детали из твоей головы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 18:37 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
то есть слова "добавить в свою библиотеку классов" ничего Вам не говорят? ... хорошо, 1. есть библиотека классов - файл my-custom-mega-class.vcx. 2. есть класс, объявленный в программе (в файле mega-main.prg) - см. мой первый пост. 3. хочу, чтобы класс из п.2 оказался в библиотеке классов из п.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 19:23 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
А теперь поясните вкладываемый Вами в слово "оказался" смысл и какое отношение в Вашем понимании к этому имеет Implements. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 19:56 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Штатными средствами это вряд ли можно сделать. Разве што напрямую поправить vcx. Но только зачем невизуальный обработчик интерфейса вставлять в библиотеку визуальных классов ? Это похоже на попытку почесать левое ухо правой пяткой. Тем более , что есть целая куча невизуальных классов , которые в vcx не засунуть. Так что без mega-main.prg все равно никак не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 22:17 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
ок, обычно как я поступал - с помощь ClassBrowser-a открывал свою библиотеку (.vcx) и создавал в ней какой-нибуть класс, прописывал в нем поля и методы - это вы и без меня знаете :). Теперь я пытаюсь описать в своей библиотеке тем же способом класс, с одной лишь особенностью - ключевым словом "IMPLEMENTS". И этто мне никак не удается, потому что я не знаю как указать ClassBrowser-у, что класс должен имплементировать события некоторого другого класса (в данном случае adodb.recordset), ибо не вижу в мастере никаких полей ввода или чекбоксов, отвечающих за это свойство. зы: под "оказался" я подразумевал, что в библиотеке будет создан класс "adoEHandler" по функциональности идентичный, описываемому в простой программе через "DEFINE CLASS adoEHandler AS Form IMPLEMENTS RecordsetEvents IN "adodb.recordset" ...". > Al_fa это как же невизуальный? "DEFINE CLASS adoEHandler AS Form ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 22:42 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Достал меня уже это фокс - 3 года работаю - одни западлянки - то одного нет, то другого, то через Ж.. работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 22:50 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Жуть какая... А Вы не пробовали понять идеологию, на которой построен фокс, а не основываться на идеологии, взятой из какой-то другой системы? На чем основана уверенность, что фокс должен вести себя всегда только в соответствии с Вашими понятиями? Ваши понятия - эталон поведения? А хелп по теме хорошенько почитали? А там как раз и про recordset есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 23:10 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Благодарю за совет, но обычно я перерою весь хелп, прежде чем пишу в форум. Возможно я что-то там и упустил, если так - приведите название статьи пожалуйста. Идею и назначение foxpro прекрасно себе представляю, так что не надо прекрывать его косяки какими-то светлыми идеями. В других системах, предназначенных для тех же целей почему-то все более гладко. зы: так есть ли какое-то решение моей проблемы :) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 16:19 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Статья называется так: Visual FoxPro and Advanced COM Еще хотелось бы уточнить для решения какой задачи и почему был выбран такой способ? О каких других, предназначенных для тех же целей идет речь? Для поиска решения проблемы надо точно знать проблему. Пока же много эмоций и мало технических подробностей. На фокс три года не с дельфы ли был переход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 16:36 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey SizovЕще хотелось бы уточнить для решения какой задачи и почему был выбран такой способ? +1 FoxPro лучший Framework для C++ и многие вещи в нем делаются одной простой командой, не прибегая к adodb... Как Вам правильно заметили выше - идеология у FoxPro отличается от Delphi - тут уже все для Вас сделано и очень важно просто применить правильный подход... But anyway, good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 23:04 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
- Понятно на счет статьи - собственно на ее основе и был написан мой класс. Вопрос в том - как класс поиметь в моей библиотеке? Пока у меня такое впечатление, что никак - прийдется создавать файлик с описанием класса и запускать его из главной проги, то есть - как всегда. - Для какой задачи? Класс создан (исходник скину завтра, если надо) на основе формы с привязкой к событиям ADO. Все это для того, чтобы при загрузке большого числа записей рекордсета асинхронно показывать формочку и на ней индицировать процесс, если он длится более, чем N секунд. При необходимости процесс может быть прерван пользователем. - Сорри за эмоции - не могли не выплеснуться, хотя место не совсем удачное - кругом одни фаны фокса - на поддержку расчитывать не приходится :) Кто-то тут даже написал типа - "фокспро это религия" - ню-ню :) - Ранее применял для написания пользовательского интерфейса к БД под винду С++Builder, сейчас параллельно C# изучаю. Не секрет, что эти среды программирования решают широкий круг задач, в которые входят и задачи фокса. - На фоксе вынужден прогать из-за политики партии :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 23:33 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey Ch Sergey SizovЕще хотелось бы уточнить для решения какой задачи и почему был выбран такой способ? +1 FoxPro лучший Framework для C++ и многие вещи в нем делаются одной простой командой, не прибегая к adodb... Как Вам правильно заметили выше - идеология у FoxPro отличается от Delphi - тут уже все для Вас сделано и очень важно просто применить правильный подход... But anyway, good luck! Да, согласен, фокс ограничивает вашу фантазию и дает то, что он сам считает нужным. То есть нужно изрядно погемороиться, чтобы наваять что-то custom-ное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2007, 23:36 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev- На фоксе вынужден прогать из-за политики партии :). Похоже надо или партию менять, или все-таки в нее вступать :) Зачем ADO-то? Фокс не дельфи или С#. Для 99% задач достаточно встроенных средств, потому что они эффективней, надо только пользоваться ими научиться. Рекомендую книжку почитать М.Базиян "Использование Visual FoxPro 6", там идеология хорошо описана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 07:30 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev Все это для того, чтобы при загрузке большого числа записей рекордсета асинхронно показывать формочку... Вот мы и дошли до сути... Зачем "тащить на клиента" много записей? В лучшем случае 1 Теперь Вам можно рассказать, что за задача, когда требуется на клиенте много записей и какая база данных используется для их хранения... P.S. Про религию Вы зря... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 09:11 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Ну что ж, ждем исходники. Упомянутые системы на основе языка С по определению компиляторы, а фокс - интерпретатор. Одно это уже очень сильно отличает его от этих систем, как, впрочем, и от остальных. Соответственно, и мышление программиста, и применяемые подходы в фоксе иногода очень сильно отличаются от подходов в других системах. И именно это вызывает самые большие сложности у программировавших ранее на "правильных" языках и в силу каких-либо обстоятельств вынужденных перейти на фокс. Боюсь, здесь именно такой случай. К тому же, фокс сам по себе СУБД, в отличие, опфть же, от упомянутых систем и заточен, в первую очередь, для обработки данных, а не организации взаимодействия различных программ, для чего, собственно, придуманы интерфейсы и их имплементация. Потому в нем и нет секции объявления интерфейса и секции его реализации. Не нужны они при заложенной в фокс идеологии. И это надо понять и принять как данность, а не пытаться бороться с ветряными мельницами. Если использовать предложенную однажды здесь Владимиром Максимовым аналогию с разными типами автомобильного движения в Британии и в Европе. Они разные, но ни про одну из них нельзя сказать, что они "кривые", "заморочные", "отстойные" и т.д. Потому посоветую еще раз попытаться отбросить уже привычные по С-подобным языкам догмы и привычки и еще раз попытаться понять идеологию фокса. И тогда все сразу встанет на свои места и жизнь станет намного легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 09:17 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 12:25 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey Ch Вот мы и дошли до сути... Зачем "тащить на клиента" много записей? В лучшем случае 1 Понимаете, Сергей, теоретицки могут возникнуть условия, что вы и одну запись будете полчаса тащить с сервака. Помимо этого, существуют требования заказчиков, которым надо все записи, и сразу :) - из всего этого вытекают компромисные решения (типа моего (: ). > Sergey Sizov То есть вы хотите сказать, что фокс не компилирует в exe-шник? Хотя это отдельная песня.. А если серьезно - я смотрел примеры для VB, который тоже является интерпетатором - там тоже во многих моментах все проще и очевидней. И еще вы говорили, что фокс заточен под обработку информации - тогда где же в нем, например, "regular expressions" (а в VB есть), или встроенные функции форматированного i/o (аля sprintf или scanf)? А встроенные средства для трансформации xslt? Встроенные визуальные компоненты фокса у меня тоже не вызывают доверия - вспомните про изобилие тем типа "хочу нормальный грид?" или "$%^##!, когда они меню сделают нормальное?". Согласен только с тем, что фокс идеально подходит для работы со своими БД и с MSSQL через ODBC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 12:45 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
По основному вопросу: А не изобретаете ли Вы велосипед? А чем не подходит курсор-адаптер? По остальным вопросам: Бэйсик хоть и интерпретатор был при своем рождении сейчас таким не является. К тому же он не заточен для работы с данными и не СУБД. Это язык общего назначения. Потому для сравнения с фоксом не годится. А в MS SQL сервере есть перечисленное? Там все в одном флаконе делается? Или таки за счет расширенных хранимок функциональность наращивается? Опять мимо кассы. Понятие "нормальности" относится в вкусовым, а они, как известно, обладают ислючительной индивидуальностью. При этом можно отметить некоторую корреляцию между отсутствием опыта и знаний фокса с одной стороны и громкостью вот таких вот криков про нормальный грид. Хорошо изучившие и понявшие принципы работы грида таких криков не издают совсем. И кричащие, в основном, базируются на опыте работы в других системах, где все это работает совершенно по-другому и, естественно, совершенно не подходит к фоксу. Возвращаясь к упомянутой уже аналогии Владимира Максимова, они пытаются ехать на леворукой машине по британской дороге и кричат, что тут все дороги сделаны неправильно и им нужна правильня дорога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:08 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Все обработчики событий можно выделить в отдельный класс на основе prg , например ADOEvents. Форму с прогрессом Вы можете создать в vcx библиотеке. Связку обработчика с рекордсетом можно делать в спец методе или в Init,примерно так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:17 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov.По основному вопросу: А не изобретаете ли Вы велосипед? А чем не подходит курсор-адаптер? Курсорадаптер достаточно новая вещь в фоксе, поэтому я отношусь к нему с еще большим недоверием, чем к чему-то еще в фоксе (анекдот знаете? "никому нельзя доверять, даже себе") . Серьезно - к-адаптер поддерживает асинхронную работу? Sergey Sizov.А в MS SQL сервере есть перечисленное? Там все в одном флаконе делается? Или таки за счет расширенных хранимок функциональность наращивается? Опять мимо кассы. MSSQL - это хорошо делает свою работу и не пытается представлятья ничем другим, как СУБД, а не средством разработки клиентских приложений (за что его и уважаю). Конечно, хотелось бы там видеть RE тоже, как в MySQL сейчас. Sergey Sizov. При этом можно отметить некоторую корреляцию между отсутствием опыта и знаний фокса с одной стороны и громкостью вот таких вот криков про нормальный грид. Хорошо изучившие и понявшие принципы работы грида таких криков не издают совсем. Может вы и правы - чтобы изучить фоксовый грид, нужно потратить больше времени, чем при изучении другого грида со схожей функциональностью. > Al_fa Спасибо, надо попробовать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:32 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Ну и зря Вы так к нему относитесь. Оченно хорошая штука, особенно если с умом подходить. Заточен в том числе и под ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:45 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Может вы и правы - чтобы изучить фоксовый грид, нужно потратить больше времени, чем при изучении другого грида со схожей функциональностью. Я этого не утверждал и считаю это утверждение спорным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:46 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Привет, вынужден опять поднять эту тему.. Вопрос с IMPLEMENTS так и остался нерешенным красиво, но теперь я напоролся еще на одни схожие грабли - есть класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и теперь я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2. и еще вопрос на засыпку - почему фокс не дает объявить внутри класса член с тем же типом, что и сам класс? и можно ли это преодолеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 17:50 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2. Меню Class->New property ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 19:49 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2. Меню Class->New property ну елы-палы, Сергей! Так можно создать только поле класса неопределенного типа, а мне нужно, чтобы поле было, например типа Collection - как раз то, что достигается при использовании конструкции Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 15:01 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
А такие элементы добавляются перетаскиванием или из тулбара с классами, или из проекта. Берете свою коллекцию и тАщите на свой класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 15:28 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Cannot add object to non-container classes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 15:31 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
И куда ж его пытаетесь загнать-то? В какой класс запихиваете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 15:35 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
в Custom, как уже писалось выше. Хотелось бы создавать на основе невизуального компонента для минимизации расхода ресурсов, да и сами наследуемые классы должны быть невизуальные. Класс Container, насколько я понимаю, больше памяти сожрет.. (надо будет поэксперементировать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 15:43 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 18:48 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2007, 15:19 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev Sergey Sizov я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2. Меню Class->New property ну елы-палы, Сергей! Так можно создать только поле класса неопределенного типа, а мне нужно, чтобы поле было, например типа Collection - как раз то, что достигается при использовании конструкции Код: plaintext 1. а что мешает в ините класса прописать this.oFoo = createobject(тра та та) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 09:08 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Вообще, ничто не мешает, но ихмо это не есть гуд, хочется по-честному, как надо объявить все. Я уже так даже деал, но начальство при этом начинает справедливо г...ться. К тому же при редактировании исходников удобно было бы подсказки по членам класса получать при нажатии "." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 13:31 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_GusevВообще, ничто не мешает, но ихмо это не есть гуд, хочется по-честному, как надо объявить все. Я уже так даже деал, но начальство при этом начинает справедливо г...ться. К тому же при редактировании исходников удобно было бы подсказки по членам класса получать при нажатии "." К сожалению по честному нельзя :( Либо "визуально" кидать объект мышкой (тогда надо использовать какой-то контейнер, а не Custom) либо при каждом использовании объявлять переменную и работать с ней (что тоже не очень): Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 13:39 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Ок, с этим ясно, а есть ли мнения по моему второму вопросу автор почему фокс не дает объявить внутри класса член с тем же типом, что и сам класс? и можно ли это преодолеть? как я сейчас понимаю, фокс не любит рекурсивного объявления классов.. Есть ли способы цивильно его усмирить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 13:50 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusevпочему фокс не дает объявить внутри класса член с тем же типом, что и сам класс? и можно ли это преодолеть? А в чем проблема? Пример класса Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 14:34 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Да, работает, а вот так ... Код: plaintext 1. 2. 3. 4. 5. 6. не работает. Код: plaintext 1. 2. 3. еще не работает ( :-) ) вот так почему-то: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 18:58 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
В последнем случае, если посмотреть в Debugger-e, фокс много раз пытается вызвать INIT для класса, и зацикливается похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 19:03 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
а в первом случае даже ключевое слово NOINIT не помогает: -----------> Cannot add OFRIEND. Class definition is cyclical. Достала уже эта кривизна.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 19:08 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Пока что удовлетворился таким вариантом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Жду недождусь того момента, когда все у нас перейдут на C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 19:26 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
авторЖду недождусь того момента, когда все у нас перейдут на C#. ты у мира спроси, что получится (трудозатраты + фонд оплаты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 14:26 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
прошелмимоты у мира спроси, что получится (трудозатраты + фонд оплаты) Давно подсчитано для версии .NET 1.1 - приблизительно в 6 раз больше, чем на FoxPro... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 14:39 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
авторЖду недождусь того момента, когда все у нас перейдут на C#. ФОрум закрыт - все ушли на .NET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 14:46 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
piva авторЖду недождусь того момента, когда все у нас перейдут на C#. ФОрум закрыт - все ушли на .NET +1 Ж) 2 Sergey Ch проснитесь, в сети уже .NET 3-ий выложен, а 2-ой уже вовсю юзают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 16:19 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
при том бесплатно можно юзать (SharpDevelop + .NET FrameWork 2.0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 16:21 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_GusevЖду недождусь того момента, когда все у нас перейдут на C#. Не дождешься! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 21:46 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Если ты бы являлся моим руководителем, я мог бы с тобой согласиться :-p ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 12:22 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Чето не получается объявить adodb.connection внутри класса: Код: plaintext 1. 2. 3. 4. 5. При этом простое объявление Код: plaintext 1. отрабатывает нормально. В документации написано: мелкософт [ADD OBJECT [PROTECTED] ObjectName AS ClassName2 Specifies to add an object from a Visual FoxPro base class, user-defined class or subclass, or an ActiveX custom control to the class definition. The PROTECTED keyword prevents access and changes to the object's properties from outside the class or subclass definition. Врут чтоль, или я что-то не понимаю? Или не нравится точка в "ADODB.Connection"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 19:23 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
С инициализацией проблемы скорее всего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 19:26 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
LOCAL Conn AS ADODB.Connection Это, в общем-то, просто подсказка для Intellisence и не более того. Переменные в фоксе нетипизированные и могут иметь занчение любого типа и тип присваиваемого значения может меняться во время работы программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 20:27 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev...Кто-то тут даже написал типа - "фокспро это религия" - ню-ню :)Антон, про религию я писал. Поясняю. Программирование на FoxPro формирует определенное мировоззрение, как и религия. И, как и у религии, у него есть адепты. Я - один из них. Правда, давно не практикующий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 21:33 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov Это, в общем-то, просто подсказка для Intellisence и не более того. Переменные в фоксе нетипизированные и могут иметь занчение любого типа и тип присваиваемого значения может меняться во время работы программы. Ну так почему же не работает? Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 09:38 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_Gusev Sergey Sizov Это, в общем-то, просто подсказка для Intellisence и не более того. Переменные в фоксе нетипизированные и могут иметь занчение любого типа и тип присваиваемого значения может меняться во время работы программы. Ну так почему же не работает? Код: plaintext 1. 2. 3. 4. 5. 1. Вы привели весь код который не получается или о чём-то умолчали? 2. Почему вы думаете, что Фокс знает, что за обьект ADODB, наверное ему надо об этом сказать (если фоксу сказать ADODB = createobject('textbox'), то ADODB будет ссылкой на текстбокс), а Вашем случае на основании чего фокс должен догадаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 09:49 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Привел весь код. Для чистоты эксперемента создал пустой файл с указанным кодом и сохранил в test1.prg. Далее в командном окне выполнил: Код: plaintext 1. 2. Получил ошибку "Command contains unrecognized phrase/keyword". PaulWist Почему вы думаете, что Фокс знает... 1. Потому что он как-то догадывается при использовании, например, "ADD OBJECT YYYY AS Custom". 2. Потому что в хелпе по "DEFINE CLASS" написано, что можно использовать "ActiveX custom control". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 10:28 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
автор1. Потому что он как-то догадывается при использовании, например, "ADD OBJECT YYYY AS Custom". Custom - встроенный класс и фокс о нем знает. ADODB.CONNECTION - ни разе не встроенный класс и фокс о нем не знает. Новые знания Intellisens'у добавляются через пункт меню Tools-Intellisence Manager. Класс Custom, кстати, там тоже прописан. автор2. Потому что в хелпе по "DEFINE CLASS" написано, что можно использовать "ActiveX custom control". Меня терзают смутные сомнения в принадлежности ADODB к "ActiveX custom control". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 10:39 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
ну, меня тоже сомнения терзают. Попробую поописывать где-нить. Но ведь IntelliSense - только для disign-time, тобишь для удобства редактирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 10:50 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Но ведь IntelliSense - только для disign-time, тобишь для удобства редактирования? Да. А Вы от него еще чего-то захотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 10:59 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
И что делать-то? Хорошо, давайте представим, что речь идет не об adodb.connection, а некотором ActiveX, в котором мы уверены, что он "ActiveX custom control", тогда как мне его прикрутить к классу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:10 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Антон, я так понял, что Вы хотите написать некий "самопальный" класс CursorAdapter. Уже более 3 месяцев мучаетесь. Может, стоило потратить это время на изучение собственно класса CursorAdapter его достоинств и недостатков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:12 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Нет, Владимир, это проблемы по ходу возникают. 3 месяца я б не выдержал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:16 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Кстати, присоединюсь к Владимиру. Курсор-адаптер заточен в том числе и под ADO. Унего для этого специальные свойства есть. И так как он нарисован на С, а не на фоксе, то всяко работать будет быстрее Вашего самопального. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:37 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Anton_GusevИ что делать-то? Хорошо, давайте представим, что речь идет не об adodb.connection, а некотором ActiveX, в котором мы уверены, что он "ActiveX custom control", тогда как мне его прикрутить к классу? В HELP по FoxPro есть примеры: Код: 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. Т.е. ключевым здесь является синтаксис Код: plaintext 1. 2. 3. 4. Но, для ADODB это все не приемлимо, поскольку он не является ActiveX компонентом. Если так уж хочется оформить это все через класс, то придется писать обертку над командой CreateObject(). Т.е. просто дублировать все методы и свойства ADODB через соответсвующие методы и свойства, например, класса Custom, а внутри этих свойств и методов так прямо "в лоб" и писать CREATEOBJECT("ADODB.Connection") Ну, что-то вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Следует также иметь в виду, что RecordSet для FoxPro - это "не естесственный" способ хранения табличных данных. Т.е. еще придется писать свою обертку и для навигации по RecordSet. Однако все эти обертки уже реализованы в стандартном классе CursorAdapter. Думаете, у Вас получится лучше, чем реализовала команда разработчиков FoxPro? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:40 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Спасибо, Владимир, буду пробовать что-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 11:56 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
ВладимирМ... Думаете, у Вас получится лучше, чем реализовала команда разработчиков FoxPro? Судя по его постам, он в этом уверен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 12:54 |
|
||
|
Класс с IMPLEMENTS загнать в библиотеку...
|
|||
|---|---|---|---|
|
#18+
Плох тот солдат, что не мечтает стать генералом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 13:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1588856]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 361ms |

| 0 / 0 |
