<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1729640</guid>
        <pubDate>Mon, 15 Oct 2007 05:34:01 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1729640</link>
        <description><![CDATA[Rouse_: Можешь его выкинуть и отключить код отрисовки с темами...]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1727777</guid>
        <pubDate>Fri, 12 Oct 2007 15:10:44 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1727777</link>
        <description><![CDATA[Gonarh: я так понял юзаешь д7 или выше, нету модуля Themes,<br>можешь кинуть?]]></description>
        <author>Gonarh</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725352</guid>
        <pubDate>Thu, 11 Oct 2007 05:23:50 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725352</link>
        <description><![CDATA[Rouse_: Форма, стиль выставлен таким образом чтобы появились боковые скроллы у формы. Далее пишется вот такой код, который помещает кнопку на пересечении двух сткроллов. Модифицируй его чтобы перерисовывал и область со скролами:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit26;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, ExtCtrls, StdCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm26 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Panel1: TPanel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Button1: TButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormResize(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;Btn : TRect;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FButtonDown, FButtonHot: Boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure DrawButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPaint;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCActivate(var Msg : TWMNCActivate); message WM_NCACTIVATE;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMSetText(var Msg : TWMSetText); message WM_SETTEXT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCHitTest(var Msg : TWMNCHitTest); message WM_NCHITTEST;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCLButtonDown(var Msg : TWMNCLButtonDown); message WM_NCLBUTTONDOWN;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCLButtonUp(var Msg : TWMNCLButtonUp); message WM_NCLBUTTONUP;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure WMNCmouseMove(var Msg : TWMNCMouseMove); message WM_NCMOUSEMOVE;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form26: TForm26;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Themes, Buttons, Types;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;htCaptionBtn = htSizeLast + 1;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.DrawButton;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;FrameWidth,</div><div class="code_line">&nbsp;&nbsp;FrameHeight,</div><div class="code_line">&nbsp;&nbsp;BtnWidth,</div><div class="code_line">&nbsp;&nbsp;BtnHeight &nbsp;: Integer;</div><div class="code_line">&nbsp;&nbsp;TmpCanvas: TCanvas;</div><div class="code_line">&nbsp;&nbsp;BtnCaption: String;</div><div class="code_line">&nbsp;&nbsp;Details: TThemedElementDetails;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;FrameWidth := GetSystemMetrics(SM_CXBORDER);</div><div class="code_line">&nbsp;&nbsp;FrameHeight := GetSystemMetrics(SM_CYBORDER);</div><div class="code_line">&nbsp;&nbsp;// Смотрим - какого размера должна быть кнопка</div><div class="code_line">&nbsp;&nbsp;BtnWidth &nbsp;:= GetSystemMetrics(SM_CXHSCROLL);</div><div class="code_line">&nbsp;&nbsp;BtnHeight &nbsp;:= GetSystemMetrics(SM_CYHSCROLL);</div><div class="code_line">&nbsp;&nbsp;// Определяем позицию новой кнопки</div><div class="code_line">&nbsp;&nbsp;Btn := Bounds(Width - BtnWidth - FrameWidth - 4,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Height - BtnHeight - FrameHeight - 4, BtnWidth, BtnHeight);</div><div class="code_line">&nbsp;&nbsp;TmpCanvas := TCanvas.Create;</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Получаем ссылку на канвас всего окна</div><div class="code_line">&nbsp;&nbsp; &nbsp;// (Form.Canvas - указывает на канвас только клиентской области)</div><div class="code_line">&nbsp;&nbsp; &nbsp;TmpCanvas.Handle := GetWindowDC(Handle);</div><div class="code_line">&nbsp;&nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TmpCanvas.Font.Color := clBlue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TmpCanvas.Font.Style := [fsBold];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TmpCanvas.Pen.Color := clYellow;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TmpCanvas.Brush.Color := clBtnFace;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// Отрисовка кнопки в случае если используются темы Windows</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if ThemeServices.ThemesEnabled and (not(csDesigning in ComponentState)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if FButtonDown then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Details := ThemeServices.GetElementDetails(tbPushButtonPressed)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if FButtonHot then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Details := ThemeServices.GetElementDetails(tbPushButtonHot)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Details := ThemeServices.GetElementDetails(tbPushButtonNormal);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ThemeServices.DrawElement(TmpCanvas.Handle, Details, Btn);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin // А так рисуем если темы отсутствуют</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Рисуем кнопку</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DrawButtonFace(TmpCanvas, Btn, 1, bsAutoDetect, False, FButtonDown, False);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// Определяем координаты текста на ней</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BtnCaption := &#39;Z&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Btn.Left := Btn.Left +</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;((Btn.Right - Btn.Left - TmpCanvas.TextWidth(BtnCaption)) div 2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Btn.Top := Btn.Top +</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;((Btn.Bottom - Btn.Top - TmpCanvas.TextHeight(BtnCaption)) div 2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// рисуем текст</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TmpCanvas.Brush.Style := bsClear;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;with Btn do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TmpCanvas.TextRect(Btn, Left, Top, BtnCaption);</div><div class="code_line">&nbsp;&nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ReleaseDC(Handle, TmpCanvas.Handle);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;TmpCanvas.Free;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.FormCreate(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;FButtonDown := False;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.FormResize(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Perform(WM_NCACTIVATE, Word(Active), 0);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCActivate(var Msg: TWMNCActivate);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;DrawButton;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCHitTest(var Msg: TWMNCHitTest);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;with Msg do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;FButtonHot := PtInRect(Btn, Point(XPos - Left, YPos - Top));</div><div class="code_line">&nbsp;&nbsp; &nbsp;if FButtonHot then Result := htCaptionBtn;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCLButtonDown(var Msg: TWMNCLButtonDown);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;if (Msg.HitTest = htCaptionBtn) then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;FButtonDown := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp;DrawButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Тут добавить обработку нажатия кнопки</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCLButtonUp(var Msg: TWMNCLButtonUp);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;FButtonDown := False;</div><div class="code_line">&nbsp;&nbsp;DrawButton;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCmouseMove(var Msg: TWMNCMouseMove);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;with Msg do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;FButtonHot := PtInRect(Btn, Point(XCursor - Left, YCursor - Top));</div><div class="code_line">&nbsp;&nbsp; &nbsp;DrawButton;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMNCPaint(var Msg: TWMNCPaint);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;DrawButton;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm26.WMSetText(var Msg: TWMSetText);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp;DrawButton;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725067</guid>
        <pubDate>Wed, 10 Oct 2007 18:37:06 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725067</link>
        <description><![CDATA[Gonarh: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '> как обычно - перехватом WM_NCPAINT</div></div><br>
примерчик мона?]]></description>
        <author>Gonarh</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725039</guid>
        <pubDate>Wed, 10 Oct 2007 17:45:02 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725039</link>
        <description><![CDATA[Rouse_: как обычно - перехватом WM_NCPAINT]]></description>
        <author>Rouse_</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725017</guid>
        <pubDate>Wed, 10 Oct 2007 17:17:33 +0000</pubDate>
        <title>как покрасить скроллбары в TDBGrid?</title>
        <link>https://forum.sources.ru/index.php?showtopic=206311&amp;view=findpost&amp;p=1725017</link>
        <description><![CDATA[Gonarh: сабж...]]></description>
        <author>Gonarh</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	