(* > Does somebody know how to get correct colors in a view. > That is: Exactly the colors I want to specify without mapping > on the colors of the views owner? Now you're getting even more complicated than the actual method of doing it. (as if that wasn't complicated enough!) The BP7 Turbo Vision Guide (and I'll assume the TP7 TVGuide as well) do a much better job at explaning the palette's that the TP6 version. The colors are not as much maps, as they are indexes. Only the TProgram Object actual contains any color codes. TApplication, by design, inherits that palette as is. Any inserted views palette will contain a String of indexes into that palette. There are a couple of ways to customize your colors. Either adjust where your current views index points to, or adjust the actual applications palette. > The manual says that such is done to get "decent colors". But the > problem is that defining what should be "decent" is to the Programmer, > not to the designer of a compiler :-) > How to get just Absolute colors in a view, thats the question. The easiest method I've found For adjusting colors, is directly adjusting the actual TApllications GetPalette Method. Function TMyApp.GetPalette:PPalette; Const P: Array[apColor..apMonochrome] of String[Length(CColor)] = (CColor, CBlackWhite, CMonochrome); begin p[apcolor,1] := #$1A; {background} p[apcolor,2] := #$1F; {normal Text} p[apcolor,33] := #$74; {tdialog frame active} p[apcolor,51] := #$1B; {inputline selected} p[apcolor,56] := #$4F; {history Window scrollbar control} getpalette := @p[apppalette]; end; This lets you change and adjust your entire pallete, and have those changes reflected throughout your entire application... Just consult your TVGuide to find the offset into the String of the item you want to change. Heres a nifty Program to display all the colors available, and what they look like (not only tested.. but used quite a bit!) : *) Program Colourtest; Uses Crt; Type str2 = String[2]; Var i, y, x, TA : Byte; Function Hexit(w : Byte) : str2; Const Letr : String[16] = '0123456789ABCDEF'; begin Hexit := Letr[w shr 4 + 1] + Letr[w and $0F + 1]; end; begin TA := TextAttr ; ClrScr; For y := 0 to 7 do begin GotoXY(1, y + 5); For i := 0 to 15 do begin TextAttr := y * 16 + i; Write('[', Hexit(TextAttr), ']'); end; end; Writeln; Writeln; GotoXY(1, 15); Textattr := TA; Write(' For '); Textattr := TA or $80; Write(' Flashing '); Textattr := TA; Writeln('Attribute : Color = Color or $80'); Writeln; Write(' Press any key to quit : '); ReadKey; ClrScr; end.