Форум » GUI » Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение) » Ответить

Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)

gfilatov: Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Andrey: gfilatov2002 пишет: Подготовил первый релиз-кандидат для новой сборки библиотеки со следующим списком изменений Что то не увидел свой пример CallDll2 ? Старался его сделать для других, чтобы было понятно как загружать чужие и свои DLL-ки.

gfilatov2002: Andrey пишет: не увидел свой пример CallDll2 Верно. Andrey пишет: как загружать чужие и свои DLL-ки В этом примере есть Харбор, Си, DLL, но очень мало собственно МиниГУИ. Поэтому пример не вошел в следующую сборку. Если будет интерес в использовании DLL у пользователей, то, конечно, добавлю Ваш пример

gfilatov2002: SergKis пишет: Ввел в TsColumns DATA bValue Принято, конечно. Благодарю за помощь


SergKis: SergKis пишет Использование oColum:cName := 'MET' oColum:lChecBox := .T. oColum:Cargo := oKeyData() // контейнер\список для recno отмеченных записей oColum:bValue := {|xval,obrw,ncol,ocol| ; xval := ocol:Cargo:Get((obrw:cAlias)->( RecNo() )), ; ncol := ! empty(xval) } // .T. - при наличии в контейнере ... oBrw:UserKeys( VK_SPACE, {|obr| Local oCol := obr:aColumns[obr:nCell] Local nRec If oCol:cName == 'MET' nRec := (obr:cAlias)->( RecNo() ) If empty(oCol:Cargo:Get(nRec)) // добавим в список oCol:Cargo:Set(nRec, nRec) Else oCol:Cargo:Del(nRec) // уберем из списка EndIf EndIf Return Nil } ) все проще (по привычке смешал в кучу старое, новое) :UserKeys не надо, достаточно :bValue[pre2] oCol:cAlias := "BASE" oCol:lCheckBox := .T. oCol:lEdit := .T. oCol:Cargo := oKeyData() oCol:bValue := {|xv,ob,nc,oc| Local nRec := RecNo() If xv == Nil xv := ! empty(oc:Cargo:Get(nRec)) ElseIf xv oc:Cargo:Set(nRec, nRec) Else oc:Cargo:Del(nRec) EndIf Return xv } [/pre2]

SergKis: gfilatov2002 пишет Принято Для однотипного вызова, наверно. надо поправить[pre2] METHOD bDataEval( oCol, xVal, nCol ) CLASS TSBrowse ... If lNoAls; xVal := Eval( oCol:bDecode, xVal, Self, nCol, oCol ) Else ; xVal := (cAlias)->( Eval( oCol:bDecode, xVal, Self, nCol, oCol ) ) EndIf ... If lNoAls; xVal := Eval( oCol:bEncode, xVal, Self, nCol, oCol ) Else ; xVal := (cAlias)->( Eval( oCol:bEncode, xVal, Self, nCol, oCol ) ) EndIf ... [/pre2]

