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


Пост 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 
ПрофильЦитата Ответить
Ответов - 289 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




Пост N: 3326
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.08.20 11:21. Заголовок: Andrey пишет Можно л..


Andrey пишет
 цитата:
Можно ли при открытие базы в ТСБ (метод dbf) создать 6 своих виртуальных колонок перед колонками dbf ?


Вариантов много. Вот один из них
 
BEGIN SEQUENCE WITH { |e|break(e) }
DbUseArea( .F., cRdd, cFile, cAls, lShared, , cCdp )
lUse := ! NetErr() .and. Used()
nMsg := 0
END SEQUENCE

IF lUse
k := 6
aField := Array(FCount()+k)
aField[1] := FieldName(1)
aField[2] := FieldName(1)
aField[3] := FieldName(1)
aField[4] := FieldName(1)
aField[5] := FieldName(1)
aField[6] := FieldName(1)
FOR i := 1 TO FCount() ; aField[ k+i ] := FieldName(i)
NEXT
ENDIF
...
DEFINE TBROWSE oBrw AT y,x WIDTH w HEIGHT h CELL ;
ALIAS ALIAS() ;
FONT (App.Object):Cargo:aFonts ;
BRUSH { 255, 255, 230 } ;
COLORS aClr ;
ON GOTFOCUS oCar:FocusedControl := "oBrw" ;
COLUMNS aField ;
FOOTER .T. ;
FIXED COLSEMPTY ;
LOADFIELDS GOTFOCUSSELECT ;
COLNUMBER { k+1, 60 } ;
ENUMERATOR LOCK
...
FOR i := 1 TO :aColumns
o := :aColumns[ i [
IF o:cName == "ORDKEYNO" ; EXIT
ENDIF
o:cAlias := :cAlias
o:bData := {|| Nil }
o:bValue := {|u,obr,ncol,ocol|
Local nrec := (obr)->( RecNo() )
u := ocol[ncol]:Cargo[nrec] // вирт. значение
Return u
}
o:cField := ""

switch i
case 1
o:Cargo := aVirtual1 // массив виртуальных данных
o:cName := VIRT1
o:cFieldTyp := "C"
o:nFieldLen := 20
o:nFieldDec := 0
o:nWidth := o:ToWidth(o:nFieldLen, 0.8)
exit
case 2
o:Cargo := aVirtual2 // массив виртуальных данных
o:cName := VIRT2
o:cFieldTyp := "N"
o:nFieldLen := 7
o:nFieldDec := 0
o:nWidth := o:ToWidth(o:nFieldLen)
exit
case 3
...
exit
case 4
...
exit
case 5
...
exit
case 6
...
exit
end switch
NEXT
...


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




Пост N: 3327
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.08.20 11:36. Заголовок: PS Еще сбросить или ..


PS
Еще сбросить или поставить Picture для колонки
o:cPicture := Nil

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




Пост N: 3328
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.08.20 20:41. Заголовок: SergKis пишет Вот од..


SergKis пишет
 цитата:
Вот один из них


Работающий вариант с 6-ю вирт. колонками Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 37
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 26.08.20 18:24. Заголовок: CONTEXT NENU CONTROL TsBrowse


При вызове CONTEXT MENU для TsBrowse , CONTEXT MENU в другом окне не работает. Хотя для других контролов все нормально.
Так в примере ниже:
CONTEXT MENU OF Form2 появляется после ITEM "Item 1 from TBROWSE" ACTION Window2(), а после ITEM "Item 1 from BUTON" ACTION Window2() - нет.


Скрытый текст



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




Пост N: 6793
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.08.20 13:26. Заголовок: Уважаемый Avf 1) Оч..


Уважаемый Avf
1) Очень тяжело смотреть исходник без форматирования, я думаю что никто и не смотрел больше.
2) Пример собрался, а дальше что смотреть ?
Мне не понятно. Может другие поняли.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 38
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 27.08.20 14:11. Заголовок: Я очень извиняюсь, ф..


