Softlog86 пишет:
цитата: |
Там ещё и календарь встраивать ... с днями недели , 30/31 числа и тд .... |
|
Ну ты лентяй )
Стало интересно за пол часа накидал. Если есть желание - продолжай дальше сам
для сборки нужна hbnf.lib
отметка - даблклик или энтер
#include "minigui.ch"
#include "tsbrowse.ch"
STATIC aFont := {}
MEMVAR oBrw_1
FUNCTION Main()
LOCAL i := 0, j := 0, n := 0
LOCAL dFirst := Date()
LOCAL aDay := {"ПН", "ВТ", "СР", "ЧТ", "ПТ", "СБ", "ВС"}
SET DATE TO GERMAN
FT_DATECNFG(, 2 )
DEFINE WINDOW Form_0 ;
At 0, 0 ;
WIDTH 600 ;
HEIGHT 600 ;
TITLE 'TsBrowse calendar' ;
ICON 'lupa.ico' ;
MAIN ;
NOMAXIMIZE ;
NOSIZE
ON KEY ESCAPE ACTION ThisWindow.Release
END WINDOW
DEFINE TBrowse oBrw ;
AT GetProperty("Form_0", 'Row') + 30, GetProperty("Form_0", 'Col') + 15 ;
OF Form_0 ;
WIDTH GetProperty("Form_0", 'Width') - 38 ;
HEIGHT GetProperty("Form_0", 'Height') - 168 ;
FONT "Arial" ;
SIZE 9 ;
GRID
END TBROWSE
oBrw:SetArray( Array(5,7), TRUE)
__objAddData(oBrw, 'aMark' )
__objAddData(oBrw, 'aDate' )
oBrw:aMark := Array(5,7)
oBrw:aDate := Array(5,7)
dFirst := FT_ACCTWEEK(BOM(Date()) )[2]
n := 0
for i := 1 To 5
For j := 1 TO 7
oBrw:aDate[ i ][ j ] := dFirst + n
oBrw:aMark[ i ][ j ] := FALSE
n++
end
end
oBrw:nHeightCell := 80
oBrw:nHeightHead := 30
oBrw:lNoHScroll := .T.
oBrw:nFreeze := 7
oBrw:lLockFreeze := FALSE
oBrw:lNoChangeOrd := TRUE
oBrw:SetColor( { 3 }, { { || RGB(255,242,0) } }, )
oBrw:SetColor( { 4 }, { { || { RGB( 43, 189, 198 ), RGB(3,113,160) } } }, )
oBrw:Setcolor( { 6 }, { -RGB(220, 0, 0) }, )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(1) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 1 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(2) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 2 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(3) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 3 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(4) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 4 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(5) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 5 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(6) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 6 )
oBrw:Setcolor( { 2 }, { { || IF( IsMark(7) , RGB(200, 255, 200), RGB(240, 255, 240)) } }, 7 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][1] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 1 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][2] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 2 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][3] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 3 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][4] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 4 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][5] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 5 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][6] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 6 )
oBrw:Setcolor( { 1 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][7] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 7 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][1] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 1 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][2] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 2 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][3] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 3 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][4] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 4 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][5] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 5 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][6] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 6 )
oBrw:Setcolor( { 5 }, { { || IF( Month( oBrw:aDate[oBrw:nAt][7] ) == Month( date() ) , RGB(0, 0, 0), RGB(200, 200, 200)) } }, 7 )
for i := 1 To 7
oBrw:aColumns[ i ]:cHeading := aDay[ i ]
oBrw:SetColSize( i, 80)
oBrw:aColumns[ i ]:bData := &( "{|| GetDate( " + NTOC( i ) + ")}")
oBrw:aColumns[ i ]:nAlign := DT_CENTER
oBrw:aColumns[ i ]:lEdit := TRUE
oBrw:aColumns[ i ]:bPrevEdit := { || Mark() , .F.}
end
CENTER WINDOW Form_0
ACTIVATE WINDOW Form_0
RETURN Nil
FUNC GetDate( nCol )
RETURN DAY(oBrw:aDate[oBrw:nAt][nCol] )
Func Mark(i)
oBrw:aMark[oBrw:nAt][oBrw:nCell] := !oBrw:aMark[oBrw:nAt][oBrw:nCell]
oBrw:refresh(FALSE)
RETURN NIL
Func IsMark(n)
RETURN oBrw:aMark[oBrw:nAt][n]