SergKis: Упс. Пропало, что выкладывал. Повторю.gfilatov2002 У себя сделал изменения :[pre2]... METHOD bDataEval( oCol, xVal, nCol ) METHOD GetValProp( xVal, xDef, nCol, nAt ) METHOD nClrBackArr( aClrBack, nCol, nAt ) METHOD nColorGet ( xVal, nCol, nAt, lPos ) METHOD nAlignGet ( xVal, nCol, xDef ) METHOD cPictureGet ( xVal, nCol ) METHOD hFontGet ( xVal, nCol ) METHOD hFontHeadGet ( xVal, nCol ) METHOD hFontFootGet ( xVal, nCol ) METHOD hFontSpcHdGet ( xVal, nCol ) METHOD hFontSupHdGet ( nCol, aSuperHead ) METHOD cTextSupHdGet ( nCol, aSuperHead ) METHOD nForeSupHdGet ( nCol, aSuperHead ) METHOD nBackSupHdGet ( nCol, aSuperHead ) METHOD nAlignSupHdGet( nCol, lHAlign, aSuperHead )...METHOD GetValProp( xVal, xDef, nCol, nAt ) CLASS TSBrowse Default nCol := ::nCell If HB_ISBLOCK(xVal) If nAt == Nil; xVal := Eval( xVal, nCol, Self ) Else ; xVal := Eval( xVal, nAt, nCol, Self ) EndIf EndIf If xVal == Nil ; xVal := xDef EndIfRETURN xValMETHOD hFontGet( xVal, nCol ) CLASS TSBrowse LOCAL xDef := iif( ::hFont == Nil, 0, ::hFont ) If HB_ISOBJECT(xVal); xVal := xVal:hFont EndIf xVal := ::GetValProp( xVal, xDef, nCol, ::nAt ) If HB_ISOBJECT(xVal); xVal := xVal:hFont EndIf If xVal == Nil ; xVal := xDef EndIfRETURN xValMETHOD hFontHeadGet( xVal, nCol ) CLASS TSBrowse LOCAL xDef := iif( ::hFont == Nil, 0, ::hFont ) If HB_ISOBJECT(xVal); xVal := xVal:hFontHead EndIf xVal := ::GetValProp( xVal, xDef, nCol, 0 ) If HB_ISOBJECT(xVal); xVal := xVal:hFontHead EndIf If xVal == Nil ; xVal := xDef EndIfRETURN xValMETHOD hFontFootGet( xVal, nCol ) CLASS TSBrowse LOCAL xDef := iif( ::hFont == Nil, 0, ::hFont ) If HB_ISOBJECT(xVal); xVal := xVal:hFontFoot EndIf xVal := ::GetValProp( xVal, xDef, nCol, 0 ) If HB_ISOBJECT(xVal); xVal := xVal:hFontFoot EndIf If xVal == Nil ; xVal := xDef EndIfRETURN xValMETHOD hFontSpcHdGet( xVal, nCol ) CLASS TSBrowse LOCAL xDef := iif( ::hFont == Nil, 0, ::hFont ) If HB_ISOBJECT(xVal); xVal := xVal:hFontSpcHd EndIf xVal := ::GetValProp( xVal, xDef, nCol, 0 ) If HB_ISOBJECT(xVal); xVal := xVal:hFontSpcHd EndIf If xVal == Nil ; xVal := xDef EndIfRETURN xValMETHOD hFontSupHdGet( nCol, aSuperHead ) CLASS TSBrowse LOCAL xDef := iif( ::hFont == Nil, 0, ::hFont ) LOCAL xVal Default nCol := 1, aSuperHead := ::aSuperHead If nCol > 0 .and. nCol <= Len( aSuperHead ) xDef := ::GetValProp( aSuperHead[ 1, 7 ], xDef, 1 ) xVal := ::GetValProp( aSuperHead[ nCol, 7 ], xDef, nCol ) EndIf If xVal == Nil; xVal := xDef EndIfRETURN xValMETHOD cTextSupHdGet( nCol, aSuperHead ) CLASS TSBrowse LOCAL xDef := '', xVal Default nCol := 1, aSuperHead := ::aSuperHead If nCol > 0 .and. nCol <= Len( aSuperHead ) xVal := ::GetValProp( aSuperHead[ nCol, 3 ], xDef, nCol ) EndIf If xVal == Nil; xVal := xDef EndIfRETURN xValMETHOD nForeSupHdGet( nCol, aSuperHead ) CLASS TSBrowse LOCAL xDef := ::nClrText, xVal Default nCol := 1, aSuperHead := ::aSuperHead If nCol > 0 .and. nCol <= Len( aSuperHead ) xDef := ::GetValProp( aSuperHead[ 1, 4 ], xDef, 1 ) xVal := ::GetValProp( aSuperHead[ nCol, 4 ], xDef, nCol ) EndIf If xVal == Nil; xVal := xDef EndIf RETURN xValMETHOD nBackSupHdGet( nCol, aSuperHead ) CLASS TSBrowse LOCAL xDef := ::nClrPane, xVal LOCAL nPos := 0 If HB_ISNUMERIC( aSuperHead ) nPos := aSuperHead aSuperHead := Nil EndIf Default nCol := 1, aSuperHead := ::aSuperHead If nCol > 0 .and. nCol <= Len( aSuperHead ) xDef := ::GetValProp( aSuperHead[ 1, 5 ], xDef, 1 ) xVal := ::GetValProp( aSuperHead[ nCol, 5 ], xDef, nCol ) EndIf If xVal == Nil; xVal := xDef EndIf If HB_ISARRAY(xVal) xVal := ::nClrBackArr( xVal, nCol ) If nPos > 0 If empty( xVal[1] ) nPos := 2 EndIf xVal := xVal[ iif( nPos == 1, 1, 2 ) ] EndIf EndIf RETURN xValMETHOD nAlignSupHdGet( nCol, lHAlign, aSuperHead ) CLASS TSBrowse LOCAL xDef := DT_CENTER, xVal, nPos Default nCol := 1, lHAlign := .T., aSuperHead := ::aSuperHead If nCol > 0 .and. nCol <= Len( aSuperHead ) nPos := iif( lHAlign, 12, 13 ) xDef := ::GetValProp( aSuperHead[ 1, nPos ], xDef, 1 ) xVal := ::GetValProp( aSuperHead[ nCol, nPos ], xDef, nCol ) EndIf If xVal == Nil; xVal := xDef EndIf RETURN xValMETHOD nAlignGet( xVal, nCol, xDef ) CLASS TSBrowseRETURN ::GetValProp( xVal, hb_default(xDef, DT_LEFT), nCol )METHOD nColorGet( xVal, nCol, nAt, lPos ) CLASS TSBrowse LOCAL xDef := ::nClrPane LOCAL nPos := 0 If lPos != Nil nPos := iif( empty(lPos), 2, 1 ) EndIf xVal := ::GetValProp( xVal, xDef, nCol, nAt ) If ValType( xVal ) == "A" xVal := ::nClrBackArr( xVal, nCol, nAt ) If nPos > 0 xVal := xVal[ nPos ] EndIf EndIfRETURN xValMETHOD cPictureGet( xVal, nCol ) CLASS TSBrowse If HB_ISOBJECT(xVal); xVal := xVal:cPicture EndIfRETURN ::GetValProp( xVal, Nil, nCol, ::nAt )METHOD nClrBackArr( aClrBack, nCol, nAt ) CLASS TSBrowse LOCAL nClrBack, nClrTo Default nCol := ::nCell nClrBack := aClrBack[ 1 ] nClrTo := aClrBack[ 2 ] If HB_ISBLOCK(nClrTo) If nAt == Nil; nClrTo := Eval( nClrTo , nCol, Self ) Else ; nClrTo := Eval( nClrTo , nAt, nCol, Self ) EndIf EndIf If HB_ISBLOCK(nClrBack) If nAt == Nil; nClrBack := Eval( nClrBack, nCol, Self ) Else ; nClrBack := Eval( nClrBack, nAt, nCol, Self ) EndIf EndIf If nAt != Nil .and. nCol == 1 .and. ! Empty( ::hBmpCursor ) nClrTo *= -1 EndIfRETURN { nClrBack, nClrTo }...METHOD DrawHeaders( lFooters ) CLASS TSBrowse... If ::lDrawHeaders .and. ! lFooters nVertText := 0 lOrder := ::nColOrder == nJ lDescend := oColumn:lDescend If LoWord( oColumn:nHAlign ) == DT_VERT cHeading := "Arial" hFont := InitFont ( cHeading, -11, .f., .f., .f. , .f. , 900 ) nVAlign := 2 nVertText := 1 Else // hFont := If( oColumn:hFontHead == Nil, ::hFont, oColumn:hFontHead )// hFont := If( ValType( hFont ) == "B", Eval( hFont, 0, nJ, Self ), ;// hFont ) hFont := ::hFontHeadGet( oColumn, nJ ) EndIf l3DLook := oColumn:l3DLookHead nAlign := ::nAlignGet( oColumn:nHAlign, nJ, DT_CENTER )// nAlign := If( ValType( oColumn:nHAlign ) == "B", ;// Eval( oColumn:nHAlign, nJ, Self ), oColumn:nHAlign ) If ( nClrFore := If( ::nColOrder == nI, oColumn:nClrOrdeFore, ; oColumn:nClrHeadFore ) ) == Nil nClrFore := If( ::nColOrder == nI, nClrOrdeFore, ; nClrHeadFore ) EndIf nClrFore := ::GetValProp( nClrFore, nClrFore, nJ )// nClrFore := If( ValType( nClrFore ) == "B", Eval( nClrFore, nJ, Self ), nClrFore ) If !( nJ == 1 .and. ::lSelector ) If ( nClrBack := If( ::nColOrder == nI, oColumn:nClrOrdeBack, oColumn:nClrHeadBack ) ) == Nil nClrBack := If( ::nColOrder == nI, nClrOrdeBack, nClrHeadBack ) EndIf else nClrBack := iif( ::nClrSelectorHdBack == Nil, ATail( ::aColumns ):nClrHeadBack, ::nClrSelectorHdBack ) endif nClrBack := ::GetValProp( nClrBack, nClrBack, nJ )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack, nJ, Self ), nClrBack ) lBrush := Valtype( nClrBack ) == "O" If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nJ ) nClrTo := nClrBack[ 2 ] nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack ) Else nClrTo := nClrBack EndIf... IF ::lDrawSpecHd // hFont := If( oColumn:hFontSpcHd == Nil, ::hFont, oColumn:hFontSpcHd )// hFont := If( ValType( hFont ) == "B", Eval( hFont, 0, nJ, Self ), hFont ) hFont := ::hFontSpcHdGet( oColumn, nJ ) l3DLook := oColumn:l3DLookHead nAlign := ::nAlignGet( oColumn:nSAlign, nJ, DT_CENTER )// nAlign := If( ValType( oColumn:nSAlign ) == "B", Eval( oColumn:nSAlign, nJ, Self ), oColumn:nSAlign ) If ( nClrFore := If( ::nColOrder == nI, oColumn:nClrOrdeFore, oColumn:nClrSpcHdFore ) ) == Nil nClrFore := If( ::nColOrder == nI, nClrOrdeFore, nClrSpcHdFore ) EndIf nClrFore := ::GetValProp( nClrFore, nClrFore, nJ )// nClrFore := If( ValType( nClrFore ) == "B", Eval( nClrFore, nJ, Self ), nClrFore ) nClrBacks := If( ::nPhantom == -1, ATail( ::aColumns ):nClrSpcHdBack, nClrPane )// nClrBackS := If( ValType( nClrBackS ) == "B", Eval( nClrBackS, nJ, Self ), nClrBackS ) nClrBackS := ::GetValProp( nClrBackS, nClrBackS, nJ ) lBrush := Valtype( nClrBackS ) == "O" If ValType( nClrBackS ) == "A" nClrBackS := ::nClrBackArr( nClrBackS, nJ ) nClrToS := nClrBackS[ 2 ] nClrBackS := nClrBackS[ 1 ]// nClrToS := If( ValType( nClrToS ) == "B", Eval( nClrToS ), nClrToS )// nClrBackS := If( ValType( nClrBackS ) == "B", Eval( nClrBackS ), nClrBackS ) Else nClrToS := nClrBackS EndIf if ::lEnum cHeading := AllTrim(Str(nI - iif(::lSelector, 1, 0))) if nI == nBegin .and. ::lSelector .or. nI == nLastCol cHeading := "" endif else cHeading := If( Valtype( oColumn:cSpcHeading ) == "B", Eval( oColumn:cSpcHeading, nJ, Self ), oColumn:cSpcHeading ) If Empty( oColumn:cPicture ) cHeading := If( Valtype( cHeading ) != "C", cValToChar( cHeading ), cHeading ) Else cHeading := If( cHeading == NIL, "", Transform( cHeading, oColumn:cPicture ) ) EndIf// nAlign := oColumn:nAlign nAlign := ::nAlignGet( oColumn:nAlign, nJ, DT_CENTER ) nClrBackS := If( Empty(cHeading), nClrBackS, CLR_HRED ) nClrBackS := If( oColumn:lEditSpec, nClrBackS, nClrBack ) nClrToS := If( oColumn:lEditSpec, nClrToS , nClrTo ) ENDIF... If ::lFooting .and. ::lDrawFooters // hFont := If( oColumn:hFontFoot == Nil, ::hFont, oColumn:hFontFoot )// hFont := If( ValType( hFont ) == "B", Eval( hFont, 0, nJ, Self ), hFont ) hFont := ::hFontFootGet( oColumn, nJ ) l3DLook := oColumn:l3DLookFoot ::oPhant:l3DLookFoot := l3DLook nAlign := ::nAlignGet( oColumn:nFAlign, nJ, DT_CENTER )// nAlign := If( ValType( oColumn:nFAlign ) == "B", Eval( oColumn:nFAlign ), oColumn:nFAlign ) nClrFore := If( oColumn:nClrFootFore != Nil, oColumn:nClrFootFore , nClrFootFore ) nClrFore := ::GetValProp( nClrFore, nClrFore, nJ )// nClrFore := If( ValType( nClrFore ) == "B", Eval( nClrFore, nJ, Self ), nClrFore ) If !( nJ == 1 .and. ::lSelector ) //JP nClrBack := If( oColumn:nClrFootBack != Nil, oColumn:nClrFootBack, nClrFootBack ) Else nClrBack := ATail( ::aColumns ):nClrFootBack EndIf nClrBack := ::GetValProp( nClrBack, nClrBack, nJ )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack, nJ, Self ), nClrBack ) lBrush := Valtype( nClrBack ) == "O" If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nJ ) nClrTo := nClrBack[ 2 ] nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack ) Else nClrTo := nClrBack EndIf...METHOD DrawLine( xRow ) CLASS TSBrowse... For nI := nBegin To nLastCol If nStartCol > nMaxWidth Exit EndIf nJ := If( nI < ::nColPos, nJ + 1, nI ) lSelected := If( nJ == nLastCol, .F., lSelected ) oColumn := If( nJ > Len( ::aColumns ), ::oPhant, ::aColumns[ nJ ] )// cPicture := If( ValType( oColumn:cPicture ) == "B", Eval( oColumn:cPicture, ::nAt, nJ, Self ), ;// oColumn:cPicture )// hFont := If( oColumn:hFont == Nil, ::hFont, oColumn:hFont )// hFont := If( ValType( hFont ) == "B", Eval( hFont, ::nAt, nJ, Self ), ;// hFont ) cPicture := ::cPictureGet( oColumn, nJ ) hFont := ::hFontGet ( oColumn, nJ )// hFont := If( hFont == Nil, 0, hFont ) cColAls := If( '->' $ oColumn:cField, Nil, oColumn:cAlias )... EndIf// nAlign := If( ValType( nAlign ) == "B", Eval( nAlign, nJ, Self ), nAlign ) nAlign := ::nAlignGet( oColumn:nAlign, nJ, DT_LEFT ) If ( nClrFore := oColumn:nClrFore ) == Nil .or. ( lSelected .and. ::uBmpSel == Nil ) nClrFore := If( ! lSelected, nClrText, ::nClrSeleFore ) EndIf nClrFore := ::GetValProp( nClrFore, nClrFore, nJ, ::nAt )// nClrFore := If( Valtype( nClrFore ) == "B", Eval( nClrFore, ::nAt, nJ, Self ), nClrFore ) If ( nClrBack := oColumn:nClrBack ) == Nil .or. ; ( lSelected .and. ::uBmpSel == Nil ) nClrBack := If( ! lSelected, nClrPane, ::nClrSeleBack ) EndIf nClrBack := ::GetValProp( nClrBack, nClrBack, nJ, ::nAt )// nClrBack := If( Valtype( nClrBack ) == "B", Eval( nClrBack, ::nAt, nJ, Self ), nClrBack ) lBrush := Valtype( nClrBack ) == "O" If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nJ, ::nAt ) nClrTo := nClrBack[ 2 ] nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack )//// If nJ == 1 .and. ! Empty( ::hBmpCursor )// nClrTo *= -1// EndIf Else nClrTo := nClrBack EndIf...METHOD DrawSelect( xRow ) CLASS TSBrowse... For nI := nBegin To nLastCol If nStartCol > nMaxWidth Exit EndIf nJ := If( nI < ::nColPos, nJ + 1, nI ) oColumn := If( nJ > Len( ::aColumns ), ::oPhant, ::aColumns[ nJ ] )// hFont := If( oColumn:hFont == Nil, ::hFont, oColumn:hFont )// hFont := If( ValType( hFont ) == "B", Eval( hFont, ::nAt, nI, Self ), hFont ) hFont := ::hFontGet( oColumn, nJ )// hFont := If( hFont == Nil, 0, hFont ) lAdjBmp := oColumn:lAdjBmp nAlign := oColumn:nAlign lOpaque := .T. lMulti := .F. cColAls := If( '->' $ oColumn:cField, Nil, oColumn:cAlias )... lMulti := Valtype( uData ) == "C" .and. At( Chr( 13 ), uData ) > 0// cPicture := If( ValType( oColumn:cPicture ) == "B", Eval( oColumn:cPicture, ::nAt, nJ, Self ), ;// oColumn:cPicture ) cPicture := ::cPictureGet( oColumn, nJ ) lCheck := ( oColumn:lCheckBox .and. ValType( uData ) == "L" .and. oColumn:lVisible ) lNoLite := oColumn:lNoLite nVertText := 0 If lCheck... nAlign := ::nAlignGet( oColumn:nAlign, nJ, DT_LEFT )// nAlign := If( ValType( nAlign ) == "B", Eval( nAlign, nJ, Self ), nAlign ) If lNoLite// If ( nClrFore := oColumn:nClrFore ) == Nil// nClrFore := nClrText// EndIf//// nClrFore := If( Valtype( nClrFore ) == "B", Eval( nClrFore, ::nAt, nJ, Self ), nClrFore ) nClrFore := ::GetValProp( oColumn:nClrFore, nClrText, nJ, ::nAt ) nClrBack := ::GetValProp( oColumn:nClrBack, nClrPane, nJ, ::nAt ) // If ( nClrBack := oColumn:nClrBack ) == Nil// nClrBack := nClrPane// EndIf//// nClrBack := If( Valtype( nClrBack ) == "B", Eval( nClrBack, ::nAt, nJ, Self ), nClrBack ) nCursor := 0 Else If ( nClrFore := If( lFocused, oColumn:nClrFocuFore, oColumn:nClrSeleFore ) ) == Nil nClrFore := If( lFocused, nClrFocuFore, nClrSeleFore ) EndIf nClrFore := ::GetValProp( nClrFore, nClrFore, nJ, ::nAt )// nClrFore := If( Valtype( nClrFore ) == "B", Eval( nClrFore, ::nAt, nJ, Self ), nClrFore ) If ( nClrBack := If( lFocused, oColumn:nClrFocuBack, oColumn:nClrSeleBack ) ) == Nil nClrBack := If( lFocused, nClrFocuBack, nClrSeleBack ) EndIf nClrBack := ::GetValProp( nClrBack, nClrBack, nJ, ::nAt )// nClrBack := If( Valtype( nClrBack ) == "B", Eval( nClrBack, ::nAt, nJ, Self ), nClrBack ) If ValType( nClrBack ) == "N" .and. nClrBack < 0 nCursor := Abs( nClrBack ) nClrBack := ::GetValProp( oColumn:nClrBack, nClrPane, nJ, ::nAt )// If ( nClrBack := oColumn:nClrBack ) == Nil// nClrBack := nClrPane// EndIf//// nClrBack := If( Valtype( nClrBack ) == "B", Eval( nClrBack, ::nAt, nJ, Self ), nClrBack ) Else nCursor := 0 EndIf EndIf If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nJ, ::nAt ) nClrTo := nClrBack[2] nClrBack := nClrBack[1]// nClrTo := nClrBack[ 2 ]// nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack )// If nJ == 1 .and. ! Empty( ::hBmpCursor )// nClrTo *= -1// EndIf Else nClrTo := nClrBack EndIf...METHOD DrawSuper() CLASS TSBrowse... If Empty( ::aColumns ) Return Nil EndIf// nClrText := aSuperHead[ 1, 4 ]// nClrBack := aSuperHead[ 1, 5 ] nClrText := ::nForeSupHdGet( 1, aSuperHead ) nClrBack := ::nBackSupHdGet( 1, aSuperHead ) l3DLook := aSuperHead[ 1, 6 ]// hFont := aSuperHead[ 1, 7 ] hFont := ::hFontSupHdGet( 1, aSuperHead ) nLineStyle := aSuperHead[ 1, 10 ] nClrLine := aSuperHead[ 1, 11 ]... EndDo nI := Len( aSuperHead )// nClrText := aSuperHead[ nI, 4 ]// nClrBack := aSuperHead[ nI, 5 ] nClrText := ::nForeSupHdGet( nI, aSuperHead ) nClrBack := ::nBackSupHdGet( nI, aSuperHead ) l3DLook := aSuperHead[ nI, 6 ]// hFont := aSuperHead[ nI, 7 ] hFont := ::hFontSupHdGet( nI, aSuperHead ) nLineStyle := aSuperHead[ nI, 10 ] nClrLine := aSuperHead[ nI, 11 ]... For nI := nS To Len( aSuperHead ) + 1 If nStartCol > nMaxWidth Exit EndIf If nI <= Len( aSuperHead )// nClrFore := If( ValType( aSuperHead[ nI, 4 ] ) == "B", Eval( aSuperHead[ nI, 4 ] ), aSuperHead[ nI, 4 ] )// nClrBack := If( ValType( aSuperHead[ nI, 5 ] ) == "B", Eval( aSuperHead[ nI, 5 ] ), aSuperHead[ nI, 5 ] ) nClrText := ::nForeSupHdGet( nI, aSuperHead ) nClrBack := ::nBackSupHdGet( nI, aSuperHead ) lBrush := Valtype( nClrBack ) == "O" If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nI ) nClrTo := nClrBack[ 2 ] nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack ) Else nClrTo := nClrBack EndIf// cHeading := aSuperHead[ nI, 3 ]// cHeading := If( Valtype( cHeading ) == "B", Eval( cHeading ), cHeading ) cHeading := ::cTextSupHdGet( nI, aSuperHead ) lMulti := Valtype( cHeading ) == "C" .and. At( Chr( 13 ), cHeading ) > 0 l3DLook := aSuperHead[ nI, 6 ]// hFont := aSuperHead[ nI, 7 ] hFont := ::hFontSupHdGet( nI, aSuperHead ) hBitMap := aSuperHead[ nI, 8 ]... Else cHeading := "" nWidth := ::nPhantom hBitmap := 0 lOpaque := .F. nClrBack := If( ::nPhantom == -2, nClrPane, Atail( aSuperHead)[ 5 ] )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack ) nClrBack := ::GetValProp( nClrBack, nClrBack, nI ) If ValType( nClrBack ) == "A" nClrBack := ::nClrBackArr( nClrBack, nI ) nClrTo := nClrBack[ 2 ] nClrBack := nClrBack[ 1 ]// nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )// nClrBack := If( ValType( nClrBack ) == "B", Eval( nClrBack ), nClrBack ) Else nClrTo := nClrBack endif EndIf...[/pre2]Пример Tsb_Brw2Xml с исп. new методов (tsb4xml.prg) и hb_tsbrowse.prg тут https://my-files.ru/6fmntp

SergKis: PS Правка tsb4xml.prg[pre2] METHOD StyleFooter() CLASS Tsb2Xml2Xls ... // If empty( ::nClrHead ) If empty( ::nClrFoot ) nColor := :nColorGet( oCol:nClrFootBack, i ) // nColor := :nColorGet( oCol:nClrFootBack, i ) nColor := ::StyleColor( nColor ) Else // nColor := ::nClrHead nColor := ::nClrFoot EndIf ... [/pre2]

gfilatov2002: SergKis пишет: Пропало, что выкладывал. Повторю. Благодарю за настойчивость Изменения приняты

Andrey: Если будет интерес в использовании DLL у пользователей, то, конечно, добавлю Ваш пример У меня есть интерес, да думаю и другим будет интересен пример: Как собрать свои отдельные модули в отдельной dll-ке и вызов их из главной программы ? Причём как туда в dll-ку можно передать параметры (массив и другие) ? Попытался сам сделать это и не смог. Хочу свой большой проект разделить на части. Вынести готовые (которые не подвегаются правке) модули в отделные DLL-ки.

SergKis: Andrey Помнится, ты даже одну собственную либу не хотел делать, боясь запутаться в версиях. А тут несколько dll да еще разных версий hb, hmg, свои, ... ?

Andrey: А тут несколько dll да еще разных версий hb, hmg, свои, ... ? Чуток разобрался с МиниГуи. Понравились отдельные dll-ки. Вот и хочу свои dll-ки пока на МиниГуи попробовать. Другие языки пока не нужны. Хотелось бы в МиниГуи иметь отдельную папку с таким примером, типа CallDll3 !

