On-line: PSP, гостей 1. Всего: 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 [только новые]


gfilatov2002
moderator




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


SergKis пишет:

 цитата:
Поправить немного надо


Благодарю за исправление

Кстати, подготовил 3-ю бету для новой сборки со следующим списком изменений:
Скрытый текст


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




Пост N: 1634
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 12:57. Заголовок: Haz пишет: { Ключ :..


Haz пишет:

 цитата:
{ Ключ := <:nAt>


только не :nAt а RecNo() при работе с ADS ( при использовании SQL ) :nAt содержит непонятно что

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




Пост N: 3423
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 13:00. Заголовок: Haz пишет Согласен В..


Haz пишет
 цитата:
Согласен


Возникает вариант не задан oCol:cName, берем номер колонки и возникают риски перестановки колонки в списке.
Если после перестановки сработает Refresh, то все должно быть хорошо, если нет то плохо

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




Пост N: 1635
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 13:08. Заголовок: SergKis пишет: не з..


SergKis пишет:

 цитата:
не задан oCol:cName


Можно уйти на отдельные хеши в колонках и проблем не будет

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




Пост N: 3424
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 13:13. Заголовок: Haz пишет только не ..


Haz пишет
 цитата:
только не :nAt


Сейчас это основа. Для :lIsArr и :lIsDbf работает нормально вроде (смотрел при отладке :aRowPosAtRec)
Может надо и для ADS SQL поправить, по тексту мест много с проверками :lIsArr, :lIsDbf ?

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




Пост N: 3425
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 13:18. Заголовок: Haz пишет Можно уйти..


Haz пишет
 цитата:
Можно уйти на отдельные хеши в колонках


Или присвоить колонкам имена внутренние типа _Dummy_Col_<номер колонки>

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




Пост N: 1636
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 13:25. Заголовок: SergKis пишет: Или ..


SergKis пишет:

 цитата:
Или присвоить колонкам имена внутренние типа _Dummy_Col_<номер колонки>

или генерить уникальный ID колонки при создании , тогда вопрос отпадет совсем

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




Пост N: 1637
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 13:27. Заголовок: SergKis пишет: Сейч..


SergKis пишет:

 цитата:
Сейчас это основа. Для :lIsArr и :lIsDbf работает нормально вроде


ту все нормально для DBF идет Recno()
 
ELSEIF ::lIsDbf
::aRowPosAtRec[ xRow ] := ( ::cAlias )->( RecNo() )
ELSEIF ::lIsArr
::aRowPosAtRec[ xRow ] := ::nAt
ENDIF



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




Пост N: 3426
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 13:48. Заголовок: gfilatov2002 Поправ..


gfilatov2002
Поправьте немного еще
 
METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse
...
If ::bOnDrawLine != Nil
IF !Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF

EndIf
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
If ::bOnDrawLine != Nil
IF !Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF
EndIf

If ! ::lDrawLine
nBegin := 1
nLastCol := ::nColCount()
EndIf
...


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




Пост N: 3427
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 13:56. Заголовок: Haz пишет ту все нор..


Haz пишет
 цитата:
ту все нормально для DBF идет Recno()


Т.е. при ADS SQL :lIsDbf == .T. ?
Тогда :nAt, по идее, везде должна быть нормальной, т.к. определяется в :nLogicPos() в ней только для ADO возврат
 
If ::cAlias == "ADO_"
Return Eval( ::bKeyNo )
EndIf

Return ::nAt


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




Пост N: 1638
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 14:19. Заголовок: SergKis пишет: Тогд..


SergKis пишет:

 цитата:
Тогда :nAt, по идее, везде должна быть нормальной, т.к. определяется в :nLogicPos() в ней только для ADO возврат


:nAt только для массива же ?
При ADS SQL :lIsDbf будет == .T. и Recno() как уникальный номер записи возмется с таблицы по которой построили запрос ( тоже все нормально )
Принцип работы ADS SQL простой -> DoSql( cAlias, cSql ) и получим рабочую новую область согласно запросу, фактически как USE cBase NEW ALIAS (cAlias)
а вот LogicPos вернет что угодно только не позицию в логическом порядке записей. Из-за этого при запросе slect ... from ... order by ... вертикальный скроллбар прыгает хаотично.
и это косяк именно ADS в исходниках подцепиться не к чему, если только создать виртуальное поле - нумератор и скроллбар настроить на него.

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




Пост N: 3428
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 14:30. Заголовок: Haz пишет :nAt для ..


Haz пишет [quote]`
:nAt для массива и dbf работает нормально, исп. без анализа в своих блоках кода и ф-ях
Может тут, что то править надо Скрытый текст


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




Пост N: 1798
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.10.20 14:42. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправьте немного еще


OK

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




Пост N: 1639
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 14:57. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Может тут, что то править надо


Сергей , бесполезно Уже не раз смотрел и правил. Просто если в SQL запросе присутствует ORDER BY ( т.е. сортировка ) логика в ADS примерно такая
1) Выполняется основной запрос и ADSGetRelKeyPos будет правильным для несортированной таблицы.
2) Потом выполняется ORDER BY из запроса и вместо ADSGetRelKeyPos на выходе получаем компот.

В исходниках ADSRDD нет ничего , что позволило бы получить правильную логическую позицию, единственный вариант - это создание временной таблицы в памяти сервера
 
DOSQL(, "SELECT ... INTO #T1 FROM ... ORDER BY ...")
а потом
DOSQL("T2", "SELECT * FROM #T1" )
...
и после всего этого
T2->(dbCloseArea())
DOSQL(, "DROP TABLE #T1")


Предлагаю даже не заморачиваться с этим, запросы без ORDER BY идут в логике обычного DBF, если нужна сортировка , то делаю индекс в таблице и он подхватывается в результат прямого запроса

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




Пост N: 3429
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 15:02. Заголовок: Haz пишет Предлагаю ..


Haz пишет
 цитата:
Предлагаю даже не заморачиваться с этим


OK !
Спасибо за разъяснения

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




Пост N: 3430
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 15:11. Заголовок: gfilatov2002 С учет..


gfilatov2002
С учетом разъяснений Игоря, поправьте
 

METHOD GoDown() CLASS TSBrowse
...
If lTranspar
::Paint()
Else
::nRowPos := nLines
::TSBrwScroll( 1 )
::Skip( -1 )
::DrawLine( ::nRowPos - 1 ) // added 10.07.2015
::Skip( 1 )
IF ::lRowPosAtRec .and. Len( ::aRowPosAtRec ) > 0
hb_ADel( ::aRowPosAtRec, 1, .T. )
AAdd( ::aRowPosAtRec, iif( ::lIsDbf, (::cAlias)->(RecNo()), ::nAt ) )

ENDIF
EndIf
...
METHOD GoUp() CLASS TSBrowse
...
If ! lTranspar
::lRePaint := .F.
::TSBrwScroll( -1 )
::Skip( 1 )
::DrawLine( 2 )
::Skip( -1 )
IF ::lRowPosAtRec .and. Len( ::aRowPosAtRec ) > 0
ASize( ::aRowPosAtRec, Len( ::aRowPosAtRec ) - 1 )
hb_AIns( ::aRowPosAtRec, 1, iif( ::lIsDbf, (::cAlias)->(RecNo()), ::nAt ), .T. )

ENDIF
Else
::Paint()
EndIf
...


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




Пост N: 6832
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.10.20 15:11. Заголовок: SergKis пишет: Скор..


SergKis пишет:

 цитата:
Скорости хватает, не спорткар, но и не трактор


Вообще то МиниГуи ТСБ будет получше чем у других.
Вот для примера стандартный C# грид - https://cloud.mail.ru/public/2wYs/pJMfZSrtD
Кол-во столбцов и строк можно самому настраивать в настройке этой проги.

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




Пост N: 1640
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 07.10.20 15:22. Заголовок: SergKis пишет: Или ..


SergKis пишет:

 цитата:
Или присвоить колонкам имена внутренние типа _Dummy_Col_<номер колонки>


Может действительно в TSCOLUMN добавить DATA nID INIT 0 , а в METHOD TSColumn:New() в описание переменных static nLastID := 0 и сразу далее ::nId := ++nLastId
Тогда ключ для любой колонки всегда будет уникальным , как бы ее не перемещали ???

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




Пост N: 3431
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.20 15:26. Заголовок: Haz пишет Тогда ключ..


Haz пишет
 цитата:
Тогда ключ для любой колонки всегда будет уникальным , как бы ее не перемещали ???


Для внутреннего использования даже оч. нормально (может и еще где сгодится "славянский шкаф")

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




Пост N: 1799
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.10.20 15:31. Заголовок: SergKis пишет: С уч..


SergKis пишет:

 цитата:
С учетом разъяснений Игоря, поправьте


Поправил, конечно

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