Я очень извиняюсь, форматирование чего-то исчезло(был невнимателен) при копировании на форум.
С контролов TsBrowse и Button вызывается контекстное меню.
После выбора Item открывается новое окно.
В новом окне тоже вызывается контекстное меню.
В случае, если пришли через Button - все работает.
Если через TsBrowse, меню не отображается.
Еще раз, извиняюсь, у нас тут и так бошка на части разваливается(РБ).

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3971
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.08.20 14:13. Заголовок: Движок форума съедае..


Движок форума съедает пробелы слева. Надо использовать стиль - моноширинный шрифт

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




Пост N: 6795
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.08.20 14:22. Заголовок: Мне сложно на это от..


Мне сложно на это ответить. Я ещё не такой большой спец по МиниГуи.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7241
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.08.20 14:36. Заголовок: Avf пишет: Я очень ..


Avf пишет:

 цитата:
Я очень извиняюсь, форматирование чего-то исчезло(был невнимателен) при копировании на форум.


я поправил , сейчас нормально

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 39
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 27.08.20 14:51. Заголовок: Спасибо, Дима...


Спасибо, Дима.

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




Пост N: 3336
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.08.20 16:28. Заголовок: Avf Работает вариан..


Avf
Работает вариант Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 27.08.20 23:48. Заголовок: Спасибо, Ceргей. Да,..


Спасибо, Ceргей. Да, действительно, работая с eventами, можно обойти все недочеты в подобных ситуациях.

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




Пост N: 6804
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.08.20 19:14. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для Timestamp колонок это как в h_tbrowse.prg, можешь подобрать длину в символах не 20, а сколько надо у тебя



Перенес эту тему сюда.
Нужно наверное поставить там 24 знака для ВСЕХ, чтобы не съедались колонки ?
А для этих колонок сделать вот так !
           ELSEIF cType $ "+^" // Type: [+] [^] 
// если в базе будет 1 000 000 записей, то нужно 7 знаков
oCol:nWidth := GetTextWidth( Nil, REPL("9",7), hFont ) // 7 знака


У меня разрешение экрана 1920х1080, может из-за этого съедаются колонки ?

Сделал отдельный пример, первую таблицу по умолчанию, во вторую таблицу
добавил свою функцию myPartWidthTsb( oBrw ) // поправить ширину колонок
Тогда колонки 24,26,27,28 показываются полностью.

Вот проект - https://cloud.mail.ru/public/2h5G/5HCw2TY2G
Народ, посмотрите на своих мониторах, будут у вас съедаться колонки 24,26,27,28 в первой таблице ?

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




Пост N: 3349
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.20 22:46. Заголовок: Andrey DEFINE TB..


Andrey
 
DEFINE TBROWSE oBrw1 ;
AT nY, nX ALIAS aArray WIDTH nW HEIGHT nH CELL ;
FONT aFont ;
BRUSH YELLOW ;
HEADERS aHead ;
COLSIZES aSize ;
PICTURE aPict ;
JUSTIFY aAlign ;
COLUMNS aField ;
COLNAMES aName ;
FOOTERS aFoot ;
FIXED COLSEMPTY ;
LOADFIELDS ;
/*COLNUMBER { 1, 40 } */ ;
ENUMERATOR LOCK EDIT
? procname(), "FontWidth =", GetTextWidth( 0, Replicate( "9", 24 ), GetFontHandle(aFont[ 1 ]) ), GetFontWidth(aFont[ 1 ], 20), GetTextWidth( 0, Replicate( "B", 20 ), GetFontHandle(aFont[ 1 ]) )

дает у меня
MYBRW1 FontWidth = 216 220 220
216 - это что предлагаешь ты
220 - это то что стоит в :LoadFields(), получено 2-мя способами
т.е. вариант в тсб на 4 pixel > твоего варианта

Что дает у тебя ?

Andrey пишет
 цитата:
если в базе будет 1 000 000 записей, то нужно 7 знаков


