Главная страница
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.037 c
2-1132687021
Slaviq
2005-11-22 22:17
2005.12.11
Combobox.Items.AddObject( Текст , Текст )


3-1130232267
Ega23
2005-10-25 13:24
2005.12.11
could not produce a query plan from the optimizer - что это???


14-1132286700
Учусь
2005-11-18 07:05
2005.12.11
Зачем нужны коллекции?


14-1132515997
Yura32
2005-11-20 22:46
2005.12.11
Proccesor


3-1130309673
Thor_
2005-10-26 10:54
2005.12.11
Отображение вставки новой записи в DBGrid