Главная страница
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.038 c
14-1132587990
oldman
2005-11-21 18:46
2005.12.11
Вот тебе и раз...


2-1132337212
Sysanin
2005-11-18 21:06
2005.12.11
Закрытие программы


1-1130999962
kblc
2005-11-03 09:39
2005.12.11
Есть ли у класса интерфейс?


4-1129026072
Alex_Korn
2005-10-11 14:21
2005.12.11
Размер стека


6-1125396912
Wistler
2005-08-30 14:15
2005.12.11
MX-запись из DNS