Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.03 c
15-1150485086
X9
2006-06-16 23:11
2006.07.16
Гигабитная сеть


2-1151489711
0bsid
2006-06-28 14:15
2006.07.16
фокус ввода


2-1151397808
learner
2006-06-27 12:43
2006.07.16
Как можно прервать ожидание функции ConnectNamedPipe ?


15-1150386238
kaif
2006-06-15 19:43
2006.07.16
Футбол. Наемники. Кто как относится к этой практике?


2-1151395315
312Kbps
2006-06-27 12:01
2006.07.16
Диалог ввода даты !