On-line: PSP, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
Vlad04
постоянный участник


Пост N: 420
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)


TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений
К примеру

 цитата:

DEFINE TBROWSE oBrw2 ;
AT 60,450 ;
ALIAS cAlias ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 340 ;
FONT "Verdana" ;
SIZE 9 ;
ON DBLCLICK CopyRec();
ON GOTFOCUS fModelo_Hab(2) ;
AUTOFILTER ;
CELLED EDIT;
VALUE nRec;
GRID


Здесь я собрал параметры из разных tBrows
Можно или нет и какие парметры заменить
выражением ( и каким) ?
oBrw2:....
oBrw2:....



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


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




Пост N: 4761
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.16 23:36. Заголовок: Haz пишет: теперь с..


Haz пишет:

 цитата:
теперь с форума будем собирать идеи по наполнению класса CLASS TSBcell



А можно сделать так, чтобы при наведении мышкой на колонку с определённым номером, в ячейке всплывала подсказка ?
Как у всех объектов TOOLTIP, или как в примере MiniGUI\SAMPLES\BASIC\COMM_2\demo-main.prg функция My_Message()

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




Пост N: 879
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 01:42. Заголовок: Andrey пишет:А можно..


Andrey пишет:
 цитата:
А можно сделать так ... Как у всех объектов TOOLTIP


надо внести изменения, на мой взгляд:Скрытый текст


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




Пост N: 880
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 09:07. Заголовок: Haz пишет:будем соби..


Haz пишет:
 цитата:
будем собирать идеи по наполнению класса CLASS TSBcell


просится Скрытый текст

тогда
oDesktop := TSBcell():New():Desktop()
DEFINE WINDOW ... AT oDesktop:Row, oDesktop:Col ...
oAppWin := TSBcell():New():App()
oAppCli := TSBcell():New():Client()
oFormCli := TSBcell():New():Client(GetFormHandle("Form_1"))
...
может название не TSBcell ?

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




Пост N: 881
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 12:02. Заголовок: SergKis пишет:надо в..


SergKis пишет:
 цитата:
надо внести изменения


Уточненные (проверил) изменения: Скрытый текст


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




Пост N: 826
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.03.16 12:23. Заголовок: SergKis пишет: oDes..


SergKis пишет:

 цитата:
oDesktop := TSBcell():New():Desktop()


Сергей, это больше на клаасс Windows похоже. Так мы придем к HwGui ( что тоже не плохо ) и будет
oWin := Win():New()
oWin:name := "Form_1"
oWin:Type := 'child'
и т.д.





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




Пост N: 882
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 13:28. Заголовок: Haz oWin - больший ..


Haz
oWin - больший класс и его сост. частью является TSBcell (название не очень подходит)
в данном случае 4 значения, которые можно заполнить методами и в окнах проще писать (часть кода скрыта в методе)
oA := TSBcell():New():Desktop() // можно в стиле VO: oA := TSBcell{}:Desktop()
oA:nRow, oA:nCol ... чем Application.Row ... для Desktop аналогично

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




Пост N: 883
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 13:31. Заголовок: PS можно сгородить ф..


PS
можно сгородить ф-ии
Func oDesktop()
Return TSBcell():New():Desktop()
...
и останемся в стиле MiniGui

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




Пост N: 827
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.03.16 13:52. Заголовок: SergKis пишет: TSBc..


SergKis пишет:

 цитата:
TSBcell (название не очень подходит)


подходит к ячейке бровса , как дочернего класса этого бровса, в твоем случае тогда класс назвать можно :WinRect( hWnd )

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




Пост N: 884
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.03.16 15:05. Заголовок: Haz пишет: назвать м..


Haz пишет:
 цитата:
назвать можно :WinRect( hWnd )


Согласен, лучше не смешивать.

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




Пост N: 4764
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.16 23:03. Заголовок: Что то вылетает у ме..


Что то вылетает у меня функция, при повторном входе в бровс !
Делаю так:

// по правой кнопки мышки - контекстное меню TBROWSE
DEFINE CONTEXT MENU CONTROL oBrw1
......
MENUITEM "Current record / Текущая запись: " NAME MYTABLETEXT // строка 533
MENUITEM "Record number / Номер записи: " NAME MYTABLERECNO
...
END MENU

При повторном входе в эту функцию - вылет программы с ошибкой:
Error BASE/1132 Переполнение массива: Неверное количество аргументов
Called from _GETMENUIDS(648)
Called from MENUCAPTIONSET(546)
Called from CHANGETABLE(533)
Called from (b)MYCREATETABLE(431)


Я так подозреваю, что нужно чистить (удалять) объявленные переменные NAME MYTABLETEXT и NAME MYTABLERECNO ?
Или что то другое нужно ?

P.S. простое удаление (после закрытии формы) не помогает...
RELEASE MYTABLETEXT
RELEASE MYTABLERECNO

Вылетает на строке 648:
x := GetControlIndex ( ItemName , FormName )
MsgLog(x, ItemName , FormName)
h := _HMG_aControlPageMap [ x ] // строка 648

В отладочном файле _MsgLog.txt следующее:
7 MYTABLETEXT Form_Table45549
8 MYTABLERECNO Form_Table45549
0 MYTABLETEXT Form_Table47864


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




Пост N: 4791
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.16 12:29. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можно сделать так, чтобы при наведении мышкой на колонку с определённым номером, в ячейке всплывала подсказка ?
Как у всех объектов TOOLTIP, или как в примере MiniGUI\SAMPLES\BASIC\COMM_2\demo-main.prg функция My_Message()


Так как - это можно реализовать ?
А то писали-писали, а к чему пришли так и не понял.
Или результат в новой версии МиниГуи ждать ?

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




