BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 24 След.
Разрушение объекта и вызов деструктора.
 
Цитата
Алексей Новиков пишет:
Вообще говоря, есть. Достаточно глянуть в hbclass.ch, чтобы убедиться в этом.

Ну как же нет? Когда создаётся массив или экземпляр объекта, переменной присваивается именно указатель.

В hbclass.ch миллион препроцессорных команд, как я понимаю!!! При беглом взгляде Create - это похоже и есть конструктор, а что там внутри него....

Цитата
Алексей Новиков пишет:
Ну как же нет? Когда создаётся массив или экземпляр объекта, переменной присваивается именно указатель.


Ну, да, я так и написал - подобие указателя!!! Какие операции интересно с этим указателем можно сделать? А самому объявить указатель? Выделить память?!!!
Как раз функции для работы с массивами это и делают (AAD(), AREMOVE() и пр.). Как я понимаю для нас простых смертных это не указатель, а что-то вроде метки (или имени указателя), а сами операции с указателями (и они сами) получаются скрытыми....
Разрушение объекта и вызов деструктора.
 
Цитата
Алексей Новиков пишет:



Цитата

Саак Шахламджян пишет:
Единственное что мне пришло в голову по этому поводу это сделать массив обектов, а затем этот массив (ну или элемент массива) обнулить
Деструктор при этом не вызывается. Ведь экземпляр объекта не уничтожается.
А GarbageCollector, видимо, запускается только при выходе из плагина. Находит потерянный экземпляр и прибивает его.

А есть вообще такие понятия как конструктор и деструктор!!?
Я что-то такого не встречал в описании работы с классами!!!
К стати, такого понятия как указатель так же нет. Хотя для работы с классами какое-то подобие указателя есть... Нет функций по работе с памятью!!! Отсюда и нет конструкторов и деструкторов, как я понимаю. Среда выполнения "сама решает" когда ей память выделить, а когда отдать её обратно....
Хотелось бы конечно подробнее обо всем этом узнать....
Ошибка обновленного компилятора., Сохранение по-интересному работает.
 
Цитата
Алексей Новиков пишет:



Цитата


Вы хотите скачать файл: 222.wrf
объемом 0.09 мегабайт.
Файл был запрошен 8 раз(а).
Файл был скачан 0 раз(а).
8 человек хотели его посмотреть и не смогли.

Это я 8 раз проверял скачивал его кто-либо или нет:) Хотя ссылка не работает.

Выложил _ТУТ_

Сделал зеркало на iFolder ССЫЛКА на ФАЙЛ
Изменено: Саак Шахламджян - 19.11.2008 15:35:59
Ошибка обновленного компилятора., Сохранение по-интересному работает.
 
Посмотрите, пожалуйста, кино!!! Очень интересное и захватывающее!!!
Разрушение объекта и вызов деструктора.
 
Цитата
Алексей Новиков пишет:
Добрый день.

Вот, допустим, описан класс, содержащий конструктор init() и деструктор destroy().
init() открывает базу данных, destroy(), соответственно, должен её закрыть.
. Как сказать исполняющей системе, что экземпляр класса надо уничтожить?
Сейчас деструктор у меня вызывается только в момент выхода из плагина.
Я понимаю, что можно определить метод FinalOperation и засунуть туда заключительные операции. Поэтому, несомненно, Вопрос задаю из праздного любопытства. :-)

Я когда-то тоже интересовался а де деструктор-то задать!!!? Похоже никак. Потом стало интересно как память освободить от объекта...
Единственное что мне пришло в голову по этому поводу это сделать массив обектов, а затем этот массив (ну или элемент массива) обнулить... Хотя я не совсем уверен, что таким образом все работает правильно....
И мне казалось, что конструктором в данном случае выступает метод new() (его, к стати можно "перегрузить", во всяком случае я так делаю, хотя написано что так делать нельзя.)
view() и бэст5
 
Цитата
Алексей Новиков пишет:
Формально функция есть. Но печатать на матричном принтере - увы.
Только если самому написать что-то низкоуровневое.

