Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизКак закрасить в какой то свет вертикальную полосу прокрутки? Найти похожие ветки
← →
Марина (2006-06-25 10:42) [0]Как закрасить в какой то цвет вертикальную полосу прокрутки у StringGrid ??
← →
Марина (2006-06-25 10:42) [1]цвет то есть* ))
← →
PZ (2006-06-25 11:04) [2]казнить нельзя помиловать
← →
Марина (2006-06-25 20:40) [3]Прикольно помогли.. уже в который раз. Тока не в тему писать умеете....
Ясно, спасибо блин.
мастера...
← →
Ketmar © (2006-06-25 21:11) [4]кисточкой.
← →
Пусик © (2006-06-25 22:38) [5]Кто-то из вас может в течение 5 минут найти решение?
← →
Пусик © (2006-06-25 22:40) [6]Кто-то из вас может в течение 5 минут найти решение?
← →
Noname27 (2006-06-25 22:41) [7]У меня имеется только одна идея: написать наследника и перехватывать сообщение WM_Paint. Стандарт :)
← →
sniknik © (2006-06-25 22:50) [8]> Кто-то из вас может в течение 5 минут найти решение?
только увидел...
решение: поставь цветовую схему в виндах с нужным цветом в полоске прокрутки... настройка системная, поменяется везде, и в StringGrid тоже.
← →
Пусик © (2006-06-25 22:57) [9]> решение: поставь цветовую схему в виндах с нужным цветом
> в полоске прокрутки...
Это да. Но вряд ли автору подойдет.
Скорее всего, решение весьма сложно для реализации, ин овичку с ним не справиться.
← →
Шпиён (2006-06-25 22:58) [10]
> sniknik © (25.06.06 22:50) [8]
"Нормальные герои всегда идут в обход" (с)
А если серьезно, вопрос не такой уж простой... IMHO
← →
Шпиён (2006-06-26 00:54) [11]Закрасить Background можно. (но не "бегунок" и кнопки прокрутки)
Тут есть два варианта.
1) использовать FlatScrollBar
(uses ...FlatSB, CommCtrl;)
Копать в сторону MSDN: Flat Scroll Bars
2)
Отключить ScrollBar, "прикрутить" к StringGrid ChildScrollBar, перехватывать и обрабатывать сообщение WM_CTLCOLORSCROLLBAR.
За подробностями - опять же в MSDN: WM_CTLCOLORSCROLLBAR
The WM_CTLCOLORSCROLLBAR message is used only by child scrollbar controls. Scrollbars attached to a window (WS_SCROLL and WS_VSCROLL) do not generate this message.To customize the appearance of scrollbars attached to a window, use the flat scroll bar functions
← →
Шпиён (2006-06-26 03:57) [12]Набросок кода (драфт):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CommCtrl, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
pos:integer;
WProc:Pointer;
function NewWndProc(Handle:hWND; Msg,wParam,LParam:LongInt):LongInt;stdcall;
implementation
{$R *.dfm}
function NewWndProc(Handle:hWND; Msg,wParam,LParam:LOngInt):LongInt;
begin
if Msg=WM_VSCROLL then
begin
if (LoWord(WParam)=SB_THUMBPOSITION) then
Pos:=HiWord(WParam);
if LoWord(WParam)=SB_ENDSCROLL then
FlatSB_SetScrollPos(Handle, SB_VERT,Pos,True);
end;
Result:=CallWindowProc(WProc,Handle,Msg,wParam,lParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with StringGrid1 do
begin
ScrollBars:=ssNone;
InitializeFlatSB(Handle);
FlatSB_EnableScrollBar(Handle,SB_VERT,ESB_ENABLE_BOTH);
FlatSB_SetScrollRange(Handle,SB_VERT,0,100,False);
FlatSB_SetScrollProp(Handle,WSB_PROP_VSTYLE,FSB_REGULAR_MODE,False);
FlatSB_SetScrollProp(Handle,WSB_PROP_VBKGCOLOR,clGreen,False);
FlatSB_ShowScrollBar(Handle,SB_VERT,True);
WProc:=Pointer(SetWindowLong(Handle,GWL_WNDPROC,Integer(@NewWndProc)));
end;
end;
Поправки и новые идеи приветствуются -)
Реакцию на прокрутку колесиком мыши и прочие тонкости не делал и (в данном примере) не буду.
← →
Шпиён (2006-06-26 04:14) [13]Кстати, для формы все делается намного проще, требуется только
uses ...... CommCtrl;
............
procedure TForm1.FormCreate(Sender: TObject);
begin
InitializeFlatSB(Handle);
.........
Все остальное можно настраиваеть в инспекторе объектов -)
← →
aral3@zin.ru (2006-06-26 10:15) [14]Читаем эту статью:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1032
← →
имя (2006-06-26 11:10) [15]Удалено модератором
← →
Шпиён (2006-06-26 11:16) [16]> aral3@zin.ru (26.06.06 10:15) [14]
В статье не учтена одна маленькая подробность - сообщение WM_CTLCOLORSCROLLBAR используется только дочерними скроллбарами, поэтому решение применимо не "на все случаи жизни".
> The WM_CTLCOLORSCROLLBAR message is used only by child scrollbar
> controls. Scrollbars attached to a window (WS_SCROLL and
> WS_VSCROLL) do not generate this message.To customize the
> appearance of scrollbars attached to a window, use the flat
> scroll bar functions
← →
Gero © (2006-06-26 11:21) [17]> Как закрасить в какой то цвет вертикальную полосу прокрутки
> у StringGrid ??
А зачем?
← →
Пусик © (2006-06-26 11:41) [18]> А зачем?
"Хороший понт дороже денег"
← →
Noname27 (2006-06-26 15:45) [19]Удалено модератором
Примечание: Offtopic
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.009 c