<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[My Visual Database — [Скрипт] Полосатый TableGrid]]></title>
		<link>https://myvisualdatabase.com/forum/viewtopic.php?id=1087</link>
		<atom:link href="https://myvisualdatabase.com/forum/extern.php?action=feed&amp;tid=1087&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in [Скрипт] Полосатый TableGrid.]]></description>
		<lastBuildDate>Thu, 26 May 2022 11:25:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=44827#p44827</link>
			<description><![CDATA[<p>Спасибо за наводку, я сам виноват что не додумался.</p><p>Для обработчика OnAfterSort надо свою функцию делать, с большим количеством аргументов, а я прописывал то же самое то и для OnChange т.е. frmMain_gridOrders_OnChange.</p>]]></description>
			<author><![CDATA[null@example.com (0anion0)]]></author>
			<pubDate>Thu, 26 May 2022 11:25:01 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=44827#p44827</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=44826#p44826</link>
			<description><![CDATA[<p>вы так и не показали скрипт вызова ColorRowGrid() из обработчика OnAfterSort(). Боюсь, что вашего словесного описания недостаточно для поиска причины ошибки....</p><br /><p>И ещё: если вы использовали <strong>BeginUpdate</strong> то нужен также <strong>EndUpdate()</strong> после завершения изменений грида. И я бы избавился от переменных c и q.</p><div class="codebox"><pre><code>procedure ColorRowGrid (Grid:TdbStringGridEx;ColorEven,ColorOdd:TColor);
//Grid - Таблица для раскрашивания (Form1.TableGrid1)
//ColorEven - цвет четных строк
//ColorOdd - цвет нечетных строк
var
  iRow: integer;
  iCol: integer;
begin
   Grid.BeginUpdate;
   for iRow := 0 to Grid.RowCount - 1 do
      for iCol := 0 to Grid.Columns.Count-1 do
      begin
         if iRow mod 2 = 0 then 
           Grid.Cell[iCol,iRow].Color := ColorEven
         else
           Grid.Cell[iCol,iRow].Color := ColorOdd;
      end;
  Grid.EndUpdate;
end;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (k245)]]></author>
			<pubDate>Thu, 26 May 2022 10:52:06 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=44826#p44826</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=44825#p44825</link>
			<description><![CDATA[<p>Да, функцию вызываю из событий OnChange и OnAfterSort:</p><div class="codebox"><pre><code>procedure frmMain_gridOrders_OnChange (Sender: string);
begin
  ColorRowGrid(frmMain.gridOrders,clBtnFace,clYellow);
end;</code></pre></div><p>Которая в свою очередь вызывает<br /></p><div class="codebox"><pre><code>procedure ColorRowGrid (Grid:TdbStringGridEx;ColorEven,ColorOdd:TColor);
//Grid - Таблица для раскрашивания (Form1.TableGrid1)
//ColorEven - цвет четных строк
//ColorOdd - цвет нечетных строк
var
   iRow ,c: integer;
   q, iCol: integer;
begin
    Grid.BeginUpdate;
    c := Grid.RowCount - 1;
    q := Grid.Columns.Count-1;
    for iRow := 0 to c do
        for iCol := 0 to q do
        begin
            if iRow mod 2 = 0 then Grid.Cell[iCol,iRow].Color := ColorEven
            else
            Grid.Cell[iCol,iRow].Color := ColorOdd;
        end;
end;</code></pre></div><p>из OnChange отрабатывает нормально,<br />а если использовать вызов frmMain_gridOrders_OnChange из OnAfterSort<br />и отсортировать по другому столбцу то появляется ошибка:<br /></p><div class="codebox"><pre><code>List index out of bounds (1)
Script position: 113:36</code></pre></div><p>и подсвечивается строка <br /></p><div class="codebox"><pre><code>if iRow mod 2 = 0 then Grid.Cell[iCol,iRow].Color := ColorEven</code></pre></div><p>как то так</p>]]></description>
			<author><![CDATA[null@example.com (0anion0)]]></author>
			<pubDate>Thu, 26 May 2022 10:14:06 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=44825#p44825</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=44822#p44822</link>
			<description><![CDATA[<div class="quotebox"><cite>0anion0 wrote:</cite><blockquote><p>А как перестроить цвета после изменения сортировки по столбцу?</p><p>Если использовать как в примере <strong>alex842</strong> то при сортировки по какой либо колонке появляется ошибка.<br />Функцию вешаю на событие OnChange и OnAfterSort/</p></blockquote></div><p>Ошибку в студию!</p><p>Моё предварительное предположение, что&nbsp; функцию <strong>ColorRowGrid()</strong> нужно не &quot;вешать&quot;, а &quot;вызывать из&quot; <img src="https://myvisualdatabase.com/forum/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (k245)]]></author>
			<pubDate>Thu, 26 May 2022 09:25:29 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=44822#p44822</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=44821#p44821</link>
			<description><![CDATA[<p>А как перестроить цвета после изменения сортировки по столбцу?</p><p>Если использовать как в примере <strong>alex842</strong> то при сортировки по какой либо колонке появляется ошибка.<br />Функцию вешаю на событие OnChange и OnAfterSort/</p>]]></description>
			<author><![CDATA[null@example.com (0anion0)]]></author>
			<pubDate>Thu, 26 May 2022 08:29:54 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=44821#p44821</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=27172#p27172</link>
			<description><![CDATA[<div class="quotebox"><cite>metatron wrote:</cite><blockquote><p>А возможно тоже самое провернуть с колонками, если да то можно пример?</p></blockquote></div><p>замените строку<br /></p><div class="codebox"><pre><code>if iRow mod 2 = 0 then Grid.Cell[iCol,iRow].Color := ColorEven</code></pre></div><p>на<br /></p><div class="codebox"><pre><code>if iCol mod 2 = 0 then Grid.Cell[iCol,iRow].Color := ColorEven</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (k245)]]></author>
			<pubDate>Tue, 09 Oct 2018 07:57:27 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=27172#p27172</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=27170#p27170</link>
			<description><![CDATA[<p>А возможно тоже самое провернуть с колонками, если да то можно пример?</p>]]></description>
			<author><![CDATA[null@example.com (metatron)]]></author>
			<pubDate>Tue, 09 Oct 2018 05:41:31 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=27170#p27170</guid>
		</item>
		<item>
			<title><![CDATA[Re: [Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=9134#p9134</link>
			<description><![CDATA[<p>Немного усовершенствовал пример Дмитрия, сделав из него универсальную процедуру. Пригодится, если нужно раскрашивать несколько таблиц.</p><div class="codebox"><pre><code>procedure ColorRowGrid (Grid:TdbStringGridEx;ColorEven,ColorOdd:TColor);
//Grid - Таблица для раскрашивания (Form1.TableGrid1)
//ColorEven - цвет четных строк
//ColorOdd - цвет нечетных строк
var
   iRow ,c: integer;
   q, iCol: integer;
begin
     c := Grid.RowCount - 1;
     q := Grid.Columns.Count-1;
     for iRow := 0 to c do
         for iCol := 0 to q do
         begin
             if iRow mod 2 = 0 then Grid.Cell[iCol,iRow].Color := ColorEven
             else
             Grid.Cell[iCol,iRow].Color := ColorOdd;
         end;
end;

//Пример
ColorRowGrid(Form1.TableGrid1,clBtnFace,clWindow);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alex842)]]></author>
			<pubDate>Thu, 06 Aug 2015 09:30:20 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=9134#p9134</guid>
		</item>
		<item>
			<title><![CDATA[[Скрипт] Полосатый TableGrid]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=5932#p5932</link>
			<description><![CDATA[<p>Скрипт разукрашивает через одну строчку компонент TableGrid</p><br /><p>скрипт:<br /></p><div class="codebox"><pre><code>procedure Form1_GridEmployees_OnChange (Sender: string);
var
   iRow ,c: integer;
   q, iCol: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     q := Form1.GridEmployees.Columns.Count-1;
     for iRow := 0 to c do
         for iCol := 0 to q do
         begin
             if iRow mod 2 = 0 then Form1.GridEmployees.Cell[iCol,iRow].Color := clBtnFace;
         end;
end;

begin
end.</code></pre></div><br /><br /><p><strong>Проект с примером:</strong></p>]]></description>
			<author><![CDATA[null@example.com (DriveSoft)]]></author>
			<pubDate>Mon, 23 Feb 2015 19:49:14 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=5932#p5932</guid>
		</item>
	</channel>
</rss>