Тогда увеличишь, когда надо будет, я же показывал, к примеру
:GetColumn("ID"):nWidth := (App.Object):W1
:GetColumn("VM"):nWidth := (App.Object):W1
или др. способом
:GetColumn("ID"):nWidth := GetFontWidth(aFont[ 1 ], 7)
:GetColumn("VM"):nWidth := GetFontWidth(aFont[ 1 ], 12)
к примеру, если поле "N" и короткое, и надо по нему подводить итог (сумму), то делаю так
 
ELSEIF o:cFieldTyp == "N" .and. o:nFieldLen < 10
o:nWidth += GetFontWidth("Normal", 3)

т.е. все ситации не засунешь во внутрь h_tbrowse.prg, что то придется писать и для своих баз можешь учесть все, что надо

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




Пост N: 3350
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.20 23:07. Заголовок: Andrey пишет посмот..


Andrey пишет
 цитата:
посмотрите на своих мониторах, будут у вас съедаться колонки 24,26,27,28 в первой таблице ?


на 3х PC нормально показывает не съедает ничего (1. win 8.1 [15"], 2. win 10 [14"], 3. win 8.1 [11"] ), exe твоей сборки

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




Пост N: 6805
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.20 00:19. Заголовок: SergKis пишет: ? pr..


SergKis пишет:

 цитата:
? procname(), "FontWidth =", GetTextWidth( 0, Replicate( "9", 24 ), GetFontHandle(aFont[ 1 ]) ), GetFontWidth(aFont[ 1 ], 20), GetTextWidth( 0, Replicate( "B", 20 ), GetFontHandle(aFont[ 1 ]) )

дает у меня
MYBRW1 FontWidth = 216 220 220
216 - это что предлагаешь ты
220 - это то что стоит в :LoadFields(), получено 2-мя способами
т.е. вариант в тсб на 4 pixel > твоего варианта

Что дает у тебя ?


MYBRW1 FontWidth = 240 200 200
У меня разрешение 1920х1080, win 8.1 [24"]
Вот наверное из-за этого и съедаются колонки.
Т.е. на всех мониторах красивого оформления НЕ ПОЛУЧИТСЯ без доп.функций, например как я написал
myPartWidthTsb( oBrw ) // поправить ширину колонок

SergKis пишет:

 цитата:
т.е. все ситации не засунешь во внутрь h_tbrowse.prg, что то придется писать и для своих баз можешь учесть все, что надо


Хорошо, понял. Буду делать свою добавку к ТСБ.

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




Пост N: 3351
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.08.20 00:55. Заголовок: Andrey Попробуй доба..


Andrey Попробуй добавку
? procname(), "FontWidth =", GetTextWidth( 0, Replicate( "9", 24 ), GetFontHandle(aFont[ 1 ]) ), GetFontWidth(aFont[ 1 ], 20), ;
GetTextWidth( 0, Replicate( "B", 20 ), GetFontHandle(aFont[ 1 ]) )
?? (App.Object):W(2.3)

она у меня 218
что у тебя ?

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




Пост N: 6806
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.20 01:16. Заголовок: SergKis пишет: что ..


SergKis пишет:

 цитата:
что у тебя ?


(App.Object):W(2.3)= 218

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




Пост N: 3352
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.08.20 01:25. Заголовок: Andrey Попробуй при..


Andrey
Попробуй присвоить :nWidth := (App.Object):W(2.4) или (App.Object):W(2.5)
для колонок "T"
как будет выглядеть tsb

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




Пост N: 6807
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.20 16:37. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуй присвоить :nWidth := (App.Object):W(2.4) или (App.Object):W(2.5)
для колонок "T"
как будет выглядеть tsb


Отлично выглядит на (App.Object):W(2.5) !

Попробовал фонт "Arial" вместо "DejaVu Sans Mono" для TsbNorm - стало лучше.
Фонт "DejaVu Sans Mono" моноширинный, а Arial обычный
Вот и компенсируются размеры ячеек.

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

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 234
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет