|
|
|
Класс с 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 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=187&tid=1588856]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 382ms |

| 0 / 0 |