В б-5, кажется можно другую программу запустить внешнюю и "подождать" пока та не выполниться... Может так можно?
Хотя я не в курсе о чем конкретно речь. (Отдельная программа была на Б-4 для принтера?)
XBA. Отладка. Include., Как увидеть трассировку по include-файлу?
 
А так все в папке include лежит?
Изменено: Саак Шахламджян - 18.11.2008 14:56:10
Запись (документ) редактируется другим пользователем., Очень бы хотелось получить номер этой записи.
 
Нет, что-то мне nRetValue совсем не нравиться
3 раза подряд поставил
SrvSetLock(1,cLockStr,IF(lSet,2,0),@nRetValue,.F.)
lSet был все время .T.

в nRetValue всегда одно и тоже значение....
Не подходит.
Может быть, дело кроется в параметрах SrvSetLock()? Вон их скООлько...
Крит ошибка компилятора., Вылетает критическая ошибка при элементарной операции.
 
Интересный фильм о компиляторе!!! В эту серию вошло не все!!! Обязательно сниму еще!!!

Видео здесь!!! 95 КБ (на Rapidshare, фотрмат как у видеопрезентаций)
Изменено: Саак Шахламджян - 14.11.2008 12:29:58
Запись (документ) редактируется другим пользователем., Очень бы хотелось получить номер этой записи.
 
Цитата
nordk пишет:
А Вы анализировали переменную nRetValue ?

Подумывал, подумывал над этим. Значит "оно" там...
Ошибка обновленного компилятора., Сохранение по-интересному работает.
 
По совету nordik решил запостить проблему с компилятором здесь. Жаль что так и не обратили на нейй внимания в разделе БЭСТ-5.
Чтобы лучше понять о чем идет речь снял видео.
Оно лежит ПО ЭТОЙ ССЫЛКЕ 95 КБ, формат как в презентациях.

P.S. Если я раньше со старым компилятором можно было "лезть куда не надо" и все работало, то теперь вообще невозможно с ним иметь дело :(
Было бы здорово, если бы вышел Hotfix.

С таким скрипом работает текстовый редактор, такое ощущение, что было бы проще "вставить приложение блокнот"(OLE32 объектом) в окно XBA и работать через него....
Изменено: Саак Шахламджян - 14.11.2008 11:48:57
Запись (документ) редактируется другим пользователем., Очень бы хотелось получить номер этой записи.
 
Цитата
E.J. пишет:
Так ить наличие/отсутствие строки определяется при создании переменной:
"LOCAL cLockStr :=SUBSTR(dbinfo(10),LEN(B6_DBF_PATH)+1)+STR( IF(EMPTY(nRecNo),RECNO(),nRecNo) ,10,0)"
;-)

Интересно было бы знать каким же это чудесным образом? И при чем тут инициализация переменной cLockStr!!?
А при инициализации этой переменной в 2х разных рабочих областях!???
И запись STR(IF(EMPTY(nRecNo),RECNO(),nRecNo),10,0) означает всего лишь навсего то, что если на вход Semafor(lSet,lNoSay,nRecNo) не был подан номер записи, то будет взят номер текущей записи!!! Но это никоим образом не определяет существует ли cLockStr в списке блокировок на сервере!!!!
Внедрение С++ кода., Возможно ли писать на С++\C# для BEST?
 
Цитата
Александр Титов пишет:
Лучше ориентироваться на C# и VS2008.
В ближайшем будущем мы откроем такую возможность для сторонних разработчиков.

