Главная страницаОбратная связьКарта сайта

DBGrid c FixedCols

Фирма Microsoft выпустила свой новый продукт - Презерватив 2000. Отличие этого продукта от Презерватив 98 состоит в следующем:
- он еще легче надевается на "инструмент", чем раньше;
- теперь он интегрируется с "инструментом" так, что практически получается одно целое;
- и главное, значительно улучшена навигация по пути прохождения, т.е. прекрасно входит и замечательно выходит.
К сожалению, не прошло и двух дней со дня выхода нового изделия, как известный хакер NoPreserve нашел дыру в Презерватив 2000. Надо отдать должное Microsoft, которая буквально через день оперативно среагировала на найденный брак, выпустив заплатку, которую каждый пользователь может бесплатно получить по почте со склада фирмы и пришить в нужное место, согласно инструкции.

Кам мне при прокрутке "зафиксировать" левое поле табличной сетки?

Я делаю это таким образом:


unit Fcdgrid;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, DBGrids, DBCtrls, DB, Menus;

type
  TFixedColDBGrid = class(TDBGrid)
  private
    FUserFixedCols: Integer;
  protected
    procedure LayoutChanged; override;
    procedure SetUserFixedCols(I: Integer);

  published
    property UserFixedCols: Integer read FUserFixedCols write SetUserFixedCols;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents("Data Controls", [TFixedColDBGrid]);
end;

procedure TFixedColDBGrid.LayoutChanged;
begin
  inherited LayoutChanged; {   присваиваем FixedCols 1 если индикатор, иначе 0 }
  if ((inherited FixedCols + FUserFixedCols) < inherited ColCount) then
    inherited FixedCols := (FUserFixedCols + inherited FixedCols);
end;

procedure TFixedColDBGrid.SetUserFixedCols(I: Integer);
begin
  FUserFixedCols := I;
  LayoutChanged;
end;

end.


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "DBGrid c FixedCols", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2023 Дискета.info