Текущий архив: 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.45 MB
Время: 0.124 c