Это как-то с .net связано? А нельзя сейчас сказать каким образом это (написание на C#) будет работать с БЕСТ? Что именно будет работать с БЭСТ? готовые программы(.exe), библиотеки (.dll), байт-код, или даже исходный C# код?

Просто если речь идет о том, что БЕСТовский компилятор(виртуальная машина) будет работать с промежуточным кодом (байт-код), тогда Вопрос. Будет ли это налагать опеределенные ограничения? Т.е. будут ограничения на количество winAPI функций...
Или же будет каким-то образом разрешена работа с исполняемым/машинным кодом(*.exe и *.dll в WIN32/64) ?
Изменено: Саак Шахламджян - 13.11.2008 15:12:14
Запись (документ) редактируется другим пользователем., Очень бы хотелось получить номер этой записи.
 
У меня другой очень сильно интересующий меня Вопрос.
Функция Semafor:
Код
FUNCTION Semafor(lSet,lNoSay,nRecNo)
LOCAL nRetValue 
LOCAL cLockStr:=SUBSTR(dbinfo(10),LEN(B6_DBF_PATH)+1)+STR(IF(EMPTY(nRecNo),RECNO(),nRecNo),10,0) 
IF !EMPTY(IsHidden()) 
   RETURN .T. 
ENDIF 
SrvSetLock(1,cLockStr,IF(lSet,2,0),@nRetValue,.F.) 
nRetValue:=EMPTY(nRetValue) 
IF lSet.AND.!nRetValue.AND.EMPTY(lNoSay) 
   IF IsDocObj() 
      SayError("Запись (документ)"+" редактируется другим пользователем!") 
   ELSE 
      SayAndWait("Запись (документ)"+" редактируется другим пользователем!") 
   ENDIF 
ENDIF 
RETURN nRetValue


Функция SrvSetLock(...,cLockStr,...) "создает строку" на сервере приложений.
Вопрос Как узнать наличие итересующей строки???
Проблема в следующем:
Если n раз подряд вызвать Semafor(.T.,,nRecNo) c одним и тем же nRecNo всегда будет возвращено .T.
Смысл в том, что если я заблокировал один раз, то могу и второй раз заблокировать туже запись, но новой строки не появиться в сервере приложений. Меня же интересует каким образом определить существует ли уже строка cLockStr (параметр функции SrvSetLock())!!!!
Очень волнует данный Вопрос.
Изменено: Саак Шахламджян - 13.11.2008 13:41:06
Внедрение С++ кода., Возможно ли писать на С++\C# для BEST?
 
Меня заинтересовала возможность использования С++. Еще возможность, внедрения графических форм, созданных, скажем в Bulder C++, а еще лучше из Vusual Studio? Заинтересовало потому что, если встанет задача написать что-либо серьезное с графическим интерфейсом, то в существующем дизайнере приложений некоторые вещи вообще представляются невозможными.
Задачи "графитизировать" сейчас вообще нет, но вполне возможно что в недалеком будущем появиться. Может быть есть какая-либо возможность подключать стандартные DLL, разработанные на С++ в Builder'e или в Студии(на С++ или на C#)?
Изменено: Саак Шахламджян - 13.11.2008 12:08:38
Изменение системных индексов., Есть ли теперь возможность сохранять изменения индексов?
 
Кажется, работает!!!:)
Изменение системных индексов., Есть ли теперь возможность сохранять изменения индексов?
 
Цитата
Ирина Глухова пишет:
Изменять системные индексы нельзя. Можно добавлять свои индексы к нашим таблицам. Описывать их нужно в отдельной таблице bases_nn. Не в наших , если по заказам bases_05, а именно в отдельной своей и эту свою таблицу записать в bases_us.

В этом случае при установке последующих SP они все сохраняться и при шттаной индексации будут включены в индексацию.

Если измените в наших bases, то при установки пакета, если мы что-то менеям в индексах, ээто будет заменено.

Полез добвалять новые индексы при установленном СП11. Я понял нужно это делать так:
1. Создаем таблицу bases_55 (например 55).
2. В таблице bases_55 аналогично таблицам beses_nn разработчиков описываем наши новые индексы.
3. Открываем таблицу USER\BASES_US. Добавляем запись:
PP USER\ bases_55.dbf <пусто> Приложение польз.

Верно 1,2,3?
Изменено: Саак Шахламджян - 12.11.2008 16:19:09
Запись (документ) редактируется другим пользователем., Очень бы хотелось получить номер этой записи.
 
Цитата
nordk пишет:
Совершенно не понимаю что нужно.
F_DBUNLOCK() это не то ?

Я не совсем точно выразил то, что мне требуется. Я хочу одним махом убрать сетевые семафоры для одной Таблицы в одной рабочей области. Хотя уже особо не актуально.
Т.е. вместо:
Код
Semafor(.T.,,RecNo1)
Semafor(.T.,,RecNo2)
Semafor(.T.,,RecNo3)

