On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение
gfilatov
модератор




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

Готовится к опубликованию новая сборка №48, которая выйдет в конце недели.
Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


SergKis
постоянный участник




Пост N: 4220
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.23 16:37. Заголовок: gfilatov2002 Неболь..


gfilatov2002
Небольшая правка, чтобы не растягивалась колонка SELECTOR
 
METHOD AdjColumns( aColumns, nDelta ) CLASS TSBrowse
...
FOR i := 1 TO k
c := aVisible[ i ]
IF i == 1 .and. ::lSelector
LOOP
ELSEIF i == k

::aColumns[ c ]:nWidth += ( w - s )
ELSE
s += n
::aColumns[ c ]:nWidth += n
ENDIF
NEXT
...


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2099
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 16.02.23 17:18. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшая правка, чтобы не растягивалась колонка SELECTOR


OK

Для метода :GotoRec() добавил такую правку:
 
ELSEIF ::lIsArr

hb_default( @nRowPos, ::nRowPos )
IF nRec > ::nLen
nRec := ::nLen
ENDIF
IF nRec == ::nLen
::GoBottom()
ELSEIF nRec == 1
::GoTop()
ELSE
::GoPos( nRec )
::nAt := nRec
::nRowPos := iif( nRowPos > ::nRowCount(), ::nRowCount(), nRowPos )
::lHitTop := ::lHitBottom := .F.
ENDIF
::Refresh( ::nRowCount() < ::nLen )
IF ::bChange != NIL
Eval( ::bChange, Self, 0 )
ENDIF
SysRefresh()

ENDIF
...


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4221
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.23 17:24. Заголовок: Haz Сделал FOR..


Haz
Сделал
 
FOR nCol := 1 TO Len( ::aSuperHead )
nVar := 0 //nVar := iif( lSelector, 1, 0 )
попал в др. место ниже
cTmp := "#0" ; nTmp := 0
IF "." $ uData //IF ( nTmp := At( ".", uData ) ) > 0
cTmp := "#,##0.00" // cTmp := Replicate( "#", nTmp - 2 ) + '0,' + Replicate( "0", Len( uData ) - nTmp )
ENDIF

Выделенное красным валит с сообщением
 цитата:

Error WINOLE/1006 Unable to set the NumberFormat property of the Range class (0x800A03EC): Microsoft Excel (DOS Error -2147352567) Args: [1] = C #0.00
Called from TSBROWSE:EXCELOLE(6639) ...




Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1882
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.23 18:15. Заголовок: SergKis пишет: Выде..


SergKis пишет:

 цитата:
Выделенное красным валит с сообщением


Сергей , валит скорее всего ниже красного, на этом oSheet:Cells( nLine, nCol ):NumberFormat := cTmp
Посмотри что в шаблоне . Сообщение об ошибке говорит
 
Error WINOLE/1006 Unable to set the NumberFormat property of the Range class (0x800A03EC): Microsoft Excel (DOS Error -2147352567) Args: [1] = C #0.00



точно такой код как ниже ? Не должно быть ошибки , ошибка говорит что cTmp = "#0.00"
 
IF "." $ uData
cTmp := "#,##0.00"
ENDIF


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4222
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.23 18:40. Заголовок: Haz пишет валит скор..


Haz пишет
 цитата:
валит скорее всего ниже красного, на этом oSheet:Cells( nLine, nCol ):NumberFormat := cTmp


Это понятно, указывает номер строки в тексте ошибки, я говорил, что пытается стать формат "#0" или "#,##0.00" оба формата допустимы, как и "#0.00", с xml эти форматы проходят. Может в ячейке какая фигня и на нее ставится NumberFormat ? Для меня темный лес
По поводу Selector, он удаляется в начале работы потом восстанавливается

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7296
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.02.23 18:45. Заголовок: Haz пишет: Проблема..


Haz пишет:

 цитата:
Проблема не в примере , проблема в h_tbrowse.prg. Достаточно в demo.hbp добавить строку



Да точно !
Проблема в том что не указана библиотека !
Достаточно в demo.hbp добавить библиотеку
# paths to the main and extension *.Lib 
-lminigui
-ltsbrowse

h_tbrowse.prg добавлять в проект не надо !

А можно как то проверять что нет оли для SBrowse() ?
А то проект нормально собираются а функции SBrowse не работают.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 7745
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.02.23 18:53. Заголовок: Haz пишет: IF "..


Haz пишет:

 цитата:
IF "." $ uData
cTmp := "#,##0.00"
ENDIF


