Главная страница
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.035 c
14-1102576195
Dmitriy O.
2004-12-09 10:09
2004.12.26
Вот как борются у нас с Русским национализмом.


14-1102274838
Beglec
2004-12-05 22:27
2004.12.26
Вопрос не совсем по Delphi но по сети.


1-1102739411
Eugeni
2004-12-11 07:30
2004.12.26
TListBox


1-1102952442
alex145
2004-12-13 18:40
2004.12.26
Главная форма


1-1102592157
DiamondShark
2004-12-09 14:35
2004.12.26
Трассировка порождённых процессов.