Пост N: 903
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.03.16 12:54. Заголовок: Andrey пишет: Или р..


Andrey пишет:

 цитата:
Или результат в новой версии МиниГуи


Именно так - уже скоро. Сегодня выпустил pre-release версию новой сборки
На всякий случай мой контрольный пример для проверки этой фичи ниже:
Скрытый текст


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




Пост N: 4796
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.16 21:48. Заголовок: Столкнулся с такой н..


Столкнулся с такой непоняткой...

Создаю таблицу:
DEFINE TBROWSE oBrw1 ;
................
MyCreateTable(....)

END TBROWSE
SetNoHoles( oBrw1 ) // убрать дырку внизу таблицы перед подвалом
MyCreateTableMenu(....)

В функции MyCreateTable(....) задаю:
1) цвета
// -------------------- Установить цвета в таблице ------------------------------
oBrw1:SetColor( { 1}, { { || CLR_BLACK } } ) // 1 , текста в ячейках таблицы
............
oBrw1:SetColor( { 6}, { { || { 4915199,255} } } ) // 6 , фона курсора

2) создаю столбцы
ADD COLUMN TO oBrw1 HEADER "1-столбец" ;
............ // и т.д.

3) и там все остальные назначения...
// -------------- Fixed cursor , фиксированный курсор ---------
For nI := 1 To oBrw1:nColCount()
oBrw1:aColumns[nI]:lFixLite := TRUE
Next


Пытаюсь после этого считать цвет 6 - фона курсора
oCol := oBrw1:aColumns[ 1 ]
aColor := oCol:aColorsBack
aCursorBC := aColor[6]

oBrw1:SetColor( { 6 }, { { |a,b,c| IF( c:nCell == b, aCursorBC ,;
{ CLR_GRAY, CLR_WHITE } ) } } )


Получаю в aCursorBC чёрный цвет... Почему ?
Что нужно ещё сделать для инициализации цвета ?

Если цвета поставить ниже, то 6-цвет получается нормально...

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


Пост N: 525
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 22.03.16 20:59. Заголовок: Уажаемые ГУРУ! Не м..


Уажаемые ГУРУ!
Не могли бы Вы для полноты дополнить некоторые примеры TsBrowse следующим:- это кнопки навигации , добавить , удалить , изменить режим(непосредственное редактирование разрешено - запрещено), вызов контекстного меню.
Представляют интерес примеры на основе - Tsb_filter,Tsb_sbrowse (или подобные) , т.е. те, где TsBrows формируется отдельной процедурой.

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




Пост N: 4804
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.03.16 22:59. Заголовок: Vlad04 пишет: это к..


Vlad04 пишет:

 цитата:
это кнопки навигации , добавить , удалить , изменить режим(непосредственное редактирование разрешено - запрещено), вызов контекстного меню.


Смотри пример SAMPLES\Advanced\Tsb_config
Могу дать на его базе более продвинутый пример из двух TsBrowse (кнопка цвет) - https://cloud.mail.ru/public/2CHr/h9u2vn7JR
Вот еще один пример с картинками и продвинутым контекстным меню - https://cloud.mail.ru/public/2s2Z/gmH9d5VWD


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


Пост N: 526
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 23.03.16 09:21. Заголовок: Примеры хорошие, но ..


Примеры хорошие, но это не то.Речь шла о примерах, где TsBrows формируется отдельной процедурой, а в этих - все в одной и создание окна и создание Бровса в нем.

Ниже - твой пример, где я добавил кнопки навигации.При добавлении новой записи экран не обновляется.

TsBrows с навигацией

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




Пост N: 903
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.03.16 10:44. Заголовок: Vlad04 пишет:При доб..


Vlad04 пишет:
 цитата:
При добавлении новой записи экран не обновляется.


на базе Tsb_addrecord AddRecord(obrw) сделал похоже (в примере) - работает
 
********************
Static Procedure Append(obrw)
********************

(obrw:cAlias)->( DbAppend() )
(obrw:cAlias)->( FieldPut( 1, Procname()+": "+strzero(RecNo(),7 )+str(procline(), 7) ) )
(obrw:cAlias)->( FieldPut( 2, RecNo() ) )

obrw:GoToRec( RecNo() )
obrw:SetFocus()

Return

или надо как то иначе ?

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


Пост N: 527
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 23.03.16 18:38. Заголовок: Это учел. На основе ..


Это учел. На основе Tsb_addrecord другой пример Tsb_addrecord2
Здесь возникают ошибки, неувязки в
Procedure Edit(met,cForm,oBrw,cAlias)

 цитата:

// &(cForm).readRec.Visible:=.t.
// &(cForm).readRecN.Visible:=.f.


Здесь должна меняться видимость картинок.
И в
STATIC FUNCTION MyKeyAction(l_Key,cForm,oBrw, cParent)




// &(cForm).STATUSBAR.Item(1):='Точный поиск:'+sSeek //'Точный поиск:'+

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




Пост N: 904
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.03.16 22:06. Заголовок: Vlad04 CASE ..


Vlad04
 
CASE l_key>32.and.l_key<254
sl_key := KeyToChar(l_key ) // моя функция обработки клавиш / my processing function keys
sSeek:=sSeek+sl_key

nRec:=Recno()
Seek sSeek
if Found()
nRec := RecNo()
endif
oBrw:GotoRec(nRec)

только, на мой взгляд, проще сделать GetBox вместе с tsb, скрыть его, на lostfocus\return\esc повесить переход на tsb и скрытие, а на onchange подвод или scope, show GetBox делать в координатах ячейки в Footer tsb


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




Пост N: 905
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.03.16 22:11. Заголовок: PS подсветку того, ч..


PS
подсветку того, что набрали посимвольно , все равно надо делать (нужно место), а GetBox и с этим справится

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