SergKis: Andrey пишет Другие языки пока не нужны. Иди по пути hrb, т.е. собери exe, включив все нужные компоненты (lib + request). Окна и алгоритмы получай в hrb. Hrb можешь включать в ресурсные dll, иметь как файлы или как в foxpro, prg и hrb с одним именем, меняем prg, запускается получение hrb и потом он выполняется.

SergKis: PS hrb можешь держать в zip с паролем или без. Собранный, полный exe можно будет менять достаточно редко.

Haz: SergKis пишет: полный exe можно будет менять достаточно редко. Я не вижу принципиальной разницы что менять, exe dll hbr prg. Все кроме prg будет лочиться системой на момент выполнения, а prg требует дополнительной компиляции. То есть все кроме prg требует либо автоматом рубить всех пользователей либо с матами индивидуально. Я в итоге пришёл к решению следующему. Компилируется два exe. Первый просто лончер, который запускает второй. Первый exe имеет настройки, с каким именем запускать второй. У второго от версии к версии инкрементируется расширение. mod.000 mod.001 и так далее. После сборки основного мода его надо закинуть в папку программы и изменить конфигурацию лончер. Всё юзеря могут работать по прежнему, могут получить уведомление о доступности нового. Для обновления потребуется перезапуск лончер и он запустит новый мод. В качестве мода можно подсунуть сервисную программу. Которая к примеру поменяет структуру баз, пересчитатает историю и много чего., а потом пропишет новый мод. Да, лончер запустив мод, сам заканчивает работу

SergKis: Haz пишет Я не вижу принципиальной разницы что менять, exe dll hbr prg. Я не имел ввиду замену версии. В технике с hrb меняются в основном ресурсные dll общие или частные для конкр. клиента. Exe один, не надо следить где какая версия dll hb, hmg и т.д. следить (лежат в тек. каталоге, у exe, в windows,...). Кто и по какой причине (из "добрых" побуждений) подменил\ записал старую версию, перекрыв нужную ... "Добрых" людей много как оказалось. Этого наелся с VO. В итоге оставил минимум dll один exe и все остальное в VO script и ресурсная dll, правда причина такой работы и плохая работа репозитария VO, даже в VO 2.7 такое случалось, т.е. пересобиря exe нельзя быть уверенным (не проверив), что все режимы работают. Первый просто лончер, который запускает второй. Первый exe имеет настройки, с каким именем запускать второй. Инсталяторы тоже так делают, устанавливают и запускают, что укажешь для доинсталяции.

Andrey: В итоге оставил минимум dll один exe Вот я и не смог сделать свою dll-ку на МиниГуи вообще .... Не получается... Хотелось бы в МиниГуи иметь отдельную папку с таким примером, типа CallDll3 !

SergKis: Andrey пишет Вот я и не смог сделать свою dll-ку на МиниГуи вообще В VO dll в поставке, а ты хочешь выделить принудительно, а оно надо ? По мне - не надо. Лучше на технологию hrb потрать время - это будет аналог dll

