Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.022 c
15-1201851717
homm
2008-02-01 10:41
2008.03.09
Осторожней, Москвичи!


2-1202553943
fics
2008-02-09 13:45
2008.03.09
Компонент "ЛИНИЯ"


2-1202719916
Kolan
2008-02-11 11:51
2008.03.09
Как узнать какие именно пакеты нужны приложению?


3-1192783481
alsov
2007-10-19 12:44
2008.03.09
Поиск по blob полю


15-1200650677
capkoh
2008-01-18 13:04
2008.03.09
Оценка качества кода