Форум: "KOL";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизТаблица как в 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 вся ветка
Форум: "KOL";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c