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

Вниз

как поймать момент когда DBGrid переходит в режим редактирования   Найти похожие ветки 

 
Fast   (2004-07-07 16:24) [0]

Дело в том, что надо сделать тривиальную вешь - повешать попап с функциями копирования в вставления из буфера.
постаил попап написал функцию

var text:string;
begin
text:=(Form1.ActiveControl as TCustomDBGrid).SelectedField.Value;
Clipboard.SetTextBuf(pchar(text));
end;

Работает на ура только если не находимся в режиме редактирования записи.
И самое главное в режиме редактирования есть свой стандартный попар который я не хочу перекрывать.
Т.е. я вижу выход в том, что отменять мое меню для грида если она  в режиме редактирования.


 
Reindeer Moss Eater ©   (2004-07-07 16:26) [1]

OnStateChange event (TDataSource)


 
Sandman25 ©   (2004-07-07 16:26) [2]

DBGrid.DataSource.DataSet.State in dsEditModes


 
Соловьев ©   (2004-07-07 16:27) [3]

var text:string;
begin
if (Form1.ActiveControl is TCustomDBGrid) and
((Form1.ActiveControl as TCustomDBGrid).DataSource.DataSet.State = dsBrowse)
then
text:=(Form1.ActiveControl as TCustomDBGrid).SelectedField.Value;
Clipboard.SetTextBuf(pchar(text));
end;


 
Fast   (2004-07-07 16:32) [4]

не выйдет во время редактирования гида ActiveControl - не сам грид


 
Соловьев ©   (2004-07-07 16:37) [5]


> не выйдет во время редактирования гида ActiveControl - не
> сам грид

но зато когда вызываешь попап должен он.
ну или тогда обрашайся по имени.


 
Fast   (2004-07-07 16:38) [6]

я имею в виду что при редактировании ActiveControl  - возвращает не grid, а видимо саму ячейку таблицы.


 
Соловьев ©   (2004-07-07 16:39) [7]


> а видимо саму ячейку таблицы

та нет.


 
Fast   (2004-07-07 16:41) [8]

но зато когда вызываешь попап должен он.
ну или тогда обрашайся по имени.

по имени совсем не хочется потому как таблиц на форме тьма и хотелось один попар на все


 
Sandman25 ©   (2004-07-07 16:47) [9]

type TFakeInplaceEdit = class(TInplaceEdit);

TFakeInplaceEdit(Form1.ActiveControl).Grid


 
Fast   (2004-07-07 17:04) [10]

Решил :)
Гдяшишь кому пригодиться


procedure TForm1.Copy1Click(Sender: TObject);
var text:string;
begin
if not (Form1.ActiveControl is TCustomDBGrid) then
  begin
  SendMessage(Form1.ActiveControl.Handle,WM_COPY,0,0);
  exit;
  end;
text:=(Form1.ActiveControl as TCustomDBGrid).SelectedField.Value;
Clipboard.SetTextBuf(pchar(text));
end;

procedure TForm1.Paste1Click(Sender: TObject);
begin
if not (Form1.ActiveControl is TCustomDBGrid) then
  begin
  SendMessage(Form1.ActiveControl.Handle,WM_PASTE,0,0);
  exit;
  end;
(Form1.ActiveControl as TCustomDBGrid).DataSource.Edit;
(Form1.ActiveControl as CustomDBGrid).SelectedField.Value:=Clipboard.AsText;
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
14-1089373794
_DS
2004-07-09 15:49
2004.08.01
Библиотека


3-1089016115
CyberMOHCTP
2004-07-05 12:28
2004.08.01
Cannot modify a read-only dataset - Как бороться?


14-1089822317
QuasiLamo
2004-07-14 20:25
2004.08.01
With obj1 do ...


1-1090074536
Комбинатор
2004-07-17 18:28
2004.08.01
как избавиться от символа нуля вконце строки?


3-1089098006
TransparentGhost
2004-07-06 11:13
2004.08.01
Нужно ли отрубать всех пользователей при BackUp?