Главная страница
    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.043 c
15-1200865358
TStas
2008-01-21 00:42
2008.03.09
Беда с флешкой


2-1202755883
1иван
2008-02-11 21:51
2008.03.09
TMemoryStream + dll


15-1201696930
Ega23
2008-01-30 15:42
2008.03.09
Посоветуйте пример


15-1201851982
ZeroDivide
2008-02-01 10:46
2008.03.09
Влияние работы за компьютером на активность головного мозга


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский