On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
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 
Профиль
Новых ответов нет , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [см. все]


krutoff





Пост N: 210
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 07.12.21 11:24. Заголовок: SergKis Спасибо за ..


SergKis Спасибо за код, но у меня
Define window CHILD
... Define Window ... Virtual PANEL
... EDITBOX
И мне надо дать фокус внутри 2-й формы

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




Пост N: 3971
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.12.21 11:46. Заголовок: krutoff пишет И мне ..


krutoff пишет
 цитата:
И мне надо дать фокус внутри 2-й формы


И в чем разница ?
Контролы на окне имеют уникальные имена.
Вопрос, какую среду This надо в блоке кода ?
Для среды This окна ON INIT {|| _wPost(10) }
Для среды This контрола ON INIT {|| _wPost(10, This.<контрол>.Index) }
Суть этих действий, завершить работу обработчика окна on init и организовать через очередь другое событие (обработчик) по _wPost(...), т.е. отработает
 
IF _SetFocusedSplitChild( i ) == .F.
_SetActivationFocus( i )
ENDIF

потом сработает, через очередь, событие\блок кода 10, зарегистрированный на окне

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





Пост N: 211
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 07.12.21 13:10. Заголовок: SergKis пишет: пото..


SergKis пишет:

 цитата:
потом сработает, через очередь, событие\блок кода 10, зарегистрированный на окне


Спасибо! Отработало как часы!

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




Пост N: 7160
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.12.21 13:31. Заголовок: krutoff Посмотрите ..


krutoff
Посмотрите доку Сергея Events_in_MiniGui.RU.txt на русском в \MiniGUI\SAMPLES\Advanced\Tsb_5Win
Ну и использование событий по тексту программы.

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




Пост N: 3972
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.12.21 12:02. Заголовок: gfilatov2002 Неболь..


gfilatov2002
Небольшая правка
 
METHOD DrawHeaders( lFooters, lDrawCell ) CLASS TSBrowse
...
IF ::lDrawSpecHd
...
nClrFore := ::GetValProp( nClrFore, nClrFore, nJ )

IF nI == nBegin .AND. ::lSelector
nClrBacks := ::nClrSpcHdBack
ELSE
nClrBacks := iif( ::nPhantom == -1, ATail( ::aColumns ):nClrSpcHdBack, nClrPane )
ENDIF

nClrBackS := ::GetValProp( nClrBackS, nClrBackS, nJ )
...

Сейчас SpecHeader имеет цвет SELECTOR-а nClrPane по Default, а все остальные цвета ячейки SELECTOR по вертикали ::nClrSpcHdBack (как у Header)

PS
Если возможно, включите в сборку последнюю версию LetoDbf, клиента и сервер

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




Пост N: 1967
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.12.21 13:28. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшая правка


Поправил

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




Пост N: 1968
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.21 10:54. Заголовок: Выложил 1-й апдейт с..


Выложил 1-й апдейт сборки 21.11

Обновил также Unicode архив.

Благодарю за помощь Сергея Киселева

Желаю всем участникам форума мира и добра

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




Пост N: 3975
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 12:46. Заголовок: gfilatov2002 надо #..


gfilatov2002
надо
 
#translate <p:System,Sys>.ClientWidth => GetDesktopRealWidth ()
#translate <p:System,Sys>.ClientHeight => GetDesktopRealHeight()

так, как сейчас, дает отступы справа, внизу ~15 pixel, в исправленном везде зазор ~2-3 pixel

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




Пост N: 1969
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.21 13:12. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо

#translate <p:System,Sys>.ClientWidth => GetDesktopRealWidth ()
#translate <p:System,Sys>.ClientHeight => GetDesktopRealHeight()


Понял, поправлю

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




Пост N: 3977
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 14:31. Заголовок: gfilatov2002 пишет п..


gfilatov2002 пишет
 цитата:
поправлю


еще _TBrowse()
 
