Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

stringgrid drawcell


bagos ©   (2009-09-30 20:01:00) 

Всем привет, помогите разобраться
крашу ячейки в гриде, нужно провести линию в ячейке top-1
 
if Copy(S, 1, 1) = '-' then
     if (ACol >= 5) and (ACol <= 25) and (ARow >= 0) then
     begin

       Canvas.Brush.Color := $00C1C1FF;
       Canvas.FillRect(Rect);

         Canvas.MoveTo(Rect.Left, rect.Top-1);
         Canvas.LineTo(Rect.Right, Rect.Top-1);

       Canvas.TextOut(rect.left + 4, rect.top+1, Copy(S, 2, Length(s) - 1));
     end;


линия то рисуется то пропадает, почему? что то не так делаю походу, помогите решить!


Омлет   (2009-09-30 21:58:00) [1]

> (ARow >= 0)

На надо этого. Разве бывает строка < 0? Не бывает.


Омлет   (2009-09-30 21:54:00) [2]

Рисовать надо только в своей ячейке!
Rect.Top-1- это уже ячейка выше данной. И если нужна там линия, то в обработчике для той ячейки и рисуй.


Омлет   (2009-09-30 21:50:00) [3]

Ха. Не то ))
Ты ведь пытаешься рисовать не в своей ячейке.

        Canvas.MoveTo(Rect.Left, rect.Top-1);
        Canvas.LineTo(Rect.Right, Rect.Top-1);


Омлет   (2009-09-30 21:45:00) [4]

Если стоит какой-то режим смешивания цветов, то линия может затираться при повторном выводе.
Поставь Canvas.Pen.Mode := pmCopy;

> if Copy(S, 1, 1) = '-' then

if (Length(S) > 0) and (S[1] = '-') then


Наверх

Титульная страница Поиск, карта сайта Написать письмо