Вниз
Скачать: CL | DM;

Таблица как в Excel   Найти похожие ветки 

 
Vedun   (2007-07-19 14:09) [0]

Можно ли сделать так, чтобы контрол mdwXLGrid при вводе в ячейки информации вел себя так, как таблица excel? Например, помешаем курсор в ячейку, начинаем вводить с клавиатуры число, ячейка переходит в режим ввода. Закончив ввод, нажимаем, например, стрелку "вниз", курсор таблицы переходит в ячейку на 1 ряд ниже.
Можно ли такое реализовать? Если да, подскажите как.


 
mdw ©   (2007-07-19 14:46) [1]

Можно.

> Например, помешаем курсор в ячейку, начинаем вводить с клавиатуры
> число, ячейка переходит в режим ввода.

Для грида определяем событие XLGrid.OnChar:= XLGridChar;
в нем проверяем символ, и если нужно переходим в режим редактирования

procedure TMainForm.XLGridChar(Sender: PControl; var Key: KOLChar; Shift: Cardinal);
begin
   if Key in ["0".."9"] then begin
     XLGrid.BeginEdit;
     Editor.Text:= Key;
   end;
end;
Где Editor - редактор для грида (TEdibBox).


> Закончив ввод, нажимаем, например, стрелку "вниз", курсор
> таблицы переходит в ячейку на 1 ряд ниже.


Для Editor определить OnKeyDown, примерно так:
procedure TMainForm.EditorKeyDown(Sender: PControl; var Key: Integer;
 Shift: Cardinal);
begin
   case Key of
     VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN: begin
       XLGrid.EndEdit(True);
       XLGrid.Perform(WM_KEYDOWN, Key, 0);
     end;
     VK_ESCAPE: XLGrid.EndEdit(False);
     VK_RETURN, VK_F2: XLGrid.EndEdit(True);
   end;
end;


 
Vedun   (2007-07-19 22:58) [2]

Спасибо. Все хорошо, кроме одного.
После

procedure TMainForm.XLGridChar(Sender: PControl; var Key: KOLChar; Shift: Cardinal);
begin
  if Key in ["0".."9"] then begin
    XLGrid.BeginEdit;
    Editor.Text:= Key;
  end;
end;

курсор ввода в Edit-е помещается в начало строчки, перед введенной цифрой, и дальше число вводится неправильно. Первая цифра оказывается последней.
Как перевести его в конец строки?


 
mdw ©   (2007-07-20 11:23) [3]

Читайте документацию.

Editor.SelStart:= 1;


 
Vedun   (2007-07-20 14:46) [4]

Понял. Спасибо.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
15-1201870682
oxffff
2008-02-01 15:58
2008.03.09
A million licenses of RAD Studio for Russia


2-1201968437
reg
2008-02-02 19:07
2008.03.09
safearray


15-1202120566
asdfa
2008-02-04 13:22
2008.03.09
не могу понять как запускается файл


2-1202655439
Artem
2008-02-10 17:57
2008.03.09
Проблема с TStrings


2-1202882049
Shousheng
2008-02-13 08:54
2008.03.09
memo прозрачное выделение




   Наверх