Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

StringGrid событие, которое происходит после редактировния ячейки   Найти похожие ветки 

 
Zloy ©   (2004-12-08 12:58) [0]

Приветствую!!!
Почти все собития таблицы перерыл, но ни как не могу найти, событие, которое происходит после того, как поюзал ячейку и перешел к другой, при чем не важно клавой или мышью


 
MBo ©   (2004-12-08 13:13) [1]

OnSelectCell


 
Leonid Troyanovsky   (2004-12-08 13:26) [2]

> Zloy ©   (08.12.04 12:58)  

> Почти все собития таблицы перерыл, но ни как не могу найти,
> событие, которое происходит после того, как поюзал ячейку
> и перешел к другой, при чем не важно клавой или мышью


type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
   procedure ChangedMode(Sender: TObject);
 public
   { Public declarations }
 end;

implementation

{$R *.dfm}

uses
 grids;

type
 TSpecInplaceEdit = class(TInplaceEdit)
 private
   FMode: Boolean;
   FOnChangeMode: TNotifyEvent;
 protected
   procedure WndProc(var msg: TMessage); override;
   procedure ChangeMode(mode: Boolean);
 end;

 TStringGridSE=class(TStringGrid)
 private
   SpecEditor: TSpecInplaceEdit;
   FOnChangeMode: TNotifyEvent;
   function CreateEditor: TInplaceEdit;  override;
 public
   function IsEditMode: Boolean;
   constructor Create(AOwner: TComponent); override;
 published
   property OnChangeMode: TNotifyEvent read FOnChangeMode write
FOnChangeMode;
 end;

procedure TSpecInplaceEdit.wndproc;
begin
 if (msg.Msg = WM_SETFOCUS) or (msg.Msg = WM_KILLFOCUS) then
   ChangeMode(msg.Msg = WM_SETFOCUS);
 inherited;
end;

procedure TSpecInplaceEdit.ChangeMode;
begin
 FMode := mode;
 if Assigned(FOnchangeMode) then
   FOnchangeMode(Grid);
end;

function TStringGridSE.CreateEditor;
begin
 SpecEditor := TSpecInplaceEdit.Create(Self);
 SpecEditor.FOnChangeMode := FOnChangeMode;
 Result := SpecEditor;
end;

constructor TStringGridSE.Create;
begin
 inherited;
 Options := Options + [goEditing];
end;

function TStringGridSE.IsEditMode;
begin
 Result := SpecEditor.FMode;
end;

var
 g: TStringGridSE;

procedure TForm1.ChangedMode;
begin
 if g.IsEditMode then
   Caption := (Sender as TStringGrid).ClassName + " :Edit"
 else
   Caption := "";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 g := TStringGridSE.Create(nil);
 g.Parent := Self;
 g.OnChangeMode := ChangedMode;
end;


--
С уважением, LVT.


 
Zloy ©   (2004-12-08 13:43) [3]

это личное творчество?, если да, то как этим воспользоваться. К примеру, после редактирования, чтобы вылетел ShowMessage.

OnSelectCell срабатывает после переключению на любую ячейку, и не важно редактировалась ли она.


 
MBo ©   (2004-12-08 13:53) [4]

редактировалась ли она - можно запоминать последнюю ред. ячейку в OnSetEditText и сравнивать с текущей в OnselectCell


 
Leonid Troyanovsky   (2004-12-08 14:32) [5]

> Zloy ©   (08.12.04 13:43) [3]
> это личное творчество?, если да, то как этим воспользоваться.

Да ладно уж, пользуйся ;)

> К примеру, после редактирования, чтобы вылетел ShowMessage.

OnChangeMode по вкусу (в примере меняется заголовок формы).

--
С уважением, LVT.



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
11-1084436155
dimon1979
2004-05-13 12:15
2004.12.26
KOL-объекты и Инспектор объектов


14-1102590544
DiamondShark
2004-12-09 14:09
2004.12.26
Радикальное решение.


1-1102784356
AdmeraL
2004-12-11 19:59
2004.12.26
requires


3-1101636673
Guma
2004-11-28 13:11
2004.12.26
Кодировка в MS SQL Server.


9-1093137340
Xerx
2004-08-22 05:15
2004.12.26
Источники моделей