SergKis: gfilatov2002 Делал для себя константы цветов. Цветовая гамма на сайта https://colorscheme.ru/html-colors.html Может пригодятся [pre2] #define CLR_INDIANRED 6053069 // RGB( 205, 92, 92 ) #define CLR_LIGHTCORAL 8421616 // RGB( 240, 128, 128 ) #define CLR_SALMON 7504122 // RGB( 250, 128, 114 ) #define CLR_DARKSALMON 8034025 // RGB( 233, 150, 122 ) #define CLR_LIGHTSALMON 8036607 // RGB( 255, 160, 122 ) #define CLR_CRIMSON 3937500 // RGB( 220, 20, 60 ) #define CLR_RED 255 // RGB( 255, 0, 0 ) #define CLR_FIREBRICK 2237106 // RGB( 178, 34, 34 ) #define CLR_DARKRED 139 // RGB( 139, 0, 0 ) #define CLR_PINK 13353215 // RGB( 255, 192, 203 ) #define CLR_LIGHTPINK 12695295 // RGB( 255, 182, 193 ) #define CLR_HOTPINK 11823615 // RGB( 255, 105, 180 ) #define CLR_DEEPPINK 9639167 // RGB( 255, 20, 147 ) #define CLR_MEDIUMVIOLETRED 8721863 // RGB( 199, 21, 133 ) #define CLR_PALEVIOLETRED 9662683 // RGB( 219, 112, 147 ) #define CLR_LIGHTSALMON 8036607 // RGB( 255, 160, 122 ) #define CLR_CORAL 5275647 // RGB( 255, 127, 80 ) #define CLR_TOMATO 4678655 // RGB( 255, 99, 71 ) #define CLR_ORANGERED 17919 // RGB( 255, 69, 0 ) #define CLR_DARKORANGE 36095 // RGB( 255, 140, 0 ) #define CLR_ORANGE 42495 // RGB( 255, 165, 0 ) #define CLR_GOLD 55295 // RGB( 255, 215, 0 ) #define CLR_YELLOW 65535 // RGB( 255, 255, 0 ) #define CLR_LIGHTYELLOW 14745599 // RGB( 255, 255, 224 ) #define CLR_LEMONCHIFFON 13499135 // RGB( 255, 250, 205 ) #define CLR_LIGHTGOLDENRODYELLOW 13826810 // RGB( 250, 250, 210 ) #define CLR_PAPAYAWHIP 14020607 // RGB( 255, 239, 213 ) #define CLR_MOCCASIN 11920639 // RGB( 255, 228, 181 ) #define CLR_PEACHPUFF 12180223 // RGB( 255, 218, 185 ) #define CLR_PALEGOLDENROD 11200750 // RGB( 238, 232, 170 ) #define CLR_KHAKI 9234160 // RGB( 240, 230, 140 ) #define CLR_DARKKHAKI 7059389 // RGB( 189, 183, 107 ) #define CLR_LAVENDER 16443110 // RGB( 230, 230, 250 ) #define CLR_THISTLE 14204888 // RGB( 216, 191, 216 ) #define CLR_PLUM 14524637 // RGB( 221, 160, 221 ) #define CLR_VIOLET 15631086 // RGB( 238, 130, 238 ) #define CLR_ORCHID 14053594 // RGB( 218, 112, 214 ) #define CLR_FUCHSIA 16711935 // RGB( 255, 0, 255 ) #define CLR_MAGENTA 16711935 // RGB( 255, 0, 255 ) #define CLR_MEDIUMORCHID 13850042 // RGB( 186, 85, 211 ) #define CLR_MEDIUMPURPLE 14381203 // RGB( 147, 112, 219 ) #define CLR_BLUEVIOLET 14822282 // RGB( 138, 43, 226 ) #define CLR_DARKVIOLET 13828244 // RGB( 148, 0, 211 ) #define CLR_DARKORCHID 13382297 // RGB( 153, 50, 204 ) #define CLR_DARKMAGENTA 9109643 // RGB( 139, 0, 139 ) #define CLR_PURPLE 8388736 // RGB( 128, 0, 128 ) #define CLR_INDIGO 8519755 // RGB( 75, 0, 130 ) #define CLR_SLATEBLUE 13458026 // RGB( 106, 90, 205 ) #define CLR_DARKSLATEBLUE 9125192 // RGB( 72, 61, 139 ) #define CLR_CORNSILK 14481663 // RGB( 255, 248, 220 ) #define CLR_BLANCHEDALMOND 13495295 // RGB( 255, 235, 205 ) #define CLR_BISQUE 12903679 // RGB( 255, 228, 196 ) #define CLR_NAVAJOWHITE 11394815 // RGB( 255, 222, 173 ) #define CLR_WHEAT 11788021 // RGB( 245, 222, 179 ) #define CLR_BURLYWOOD 8894686 // RGB( 222, 184, 135 ) #define CLR_TAN 9221330 // RGB( 210, 180, 140 ) #define CLR_ROSYBROWN 9408444 // RGB( 188, 143, 143 ) #define CLR_SANDYBROWN 6333684 // RGB( 244, 164, 96 ) #define CLR_GOLDENROD 2139610 // RGB( 218, 165, 32 ) #define CLR_DARKGOLDENROD 755384 // RGB( 184, 134, 11 ) #define CLR_PERU 4163021 // RGB( 205, 133, 63 ) #define CLR_CHOCOLATE 1993170 // RGB( 210, 105, 30 ) #define CLR_SADDLEBROWN 1262987 // RGB( 139, 69, 19 ) #define CLR_SIENNA 2970272 // RGB( 160, 82, 45 ) #define CLR_BROWN 2763429 // RGB( 165, 42, 42 ) #define CLR_MAROON 128 // RGB( 128, 0, 0 ) #define CLR_BLACK 0 // RGB( 0, 0, 0 ) #define CLR_GRAY 8421504 // RGB( 128, 128, 128 ) #define CLR_SILVER 12632256 // RGB( 192, 192, 192 ) #define CLR_WHITE 16777215 // RGB( 255, 255, 255 ) #define CLR_FUCHSIA 16711935 // RGB( 255, 0, 255 ) #define CLR_PURPLE 8388736 // RGB( 128, 0, 128 ) #define CLR_RED 255 // RGB( 255, 0, 0 ) #define CLR_MAROON 128 // RGB( 128, 0, 0 ) #define CLR_YELLOW 6053069 // RGB( 205, 92, 92 ) #define CLR_OLIVE 8421616 // RGB( 240, 128, 128 ) #define CLR_LIME 7504122 // RGB( 250, 128, 114 ) #define CLR_GREEN 8034025 // RGB( 233, 150, 122 ) #define CLR_AQUA 6053069 // RGB( 205, 92, 92 ) #define CLR_TEAL 8421616 // RGB( 240, 128, 128 ) #define CLR_BLUE 7504122 // RGB( 250, 128, 114 ) #define CLR_NAVY 8034025 // RGB( 233, 150, 122 ) #define CLR_GREENYELLOW 3145645 // RGB( 173, 255, 47 ) #define CLR_CHARTREUSE 65407 // RGB( 127, 255, 0 ) #define CLR_LAWNGREEN 64636 // RGB( 124, 252, 0 ) #define CLR_LIME 65280 // RGB( 0, 255, 0 ) #define CLR_LIMEGREEN 3329330 // RGB( 50, 205, 50 ) #define CLR_PALEGREEN 10025880 // RGB( 152, 251, 152 ) #define CLR_LIGHTGREEN 9498256 // RGB( 144, 238, 144 ) #define CLR_MEDIUMSPRINGGREEN 10156544 // RGB( 0, 250, 154 ) #define CLR_SPRINGGREEN 8388352 // RGB( 0, 255, 127 ) #define CLR_MEDIUMSEAGREEN 7451452 // RGB( 60, 179, 113 ) #define CLR_SEAGREEN 5737262 // RGB( 46, 139, 87 ) #define CLR_FORESTGREEN 2263842 // RGB( 34, 139, 34 ) #define CLR_GREEN 32768 // RGB( 0, 128, 0 ) #define CLR_DARKGREEN 25600 // RGB( 0, 100, 0 ) #define CLR_YELLOWGREEN 3329434 // RGB( 154, 205, 50 ) #define CLR_OLIVEDRAB 2330219 // RGB( 107, 142, 35 ) #define CLR_OLIVE 32896 // RGB( 128, 128, 0 ) #define CLR_DARKOLIVEGREEN 3107669 // RGB( 85, 107, 47 ) #define CLR_MEDIUMAQUAMARINE 11193702 // RGB( 102, 205, 170 ) #define CLR_DARKSEAGREEN 9419919 // RGB( 143, 188, 143 ) #define CLR_LIGHTSEAGREEN 11186720 // RGB( 32, 178, 170 ) #define CLR_DARKCYAN 9145088 // RGB( 0, 139, 139 ) #define CLR_TEAL 8421376 // RGB( 0, 128, 128 ) #define CLR_AQUA 16776960 // RGB( 0, 255, 255 ) #define CLR_CYAN 16776960 // RGB( 0, 255, 255 ) #define CLR_LIGHTCYAN 16777184 // RGB( 224, 255, 255 ) #define CLR_PALETURQUOISE 15658671 // RGB( 175, 238, 238 ) #define CLR_AQUAMARINE 13959039 // RGB( 127, 255, 212 ) #define CLR_TURQUOISE 13688896 // RGB( 64, 224, 208 ) #define CLR_MEDIUMTURQUOISE 13422920 // RGB( 72, 209, 204 ) #define CLR_DARKTURQUOISE 13749760 // RGB( 0, 206, 209 ) #define CLR_CADETBLUE 10526303 // RGB( 95, 158, 160 ) #define CLR_STEELBLUE 11829830 // RGB( 70, 130, 180 ) #define CLR_LIGHTSTEELBLUE 14599344 // RGB( 176, 196, 222 ) #define CLR_POWDERBLUE 15130800 // RGB( 176, 224, 230 ) #define CLR_LIGHTBLUE 15128749 // RGB( 173, 216, 230 ) #define CLR_SKYBLUE 15453831 // RGB( 135, 206, 235 ) #define CLR_LIGHTSKYBLUE 16436871 // RGB( 135, 206, 250 ) #define CLR_DEEPSKYBLUE 16760576 // RGB( 0, 191, 255 ) #define CLR_DODGERBLUE 16748574 // RGB( 30, 144, 255 ) #define CLR_CORNFLOWERBLUE 15570276 // RGB( 100, 149, 237 ) #define CLR_MEDIUMSLATEBLUE 15624315 // RGB( 123, 104, 238 ) #define CLR_ROYALBLUE 14772545 // RGB( 65, 105, 225 ) #define CLR_BLUE 16711680 // RGB( 0, 0, 255 ) #define CLR_MEDIUMBLUE 13434880 // RGB( 0, 0, 205 ) #define CLR_DARKBLUE 9109504 // RGB( 0, 0, 139 ) #define CLR_NAVY 8388608 // RGB( 0, 0, 128 ) #define CLR_MIDNIGHTBLUE 7346457 // RGB( 25, 25, 112 ) #define CLR_WHITE 16777215 // RGB( 255, 255, 255 ) #define CLR_SNOW 16448255 // RGB( 255, 250, 250 ) #define CLR_HONEYDEW 15794160 // RGB( 240, 255, 240 ) #define CLR_MINTCREAM 16449525 // RGB( 245, 255, 250 ) #define CLR_AZURE 16777200 // RGB( 240, 255, 255 ) #define CLR_ALICEBLUE 16775408 // RGB( 240, 248, 255 ) #define CLR_GHOSTWHITE 16775416 // RGB( 248, 248, 255 ) #define CLR_WHITESMOKE 16119285 // RGB( 245, 245, 245 ) #define CLR_SEASHELL 15660543 // RGB( 255, 245, 238 ) #define CLR_BEIGE 14480885 // RGB( 245, 245, 220 ) #define CLR_OLDLACE 15136253 // RGB( 253, 245, 230 ) #define CLR_FLORALWHITE 15792895 // RGB( 255, 250, 240 ) #define CLR_IVORY 15794175 // RGB( 255, 255, 240 ) #define CLR_ANTIQUEWHITE 14150650 // RGB( 250, 235, 215 ) #define CLR_LINEN 15134970 // RGB( 250, 240, 230 ) #define CLR_LAVENDERBLUSH 16118015 // RGB( 255, 240, 245 ) #define CLR_MISTYROSE 14804223 // RGB( 255, 228, 225 ) #define CLR_GAINSBORO 14474460 // RGB( 220, 220, 220 ) #define CLR_LIGHTGREY 13882323 // RGB( 211, 211, 211 ) #define CLR_LIGHTGRAY 13882323 // RGB( 211, 211, 211 ) #define CLR_SILVER 12632256 // RGB( 192, 192, 192 ) #define CLR_DARKGRAY 11119017 // RGB( 169, 169, 169 ) #define CLR_DARKGREY 11119017 // RGB( 169, 169, 169 ) #define CLR_GRAY 8421504 // RGB( 128, 128, 128 ) #define CLR_GREY 8421504 // RGB( 128, 128, 128 ) #define CLR_DIMGRAY 6908265 // RGB( 105, 105, 105 ) #define CLR_DIMGREY 6908265 // RGB( 105, 105, 105 ) #define CLR_LIGHTSLATEGRAY 10061943 // RGB( 119, 136, 153 ) #define CLR_LIGHTSLATEGREY 10061943 // RGB( 119, 136, 153 ) #define CLR_SLATEGRAY 9470064 // RGB( 112, 128, 144 ) #define CLR_SLATEGREY 9470064 // RGB( 112, 128, 144 ) #define CLR_DARKSLATEGRAY 5197615 // RGB( 47, 79, 79 ) #define CLR_DARKSLATEGREY 5197615 // RGB( 47, 79, 79 ) #define CLR_BLACK 0 // RGB( 0, 0, 0 ) #define HEX_INDIANRED #CD5C5C // RGB( 205, 92, 92 ) #define HEX_LIGHTCORAL #F08080 // RGB( 240, 128, 128 ) #define HEX_SALMON #FA8072 // RGB( 250, 128, 114 ) #define HEX_DARKSALMON #E9967A // RGB( 233, 150, 122 ) #define HEX_LIGHTSALMON #FFA07A // RGB( 255, 160, 122 ) #define HEX_CRIMSON #DC143C // RGB( 220, 20, 60 ) #define HEX_RED #FF0000 // RGB( 255, 0, 0 ) #define HEX_FIREBRICK #B22222 // RGB( 178, 34, 34 ) #define HEX_DARKRED #8B0000 // RGB( 139, 0, 0 ) #define HEX_PINK #FFC0CB // RGB( 255, 192, 203 ) #define HEX_LIGHTPINK #FFB6C1 // RGB( 255, 182, 193 ) #define HEX_HOTPINK #FF69B4 // RGB( 255, 105, 180 ) #define HEX_DEEPPINK #FF1493 // RGB( 255, 20, 147 ) #define HEX_MEDIUMVIOLETRED #C71585 // RGB( 199, 21, 133 ) #define HEX_PALEVIOLETRED #DB7093 // RGB( 219, 112, 147 ) #define HEX_LIGHTSALMON #FFA07A // RGB( 255, 160, 122 ) #define HEX_CORAL #FF7F50 // RGB( 255, 127, 80 ) #define HEX_TOMATO #FF6347 // RGB( 255, 99, 71 ) #define HEX_ORANGERED #FF4500 // RGB( 255, 69, 0 ) #define HEX_DARKORANGE #FF8C00 // RGB( 255, 140, 0 ) #define HEX_ORANGE #FFA500 // RGB( 255, 165, 0 ) #define HEX_GOLD #FFD700 // RGB( 255, 215, 0 ) #define HEX_YELLOW #FFFF00 // RGB( 255, 255, 0 ) #define HEX_LIGHTYELLOW #FFFFE0 // RGB( 255, 255, 224 ) #define HEX_LEMONCHIFFON #FFFACD // RGB( 255, 250, 205 ) #define HEX_LIGHTGOLDENRODYELLOW #FAFAD2 // RGB( 250, 250, 210 ) #define HEX_PAPAYAWHIP #FFEFD5 // RGB( 255, 239, 213 ) #define HEX_MOCCASIN #FFE4B5 // RGB( 255, 228, 181 ) #define HEX_PEACHPUFF #FFDAB9 // RGB( 255, 218, 185 ) #define HEX_PALEGOLDENROD #EEE8AA // RGB( 238, 232, 170 ) #define HEX_KHAKI #F0E68C // RGB( 240, 230, 140 ) #define HEX_DARKKHAKI #BDB76B // RGB( 189, 183, 107 ) #define HEX_LAVENDER #E6E6FA // RGB( 230, 230, 250 ) #define HEX_THISTLE #D8BFD8 // RGB( 216, 191, 216 ) #define HEX_PLUM #DDA0DD // RGB( 221, 160, 221 ) #define HEX_VIOLET #EE82EE // RGB( 238, 130, 238 ) #define HEX_ORCHID #DA70D6 // RGB( 218, 112, 214 ) #define HEX_FUCHSIA #FF00FF // RGB( 255, 0, 255 ) #define HEX_MAGENTA #FF00FF // RGB( 255, 0, 255 ) #define HEX_MEDIUMORCHID #BA55D3 // RGB( 186, 85, 211 ) #define HEX_MEDIUMPURPLE #9370DB // RGB( 147, 112, 219 ) #define HEX_BLUEVIOLET #8A2BE2 // RGB( 138, 43, 226 ) #define HEX_DARKVIOLET #9400D3 // RGB( 148, 0, 211 ) #define HEX_DARKORCHID #9932CC // RGB( 153, 50, 204 ) #define HEX_DARKMAGENTA #8B008B // RGB( 139, 0, 139 ) #define HEX_PURPLE #800080 // RGB( 128, 0, 128 ) #define HEX_INDIGO #4B0082 // RGB( 75, 0, 130 ) #define HEX_SLATEBLUE #6A5ACD // RGB( 106, 90, 205 ) #define HEX_DARKSLATEBLUE #483D8B // RGB( 72, 61, 139 ) #define HEX_CORNSILK #FFF8DC // RGB( 255, 248, 220 ) #define HEX_BLANCHEDALMOND #FFEBCD // RGB( 255, 235, 205 ) #define HEX_BISQUE #FFE4C4 // RGB( 255, 228, 196 ) #define HEX_NAVAJOWHITE #FFDEAD // RGB( 255, 222, 173 ) #define HEX_WHEAT #F5DEB3 // RGB( 245, 222, 179 ) #define HEX_BURLYWOOD #DEB887 // RGB( 222, 184, 135 ) #define HEX_TAN #D2B48C // RGB( 210, 180, 140 ) #define HEX_ROSYBROWN #BC8F8F // RGB( 188, 143, 143 ) #define HEX_SANDYBROWN #F4A460 // RGB( 244, 164, 96 ) #define HEX_GOLDENROD #DAA520 // RGB( 218, 165, 32 ) #define HEX_DARKGOLDENROD #B8860B // RGB( 184, 134, 11 ) #define HEX_PERU #CD853F // RGB( 205, 133, 63 ) #define HEX_CHOCOLATE #D2691E // RGB( 210, 105, 30 ) #define HEX_SADDLEBROWN #8B4513 // RGB( 139, 69, 19 ) #define HEX_SIENNA #A0522D // RGB( 160, 82, 45 ) #define HEX_BROWN #A52A2A // RGB( 165, 42, 42 ) #define HEX_MAROON #800000 // RGB( 128, 0, 0 ) #define HEX_BLACK #000000 // RGB( 0, 0, 0 ) #define HEX_GRAY #808080 // RGB( 128, 128, 128 ) #define HEX_SILVER #C0C0C0 // RGB( 192, 192, 192 ) #define HEX_WHITE #FFFFFF // RGB( 255, 255, 255 ) #define HEX_FUCHSIA #FF00FF // RGB( 255, 0, 255 ) #define HEX_PURPLE #800080 // RGB( 128, 0, 128 ) #define HEX_RED #FF0000 // RGB( 255, 0, 0 ) #define HEX_MAROON #800000 // RGB( 128, 0, 0 ) #define HEX_YELLOW #FFFF00 // RGB( 205, 92, 92 ) #define HEX_OLIVE #808000 // RGB( 240, 128, 128 ) #define HEX_LIME #00FF00 // RGB( 250, 128, 114 ) #define HEX_GREEN #008000 // RGB( 233, 150, 122 ) #define HEX_AQUA #00FFFF // RGB( 205, 92, 92 ) #define HEX_TEAL #008080 // RGB( 240, 128, 128 ) #define HEX_BLUE #0000FF // RGB( 250, 128, 114 ) #define HEX_NAVY #000080 // RGB( 233, 150, 122 ) #define HEX_GREENYELLOW #ADFF2F // RGB( 173, 255, 47 ) #define HEX_CHARTREUSE #7FFF00 // RGB( 127, 255, 0 ) #define HEX_LAWNGREEN #7CFC00 // RGB( 124, 252, 0 ) #define HEX_LIME #00FF00 // RGB( 0, 255, 0 ) #define HEX_LIMEGREEN #32CD32 // RGB( 50, 205, 50 ) #define HEX_PALEGREEN #98FB98 // RGB( 152, 251, 152 ) #define HEX_LIGHTGREEN #90EE90 // RGB( 144, 238, 144 ) #define HEX_MEDIUMSPRINGGREEN #00FA9A // RGB( 0, 250, 154 ) #define HEX_SPRINGGREEN #00FF7F // RGB( 0, 255, 127 ) #define HEX_MEDIUMSEAGREEN #3CB371 // RGB( 60, 179, 113 ) #define HEX_SEAGREEN #2E8B57 // RGB( 46, 139, 87 ) #define HEX_FORESTGREEN #228B22 // RGB( 34, 139, 34 ) #define HEX_GREEN #008000 // RGB( 0, 128, 0 ) #define HEX_DARKGREEN #006400 // RGB( 0, 100, 0 ) #define HEX_YELLOWGREEN #9ACD32 // RGB( 154, 205, 50 ) #define HEX_OLIVEDRAB #6B8E23 // RGB( 107, 142, 35 ) #define HEX_OLIVE #808000 // RGB( 128, 128, 0 ) #define HEX_DARKOLIVEGREEN #556B2F // RGB( 85, 107, 47 ) #define HEX_MEDIUMAQUAMARINE #66CDAA // RGB( 102, 205, 170 ) #define HEX_DARKSEAGREEN #8FBC8F // RGB( 143, 188, 143 ) #define HEX_LIGHTSEAGREEN #20B2AA // RGB( 32, 178, 170 ) #define HEX_DARKCYAN #008B8B // RGB( 0, 139, 139 ) #define HEX_TEAL #008080 // RGB( 0, 128, 128 ) #define HEX_AQUA #00FFFF // RGB( 0, 255, 255 ) #define HEX_CYAN #00FFFF // RGB( 0, 255, 255 ) #define HEX_LIGHTCYAN #E0FFFF // RGB( 224, 255, 255 ) #define HEX_PALETURQUOISE #AFEEEE // RGB( 175, 238, 238 ) #define HEX_AQUAMARINE #7FFFD4 // RGB( 127, 255, 212 ) #define HEX_TURQUOISE #40E0D0 // RGB( 64, 224, 208 ) #define HEX_MEDIUMTURQUOISE #48D1CC // RGB( 72, 209, 204 ) #define HEX_DARKTURQUOISE #00CED1 // RGB( 0, 206, 209 ) #define HEX_CADETBLUE #5F9EA0 // RGB( 95, 158, 160 ) #define HEX_STEELBLUE #4682B4 // RGB( 70, 130, 180 ) #define HEX_LIGHTSTEELBLUE #B0C4DE // RGB( 176, 196, 222 ) #define HEX_POWDERBLUE #B0E0E6 // RGB( 176, 224, 230 ) #define HEX_LIGHTBLUE #ADD8E6 // RGB( 173, 216, 230 ) #define HEX_SKYBLUE #87CEEB // RGB( 135, 206, 235 ) #define HEX_LIGHTSKYBLUE #87CEFA // RGB( 135, 206, 250 ) #define HEX_DEEPSKYBLUE #00BFFF // RGB( 0, 191, 255 ) #define HEX_DODGERBLUE #1E90FF // RGB( 30, 144, 255 ) #define HEX_CORNFLOWERBLUE #6495ED // RGB( 100, 149, 237 ) #define HEX_MEDIUMSLATEBLUE #7B68EE // RGB( 123, 104, 238 ) #define HEX_ROYALBLUE #4169E1 // RGB( 65, 105, 225 ) #define HEX_BLUE #0000FF // RGB( 0, 0, 255 ) #define HEX_MEDIUMBLUE #0000CD // RGB( 0, 0, 205 ) #define HEX_DARKBLUE #00008B // RGB( 0, 0, 139 ) #define HEX_NAVY #000080 // RGB( 0, 0, 128 ) #define HEX_MIDNIGHTBLUE #191970 // RGB( 25, 25, 112 ) #define HEX_WHITE #FFFFFF // RGB( 255, 255, 255 ) #define HEX_SNOW #FFFAFA // RGB( 255, 250, 250 ) #define HEX_HONEYDEW #F0FFF0 // RGB( 240, 255, 240 ) #define HEX_MINTCREAM #F5FFFA // RGB( 245, 255, 250 ) #define HEX_AZURE #F0FFFF // RGB( 240, 255, 255 ) #define HEX_ALICEBLUE #F0F8FF // RGB( 240, 248, 255 ) #define HEX_GHOSTWHITE #F8F8FF // RGB( 248, 248, 255 ) #define HEX_WHITESMOKE #F5F5F5 // RGB( 245, 245, 245 ) #define HEX_SEASHELL #FFF5EE // RGB( 255, 245, 238 ) #define HEX_BEIGE #F5F5DC // RGB( 245, 245, 220 ) #define HEX_OLDLACE #FDF5E6 // RGB( 253, 245, 230 ) #define HEX_FLORALWHITE #FFFAF0 // RGB( 255, 250, 240 ) #define HEX_IVORY #FFFFF0 // RGB( 255, 255, 240 ) #define HEX_ANTIQUEWHITE #FAEBD7 // RGB( 250, 235, 215 ) #define HEX_LINEN #FAF0E6 // RGB( 250, 240, 230 ) #define HEX_LAVENDERBLUSH #FFF0F5 // RGB( 255, 240, 245 ) #define HEX_MISTYROSE #FFE4E1 // RGB( 255, 228, 225 ) #define HEX_GAINSBORO #DCDCDC // RGB( 220, 220, 220 ) #define HEX_LIGHTGREY #D3D3D3 // RGB( 211, 211, 211 ) #define HEX_LIGHTGRAY #D3D3D3 // RGB( 211, 211, 211 ) #define HEX_SILVER #C0C0C0 // RGB( 192, 192, 192 ) #define HEX_DARKGRAY #A9A9A9 // RGB( 169, 169, 169 ) #define HEX_DARKGREY #A9A9A9 // RGB( 169, 169, 169 ) #define HEX_GRAY #808080 // RGB( 128, 128, 128 ) #define HEX_GREY #808080 // RGB( 128, 128, 128 ) #define HEX_DIMGRAY #696969 // RGB( 105, 105, 105 ) #define HEX_DIMGREY #696969 // RGB( 105, 105, 105 ) #define HEX_LIGHTSLATEGRAY #778899 // RGB( 119, 136, 153 ) #define HEX_LIGHTSLATEGREY #778899 // RGB( 119, 136, 153 ) #define HEX_SLATEGRAY #708090 // RGB( 112, 128, 144 ) #define HEX_SLATEGREY #708090 // RGB( 112, 128, 144 ) #define HEX_DARKSLATEGRAY #2F4F4F // RGB( 47, 79, 79 ) #define HEX_DARKSLATEGREY #2F4F4F // RGB( 47, 79, 79 ) #define HEX_BLACK #000000 // RGB( 0, 0, 0 ) [/pre2]

ММК: Andrey пишет: Вот я и не смог сделать свою dll-ку на МиниГуи вообще .... Не получается... А зачем? Что это дает?

Andrey: А зачем? Что это дает? 1) Чтобы уметь так же делать. 2) Разбить свой проект на части и неизменяемые программы держать в dll-ке. У некоторых юзеров слабый инет, качать приходиться много, ехе-ник весит 18 мб.



полная версия страницы