Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
11-1184499935
Lex1
2007-07-15 15:45
2008.03.09
KOL поддерживает регулярные выражения?


2-1202917124
patrick1968
2008-02-13 18:38
2008.03.09
ADO внутри потока


2-1202674227
aids
2008-02-10 23:10
2008.03.09
поиск файлов


2-1202891080
alexnmsk
2008-02-13 11:24
2008.03.09
Поток в dll


15-1201789120
Oleg_teacher
2008-01-31 17:18
2008.03.09
InnoSetup





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский