|
|
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Вот код из моего старого топика (автомэйшн сервер): авторDEFINE CLASS A2FORM AS Session OLEPUBLIC nForm_Cnt = 0 PROCEDURE Export_Data(toForm AS Object) LOCAL lnFields, lni PRIVATE lcValue AS Variant This.nForm_Cnt = This.nFORM_CNT+1 lnFields = toForm.GetFldCnt() IF lnFields >0 LOCAL ARRAY laFields[lnFields] as Variant COMARRAY(toForm,10) laFields = 'None' toForm.GetFldsNms(@laFields) && не инициализируется массив laFields FOR lni = 1 TO lnFields lcValue = .F. toForm.GetFldByInd(lni,@lcValue) && не инициализируетсяl cValue ENDFOR ENDIF ENDPROC ENDDEFINE метод toForm.GetFldsNms и toForm.GetFldByInd рабочие (из основного приложения). Но не инициализируют в данном случае то что нужно (проверял значения массива и переменной выводом в MESSAGEBOX) А вот toForm.GetFldCnt() замечательно работает. Может как-то неправильно передаются значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 14:22 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
ну может как-то можно оттрассировать код, чтобы понять в чем дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 15:58 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Правильно будет так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 19:18 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Нет, коечно же все с переносами, не в это дело, увы... В VB кстати помимо основного кода в заголовке еще прописано вот что: авторVERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "ExportClass" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True И сам проект VB создавался, как ActiveX EXE. Возможно, в фоксе тож есть каие-то тонкости на этот случай? И еще, кто-нибудь может пояснить, что это: авторnForm_Cnt = 0 ... This.nForm_Cnt = This.nFORM_CNT+1 без этого программа вообще не выполняется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 11:26 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
В частности,метод внешней программы без аргументв: авторlnFields = toForm.GetFldCnt() возвращает то, что надо, а вот: авторtoForm.GetFldsNms(@laFields) ... toForm.GetFldByInd(lni,@lcValue) че то нифига не возвращают, т.е. первый F, а второй Т ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 11:35 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Из всего того, что удалось вытянуть, понятно только то, что в функции массив передается и принимается в функциях правильно. Обратная передача туманна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 11:43 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
автор toForm.GetFldsNms(@laFields) вот эта вот конструкция по замыслу должна возвращать массив имен laFields из внешнего приложения. Так вот судя по сообщениям MESSAGEBOX - массив этот не инициализируется. Или я как-то не так MESSAGEBOX пользуюсь и поэтому ничего не вижу кроме T и F ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 12:09 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Где боксы? В каком месте? Что у них параметром? Ну не телепаты мы, не знаем мы, что ты там у себя видишь. И кода нет, и данных нет. На основании каких исходных данных решать задачу. Прямо таки "подземный стук"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 12:20 |
|
||
|
Почему может не передаваться значение массиву?
|
|||
|---|---|---|---|
|
#18+
Если бы у меня был код, я бы тогда и не спрашивал :) Эти методы объявлены, как допустимые при написании автомэйшн сервера приложения. В других языках (C, java, delphi, VB) все замечательно работает. А вот с фоксом загвоздка вышла... Видимо косяк приложения. Я надеялся, что спецы смогут определить како-то явный промах, видимую ошибку может в синтаксисе, либо в специфике написания сом сервера на фоксе. Исходников приложения нет, есть только описание методов (для VB), типа: описаниеGetFldsNms – вызывается с одним аргументом типа Variant, в котором возвращается массив имен блоков, доступных для проверки. в блоках - обычные строковые значения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 13:31 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=232&tid=1590674]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 355ms |

| 0 / 0 |