Так видать не совсем корректно и нужно считывать символ разделителя.
У меня так
NumberFormat:="# ##0"+razdels+"00"
Где razdels:=GET_SDECIMAL()

А лучше так
 
****************************
Func GetActualSeparator(Oxl)
return If(Oxl:UseSystemSeparators,{GET_STHOUSAND(),GET_SDECIMAL()},{Oxl:ThousandsSeparator,Oxl:DecimalSeparator})



PS
GET_SDECIMAL() есть на форуме

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4223
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.23 19:18. Заголовок: Dima пишет GET_SDECI..


Dima пишет
 цитата:
GET_SDECIMAL() есть на форуме


Использую у себя. У меня дает ",", в коде тоже стоит '0,'
cTmp := Replicate( "#", nTmp - 2 ) + '0,' + Replicate( "0", Len( uData ) - nTmp )
а не фурычит, вернул изменения назад, не пользовался Ole и нечего начинать

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 7746
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.02.23 19:25. Заголовок: SergKis Так и пишу ..


SergKis
Так и пишу ведь что надо вероятно проверять UseSystemSeparators и в зависимости что вернет , юзать или систем сепаратор
или сепаратор Excel

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4224
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.23 19:53. Заголовок: Dima В xml беру Exc..


Dima
В xml беру Excel сепаратор без вариантов и хватает. Без ole переживу (надобность была только для примеров, причем еще недавно они работали),
в примере выше, кидал архив, замену на кнопку вместо :ExcelOle() кода форм. простого варианта для hbXlsXml.lib, можно менять на :Excel2().
Этого для примеров мне достаточно. Спасибо

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1883
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.23 20:29. Заголовок: SergKis пишет: Этог..


SergKis пишет:

 цитата:
Этого для примеров мне достаточно. Спасибо


Поддерживаю. ExcelOle() не востребованный метод. Если нужна
черновая выгрузка, то она пишется за полчаса один раз. Для отчётов вообще не подходит , тут XML круче. Можно XlsWriter еще пользовать, там функционал впечатляет, но натыкался на проблемы с окном и вернулся на XML

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1884
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.23 20:37. Заголовок: Andrey пишет: h_tbr..


Andrey пишет:

 цитата:
h_tbrowse.prg добавлять в проект не надо !

h_tbrowse.prg добавил чтоб нумерацию строк в ошибку получить и было на чем смотреть не ломая библиотеку

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4227
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.02.23 21:25. Заголовок: gfilatov2002 Правки..


gfilatov2002
Правки в Tsb_Sbrowse_3\demo.prg Скрытый текст


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2100
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.02.23 12:40. Заголовок: SergKis пишет: Прав..


SergKis пишет:

 цитата:
Правки в Tsb_Sbrowse_3\demo.prg


Поправил
Благодарю за помощь

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2103
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 22.02.23 12:28. Заголовок: Всем кому это интересно


Выложил 1-е обновление сборки 23.02 с учетом последних исправлений и дополнений

click here

Желаю всем мира и добра

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7304
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.02.23 20:14. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Выложил 1-е обновление сборки 23.02 с учетом последних исправлений и дополнений


Перешёл на него и пришлось откатиться назад.
Функция ISDIRECTORY() - перестала правильно определять директории.
Если в пути стоит последний знак "\" то новая функция теперь выдаёт .F.
Можно это как то исправить ?

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2104
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.02.23 21:37. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно это как то исправить ?


Да, я тоже обратил на это внимание.
Дело в том, что функция ISDIRECTORY() включена в Харбор только для совместимости с хHarbour (она берется из библиотеки xhb).

Исправить это можно, если записать вверху своего модуля такую строку:

 цитата:
#xtranslate IsDirectory( <c> ) => hb_DirExists( <c> )



Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 4233
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.02.23 22:44. Заголовок: gfilatov2002 пишет И..


gfilatov2002 пишет
 цитата:
Исправить это можно, если записать вверху своего модуля такую строку:


По мне, лучше просканировать prg файлы и заменить все IsDirectory(...) на hb_DirExists(...), меньше головной боли
Или вставлять эту строку глобально в minigui.ch или hmg.ch

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 2105
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.02.23 22:52. Заголовок: SergKis пишет: лучш..


SergKis пишет:

 цитата:
лучше просканировать prg файлы и заменить все IsDirectory(...)


Не спорю, что так лучше...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 7305
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.23 02:46. Заголовок: Есть ли функция опре..


Есть ли функция определяющая тип время наподобие: hb_IsLogical, hb_IsDate, hb_IsChar ?
Что-то не нашёл в i_pseudofunc.ch

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 146
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет