-
Пару вопрос по String : TKOLmdvXLGrid:
1. Как убрать Scroll Bar'ы (в unit'e KOLmdvXLGrid читал, что есть такой ScrollBars - Вкл/Выкл полосы прокрутки, но в самом TKOLmdvXLGrid и близко нету ничего похожего)?
2. Возможно в реалтайме убрать фокус с StringGrid'a (чтобы внутри ячейки не отрисовывался квадрат со штриховыми линиями)?
-
^
-
> 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), если есть желание. Тогда присылайте добавим.
-
> 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), если есть желание. Тогда присылайте добавим.
-
Спасибо!
> Можете добавить свойство
Сейчас занят, может, чуть позже добавлю и пришлю.
-
Кстати, для "не отрисовки"
-
Сорри, глюкануло!
Для "не отрисовки"
> внутри ячейки не отрисовывался квадрат со штриховыми линиями)
нужно убирать полность
if (PKolXLGridData(Grid.FCustomObj).FGridStyle = gsStandard) and AFocus then ACanvas.DrawFocusRect(ARect);
Если же оставить ACanvas.DrawFocusRect(ARect), то фокус будет отрисовываться во всех ячейках!!!
-
> нужно убирать полность if (PKolXLGridData(Grid.FCustomObj). > FGridStyle = gsStandard) and AFocus then ACanvas.DrawFocusRect(ARect); > Если же оставить ACanvas.DrawFocusRect(ARect), то фокус > будет отрисовываться во всех ячейках!!!
А я что написал? Окошко раздвиньте. Или монитор 640х480? :)
|