Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c