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

Вниз

XLGrid: Редактирование.   Найти похожие ветки 

 
серый мЫш ©   (2005-03-27 09:07) [0]

Что-то я никак не могу заставить таблицу редактироваться без дополнительных действий. Мне нужно, чтобы выделенная клетка после нажатия на бкву/цифру начинала редактироваться, но без F2/Enter/double-click нажатие на бкву/цифру не приносит никакого результата. Честно пытался разобраться в исходном коде контрола, но, видно, я пока птица не того полета... Есть надежда, что в скором времени такая функция появится, но я боюсь, что мне это понадобится еще раньше. Может кто уже сталкивался с этой проблемой и решил ее? Не поможете ли?


 
ECM ©   (2005-03-27 11:09) [1]

Создай обработчик события OnKeyDown(Up) и в нем вызови BeginEdit
(cам не проверял - надо устанавливать mdvXLGrid).
Если не нужны все навороты XLGrid - попробуй EcmListEdit
http://kolibdb.100free.com/KOLEcmListEdit.zip (54kB)
там это уже заложено в компоненте (демо прилагается)


 
<Falcon>   (2005-03-27 15:03) [2]

Вот так навскидку:
procedure TForm1.Grid1KeyDown(Sender: PControl; var Key: Integer;
 Shift: Cardinal);
begin
 case KEY of
 VK_RETURN:
     Grid1.EndEdit(True,True);
 VK_ESCAPE:
   Grid1.EndEdit(False,True);
 else
   Grid1.BeginEdit;
 end;
end;

procedure TForm1.Grid1BeginEdit(Sender: PControl; ACol, ARow: Integer;
 var AShowControl, ATextControl: PControl; var AIndents: TRect);
begin
 AShowControl:= EditBox1;
end;

Только при этом первый символ не будет вводиться. Поэтому его нужно либо вводить в эдит принудительно, типа:
Grid1.Cells[Grid1.Position.X,Grid1.Position.Y].Text:=Char(Key) и потом ставить курсор в нужную позицию, либо еще как, придумай.
Ну и  если нужно, то туда же добавить смену фокуса по ячейкам по завершению редактирования содержимого ячейки.


 
серый мЫш ©   (2005-03-27 20:21) [3]

2 ECM
Спасибо, работает.
2 <Falcon>
Я примерно так и делаю, но проверку делаю не на окончание редактирования, а на его начало. У меня должны быть только цифровые значения в клетках, так чтобы потом проверку не делать, я лучше сейчас сделаю одним махом.


 
серый мЫш ©   (2005-04-16 22:11) [4]

Кстати, как менять фокус, а то я уже замучился с ним, родимым. Position.X не редактируется, Selected тоже что-то не то...


 
серый мЫш ©   (2005-04-16 22:21) [5]

Кстати, как менять фокус, а то я уже замучился с ним, родимым. Position.X не редактируется, Selected тоже что-то не то...


 
mdw ©   (2005-04-18 11:16) [6]

Кстати, как менять фокус, а то я уже замучился с ним, родимым.
Position:= MakePoint(Col, Row).

По поводу редактирования. Открываем KOLmdvXLGrid.pas и читаем, подробно описано.



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

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

Наверх




Память: 0.48 MB
Время: 0.039 c
2-1132569578
Mike0902
2005-11-21 13:39
2005.12.11
Как определить целочисленный тип, принимающий значения -1 и 1?


14-1132418718
Pazitron_Brain
2005-11-19 19:45
2005.12.11
Как оживить картириджи?


1-1131612611
Некто Аполло
2005-11-10 11:50
2005.12.11
Overload в DLL


2-1132816955
Андрюша
2005-11-24 10:22
2005.12.11
e в степени ln(x)? Как сделать?


2-1132391001
dj0n
2005-11-19 12:03
2005.12.11
Как можно упростить ??