• Elec3C © (08.06.08 23:33) [0]
    Пару вопрос по String : TKOLmdvXLGrid:

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

    2. Возможно в реалтайме убрать фокус с StringGrid'a (чтобы внутри ячейки не отрисовывался квадрат со штриховыми линиями)?
  • Elec3C © (10.06.08 04:19) [1]
    ^
  • mdw © (10.06.08 16:01) [2]

    > 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), если есть желание. Тогда присылайте добавим.
  • mdw © (10.06.08 16:04) [3]

    > 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), если есть желание. Тогда присылайте добавим.
  • Elec3C © (10.06.08 17:08) [4]
    Спасибо!

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

    Сейчас занят, может, чуть позже добавлю и пришлю.
  • Elec3C © (10.06.08 18:02) [5]
    Кстати, для "не отрисовки"
  • Elec3C © (10.06.08 18:04) [6]
    Сорри, глюкануло!

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

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

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

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

    Если же оставить ACanvas.DrawFocusRect(ARect), то фокус будет отрисовываться во всех ячейках!!!
  • mdw © (11.06.08 16:43) [7]

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

    А я что написал? Окошко раздвиньте. Или монитор 640х480? :)
Есть новые Нет новых   [134431   +15][b:0][p:0]