Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

Как закрасить в какой то свет вертикальную полосу прокрутки?   Найти похожие ветки 

 
Марина   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.01 c
15-1150456037
aka
2006-06-16 15:07
2006.07.16
about Com


15-1149952790
Змей:)
2006-06-10 19:19
2006.07.16
Кто знает как сделать воздушного змея?


2-1151252255
JTAG
2006-06-25 20:17
2006.07.16
Сделал иконку в Image Editor, подскажите плз, как сделать


6-1142177492
JaDS
2006-03-12 18:31
2006.07.16
Открыть чужой сокет


4-1144308799
Temniy
2006-04-06 11:33
2006.07.16
Многооконные приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский