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

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

TKOLmdvXLGrid


Elec3C ©   (2008-06-08 23:33:00) 

Пару вопрос по String : TKOLmdvXLGrid:

1. Как убрать Scroll Bar'ы (в unit'e KOLmdvXLGrid читал, что есть такой ScrollBars - Вкл/Выкл полосы прокрутки, но в самом TKOLmdvXLGrid и близко нету ничего похожего)?

2. Возможно в реалтайме убрать фокус с StringGrid'a (чтобы внутри ячейки не отрисовывался квадрат со штриховыми линиями)?


mdw   (2008-06-11 16:43:00) [1]


> нужно убирать полность if (PKolXLGridData(Grid.FCustomObj).
> FGridStyle = gsStandard) and AFocus then ACanvas.DrawFocusRect(ARect);
> Если же оставить ACanvas.DrawFocusRect(ARect), то фокус
> будет отрисовываться во всех ячейках!!!

А я что написал? Окошко раздвиньте. Или монитор 640х480? :)


Elec3C   (2008-06-10 18:04:00) [2]

Сорри, глюкануло!

Для "не отрисовки"

> внутри ячейки не отрисовывался квадрат со штриховыми линиями)

нужно убирать полность

if (PKolXLGridData(Grid.FCustomObj).FGridStyle = gsStandard) and AFocus then ACanvas.DrawFocusRect(ARect);

Если же оставить ACanvas.DrawFocusRect(ARect), то фокус будет отрисовываться во всех ячейках!!!


Elec3C   (2008-06-10 18:02:00) [3]

Кстати, для "не отрисовки"


Elec3C   (2008-06-10 17:08:00) [4]

Спасибо!

> Можете добавить свойство

Сейчас занят, может, чуть позже добавлю и пришлю.


mdw   (2008-06-10 16:04:00) [5]


> 2. Возможно в реалтайме убрать фокус с StringGrid'a (чтобы
> внутри ячейки не отрисовывался квадрат со штриховыми линиями)?



Примерно так:

procedure TmdvXLCell.Draw(ARect: TRect; ACol, ARow: Integer; ACanvas: PCanvas; ASelect, AFocus: Boolean);
....
   ///if (PKolXLGridData(Grid.FCustomObj).FGridStyle = gsStandard) and AFocus then ACanvas.DrawFocusRect(ARect);
....

Можете добавить свойство (например IsShowFocus), если есть желание. Тогда присылайте добавим.


mdw   (2008-06-10 16:01:00) [6]


> 1. Как убрать Scroll Bar'ы (в unit'e KOLmdvXLGrid читал,
>  что есть такой ScrollBars - Вкл/Выкл полосы прокрутки,
> но в самом TKOLmdvXLGrid и близко нету ничего похожего)?

Нда, и правда. Убрать можно. Примерно так:

procedure TmdvXLGrid.UpdateScrollBars;
var ScrollInfo: TScrollInfo;
begin            
   EndEdit(True, True);
   if not HandleAllocated then Exit;
   ScrollInfo.nMin:= 0;
   ScrollInfo.nMax:= 0;//PKolXLGridData(FCustomObj).FRowCount-1;
   ScrollInfo.nPos:= PKolXLGridData(FCustomObj).FTopRow;
   ScrollInfo.nPage:= VisibleRowCount;
   ScrollInfo.fMask:= SIF_ALL;
   ScrollInfo.cbSize:= SizeOf(ScrollInfo);
   SetScrollInfo(Handle, SB_VERT, ScrollInfo, True);

   ScrollInfo.nMin:= 0;
   ScrollInfo.nMax:= 0;//PKolXLGridData(FCustomObj).FColCount-1;
   ScrollInfo.nPos:= PKolXLGridData(FCustomObj).FLeftCol;
   ScrollInfo.nPage:= VisibleColCount;
   ScrollInfo.fMask:= SIF_ALL;
   ScrollInfo.cbSize:= SizeOf(ScrollInfo);
   SetScrollInfo(Handle, SB_HORZ, ScrollInfo, True);
end;

Можете добавить свойство (например IsHorzScrollBar, IsVertScrollBar), если есть желание. Тогда присылайте добавим.


Elec3C   (2008-06-10 04:19:00) [7]

^


Наверх

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