Semafor(.F.,,RecNo1)
Semafor(.F.,,RecNo2)
Semafor(.F.,,RecNo3)

Что-нибудь такое:

Код
Semafor(.T.,,RecNo1)
Semafor(.T.,,RecNo2)
Semafor(.T.,,RecNo3)

Semafor(.F.,,ALL)
Изменено: Саак Шахламджян - 12.11.2008 15:13:03
Крит ошибка компилятора., Вылетает критическая ошибка при элементарной операции.
 
Цитата
nordk пишет:
Саак давайте такие Вопросы обсуждать на форуме программирования - зашел случайно

Я много плагиновв пишу на XBA и отлаживаю.
У меня еще не пропала ни одна строка.
Давайте по этому Вопросу на "наш" форум.

Да я как-то тут начал. В следующий раз на "нашем" напишу. И потом это появилось в СП11 (или СП10, я с 9го на 11й сразу).
Да и дело не конкретно в строке, а в любом изменении...
Не поленюсь и сниму видео, если хотите!!!
Изменено: Саак Шахламджян - 12.11.2008 15:01:30
Крит ошибка компилятора., Вылетает критическая ошибка при элементарной операции.
 
Описанная выше ошибка довольно легко воспроизводиться!!!
1. Запускаем редактор XBA.
2. Новый файл
3. Пишем там "Что-нибудь".
4. Правый клик - сохранить.
5. Пишем тамже:С новой строки(Enter), "Что-нибудь еще"
6. Правый клик - сохранить.
Пункты 5 и 6 повторить несколько раз. Лично у меня даже с первого раза "всплывает" баг.

Видим:
"Что нибудь"
А строка с "Что-нибудь еще " просто испарилась!!!!
Ошибка при ндексации., Ошибка копирования файла Best5.dbc...
 
Сегодня при попытке сделать индексацию получил такое:
"Ошибка копирования файла Best5.dbc..." и еще что-то типа "ошибка открытия файла index.log". Обнаружил, что кроме меня в базу "вошел" другой пользователь и проводил индексацию(понял по обращению к винчестеру сервера БД).
Возможно, он зашел раньше меня, нажал на единственное доступное ему меню, Б-5 предложил ему переиндексироваться.
Я тоже уже вошел в базу и зашел в меню переиндексировать, выбрал БД и получил эти ошибки....
Существует ли функция, определяющая колич дней в месяце?
 
написать было не очень сложно:
Код
STATIC Function DaysInMonth(dDate)
Local dCurDate:=Stod(Left(DtoS(dDate),6)+"20")+15
dDate:=Stod(Left(DtoS(dDate),6)+"01")
dCurDate:=Stod(Left(DtoS(dCurDate),6)+"01")
return dCurDate-dDate


Догадаться что количество дней в месяце - это разность между первыми числами соседних месяцев было сложнее:)
Изменено: Саак Шахламджян - 11.11.2008 15:12:17
Существует ли функция, определяющая колич дней в месяце?
 
Нужна функция, опеределяющая количество дней в месяце.
Есть ли такая?
Дайте, пожалуйста, если есть.
Поле low_lev таблицы okp_inv, Что такое максимальный уровень входимости?
 
Доброго времени суток!
Объясните пожалуйта, что такое максимальный уровень входимости, для чего используется?
Именно такое описание дано полю low_lev таблицы okp_inv. Данное поле с нашими настройками везде равно нулю... Но не хотелось бы ошибиться при создании записей в okp_inv.
Крит ошибка компилятора., Вылетает критическая ошибка при элементарной операции.
 
Иногда проявляется баг:
При редактировании файла.
"Состояние А" Сохраняю. Редактирую дальше. "Состояние Б" Сохраняю. Вместо того чтобы сохранить возвращается к исходному состоянию "Состояние А". Т.е. утрачивается то, что было сделано. Когда такое происходит сказать не могу (специально воспроизвести не получается). Происходит время от времени.
Страницы: Пред. 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 24 След.