Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];
Внизсделать активной ячейку StringGrid Найти похожие ветки
← →
Mishutka (2011-04-06 17:43) [0]Доброго дня!
Не обходимо сделать ячейку активной для записей.
Делаю следуюшее:
StringGrid1.Options:=StringGrid1.Options+[goEditing];
StringGrid1.Selection := TGridRect(rect(4, x, 4, x));
StringGrid1.SetFocus;
Проблема в том что вводить можно только цыфры (минуя проверку «бакспейса») procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
If (key<>#8) then
if not(Key in ["0".."9", DecimalSeparator]) then Key := #0;
end;
и если каретка находится в другой ячейке то код не работает
Решил проверку крывым но достаточно эффективным методом меняя фокусы:
Edit1.SetFocus;
StringGrid1.Options:=StringGrid1.Options+[goEditing];
StringGrid1.Selection := TGridRect(rect(4, 1, 4, 1));
StringGrid1.SetFocus;
Есть ли более правильный метод решения данной проблемы?
← →
Плохиш © (2011-04-06 23:07) [1]
> сделать активной ячейку StringGrid
Grid.Row = xxx;
Grid.Col = yyy;
← →
Германн © (2011-04-07 02:16) [2]Спамить только не надо!
> Плохиш © (06.04.11 23:07) [1]
>
>
Автору не это нужно.
Хотя что автору нужно я может и не понимаю.
Но "интуитивно" я понимаю. Требуется вызвать InplaceEditor без реального нажатия на кнопку мышки.
← →
Mishutka (2011-04-07 09:10) [3]
> Германн © (07.04.11 02:16) [2]
Вот вот...
← →
Плохиш © (2011-04-07 10:02) [4]
> Автору не это нужно.
Судя по степени коверкования русского языка, автору дешевле нанять программиста и переводчика.
← →
sniknik © (2011-04-07 10:05) [5]> Требуется вызвать InplaceEditor без реального нажатия на кнопку мышки.
у стринггдида он всегда "вызван", если разрешено редактирование. (не нужно ентер жать как в дбгриде), т.что вряд ли, хотя автор и соглашается.
> и если каретка находится в другой ячейке то код не работает
т.е. как? если например в ячейке 1:1 жмешь на буквы и он их пропускает, а если в 4:1 то нет? так? что значит в другой? если обработчик не на ячейку, а на весь компонент... ему пофигу какая ячейка.
← →
Mishutka (2011-04-07 11:47) [6]
> у стринггдида он всегда "вызван", если разрешено редактирование.
> (не нужно ентер жать как в дбгриде), т.что вряд ли, хотя
> автор и соглашается.
В принципе уменя он разрешен только для отдельной колонки но пусть даже если он будет разрешен для всех проблема не в этом
> т.е. как? если например в ячейке 1:1 жмешь на буквы и он
> их пропускает, а если в 4:1 то нет? так? что значит в другой?
> если обработчик не на ячейку, а на весь компонент... ему
> пофигу какая ячейка.
т.е. если например в ячейке 1:1 установить курсор а затем запустить код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
// StringGrid1.Options:=StringGrid1.Options+[goEditing];
StringGrid1.Selection := TGridRect(rect(4, 1, 4, 1));
StringGrid1.SetFocus;
end;
при том что у onkeypress StringGrid’а выполняется:
If (key<>#8) then
if not(Key in ["0".."9", DecimalSeparator]) then Key := #0;
то курсор как мигал так и мигает в ячейке 1:1
← →
Mishutka (2011-04-07 11:48) [7]
> If (key<>#8) then if not(Key in ["0".."9", DecimalSeparator])
> then Key := #0;
Оно ему мешает
← →
Германн © (2011-04-07 12:58) [8]
> sniknik © (07.04.11 10:05) [5]
>
> > Требуется вызвать InplaceEditor без реального нажатия
> на кнопку мышки.
> у стринггдида он всегда "вызван", если разрешено редактирование.
>
Да точно. Значит требуется выйти из InplaceEditorа без реального нажатия на кнопку мышки.
← →
Германн © (2011-04-07 13:06) [9]
> требуется выйти из InplaceEditorа без реального нажатия
> на кнопку мышки.
>
Хм. Тоже очень просто. Надо бредовый кодStringGrid1.Selection := TGridRect(rect(4, 1, 4, 1));
Заменить на нормальныйStringGrid1.Row:=1;
StringGrid1.Col:=4;
← →
oldman © (2011-04-07 13:34) [10]Удалено модератором
← →
Плохиш © (2011-04-07 13:40) [11]
> Германн © (07.04.11 13:06) [9]
>
> Заменить на нормальный
> StringGrid1.Row:=1;
> StringGrid1.Col:=4;
А кто это утверждал, что не это автору нужно? :o)
← →
Mishutka (2011-04-07 14:08) [12]
> Германн © (07.04.11 13:06) [9]
Ухты! так же работает. а я из за поста 2 проверять не стал...
← →
sniknik © (2011-04-07 14:25) [13]> Надо бредовый код
это не бредовый, просто не то..., это выделение участка, по случаю и "курсор" переставляет.
> А кто это утверждал, что не это автору нужно? :o)
не будем показывать пальцем но это был бегемотик... :) © мультфильм какой то.
← →
Германн © (2011-04-07 20:55) [14]Удалено модератором
← →
Германн © (2011-04-08 03:23) [15]Удалено модератором
← →
Германн © (2011-04-08 03:37) [16]Удалено модератором
← →
Плохиш © (2011-04-08 09:53) [17]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c