DEFAULT aColor := { ;
{ CLR_FOCUSB, {|c,n,b| c := n, iif( b:nCell == n, -CLR_HRED, -RGB( 128, 225, 225 ) ) } }, ;

получше вид будет

PS
в примере Tsb_2tsb того же эффекта можно достичь кодом без AEval(...). По умолчанию oCol:lFixLite := .T., oCol:lOnGotFocusSelect := .T., oCol:lEmptyValToChar := .T.
Скрытый текст


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




Пост N: 1970
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.21 15:59. Заголовок: SergKis пишет: еще ..


SergKis пишет:

 цитата:
еще _TBrowse()
...
в примере Tsb_2tsb


Понял, уже поправил и выложил новый инсталлятор
Благодарю за помощь

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




Пост N: 3980
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 16:28. Заголовок: gfilatov2002 лучше ..


gfilatov2002
лучше так
 
STATIC FUNCTION RecordBrowse( oBrw )

LOCAL oCol, ;
aArr := {}

FOR EACH oCol IN oBrw:aColumns
//AAdd( aArr, { oCol:cHeading, Eval( oCol:bData ) } )
AAdd( aArr, { oCol:cHeading, oBrw:GetValue( oCol ) } )

NEXT

SBrowse( aArr, "Record View", {|| .T. }, { "Key", "Value" } )

RETURN NIL


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




Пост N: 1971
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.21 17:33. Заголовок: SergKis пишет: лучш..


SergKis пишет:

 цитата:
лучше так


OK

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




Пост N: 3982
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 22:00. Заголовок: gfilatov2002 Предла..


gfilatov2002
Предлагаю правку SBrowse(), что бы можно было управлять тсб и окном + иметь общую ф-ю для работы с записью из тсб, т.е.
Скрытый текст

Задавая в FUNCTION SBrowse( uAlias, cTitle, bSetUp, aCols, nWidth, nHeight, lSql ) // idea from xBrowse
в таком виде
bSetUp := {|ob,xp|
Local lRet := .T.
IF !Empty(xp) // второй вход в блок. Можно менять размеры окна + параметры тсб по переменной ob и This. среды окна
...
ENDIF
Return lRet
}
и исп. Record_SBrowse( oBrw, cTitle, bSetUp, aHead ) как самостоятельный вызов к любому тсб.

PS
Назвать ф-ю можно по традиции
FUNCTION _Record_SBrowse( oBrw, cTitle, bSetUp, aHead, lNoCrLf )
или
FUNCTION _SBrowse_Record( oBrw, cTitle, bSetUp, aHead, lNoCrLf )

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




Пост N: 1972
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.21 22:42. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предлагаю правку SBrowse()


Принято

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




Пост N: 3983
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 22:56. Заголовок: gfilatov2002 пишет П..


gfilatov2002 пишет
 цитата:
Принято


Я в тексте небольшую правку сделал, перенес вызов блока 2-ой раз еще ниже (строки //!!!)
Пример сейчас делаю. Ф-ю для работы с записью назвал
FUNCTION SBrowse_Record( oBrw, cTitle, bSetUp, aHead, lNoCrLf )
как приложение к основной SBrowse(), если надо пере назвать, скажите

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




Пост N: 3984
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.12.21 01:11. Заголовок: SergKis пишет Пример..


SergKis пишет
 цитата:
Пример сейчас делаю.


Пример тут https://TransFiles.ru/jg78m
PS
Еще вариант вызова в примере
 
bSetUp := {|ob,xp|
IF !Empty(xp)
ob:SetNoHoles()
ob:SetFocus()
ENDIF
Return .T.
}

sBrowse( Alias(), "DEMO. Test new SBrowse", bSetUp, , Sys.ClientWidth, Sys.ClientHeight )


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




Пост N: 3985
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.12.21 09:36. Заголовок: gfilatov2002 Сделал..


gfilatov2002
Сделал др. вариант SBrowse, привязал размеры к размеру фонта
Пример тут https://TransFiles.ru/7xea7

PS
не оч. нравится место (может др. предложите)
 
lRec := HB_ISARRAY( uAlias ) .and. Len( uAlias[1] ) == 2 .and. Len( aCols ) == 2 .and. ;
aCols[1] == "Key" .and. aCols[2] == "Value"

возможно, надо добавить MODAL окно через параметр
FUNCTION SBrowse( uAlias, cTitle, bSetUp, aCols, nWidth, nHeight, lSql, lModal ) // idea from xBrowse

PS2
Забыл убрать опыт, надо поправить SBrowse
 
DEFAULT uAlias := Alias(), ;
...
lSql := .F., ;
bAfter := {|ob| ob:SetNoHoles(), ob:SetFocus() }
...
и
FUNCTION SBrowse_Record( oBrw, cTitle, bSetUp, aHead, nWidth, nHeight, lNoCrLf )
...
SBrowse( aArr, "Record View", bSetUp, { "Key", "Value" }, nWidth, nHeight )
...


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


Пост N: 1623
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.12.21 10:04. Заголовок: SergKis пишет: Сдел..


SergKis пишет:

 цитата:
Сделал др. вариант SBrowse, привязал размеры к размеру фонта
Пример тут https://TransFiles.ru/7xea7


Разрешите встрять) Если в примере нажать кнопку Excel, но экселя нет на компе, появляется окно с ошибкой, после закрытия которого бровс ломается.

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




Пост N: 3986
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.12.21 10:14. Заголовок: PSP пишет Если в при..


PSP пишет
 цитата:
Если в примере нажать кнопку Excel, но экселя нет на компе, появляется окно с ошибкой, после закрытия которого бровс ломается


Еще раз проверил, работает у меня и таблица и запись => все в Excel уходит, но если нет excel, надо в методе тсб добавлять проверку, но это другое , пока эти места идут, как есть.

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