IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Tstringgrid
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Можно ли при работа с компонентом TStringGrid именно в момент обработки события OnKeyPress определить к ячейке с какими координатами идет обращение ?


Не пользуясь обходными путями (обрабатывать событие OnSelectCell и в каких-то глобальных переменных запоминать координаты и использовать эти данные уже в OnKeyPress (это по крайней мере мне в голову пришло, но слишком уж муторно smile.gif))


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Я не понял, ты хочешь получать адрес ТЕКУЩЕЙ (редактируемой в данный момент) клетки? blink.gif

Так Row/Col вроде не отменили еще... unsure.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Очень очень странно. Почему странно - не важно, даже если скажу не поверите smile.gif

Спасибо.


Хотя нет, всетаки покажу smile.gif)

где свойство row ?!!!!

strGrd_array: TStringGrid;



Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да уж ...

не смотря что сама система мне не хочет подсказать что Row и Col здесь всетаки доступно, такой код компилируется на ура smile.gif

procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Теперь возникла еще одна проблема :

Есть функция по обработке вводимого значения в какое-либо поле, выглядит она так :

function CheckKey(key: char; text: string): char;
begin
case key of
'0'..'9', #8: result := key;
',', '.':
if pos(DecimalSeparator, text) = 0 then
result := DecimalSeparator else result := char(0);
else result := char(0);
end
end;


Ее параметры : Key - символ передаваемый из OnKeyPress, text Текст над которым производится редактирование.

В случае применения этой функции к компоненту TEdit Выглядит так :

procedure Tfrm_Main.edt_setupKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, edt_setup.Text);
end;


И работает правильно, ввести можно только числа и не более одного десятичного разделителя.

А вот при работе с ячейками, создается такое впечатление, что параметр text не обновляется после каждого события OnKeyPress, вследствии чего я могу ввести в ячейку соклько угодно десятичных разделителей ...

procedure Tfrm_Main.strGrd_arrayKeyPress(Sender: TObject; var Key: Char);
begin
Key := CheckKey(Key, strGrd_array.Cells[strGrd_array.Row, strGrd_array.Col]);
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






blink.gif Все работает... Где-то в другом месте намудрил?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да негде мудрить - то было пока ...

Вот все что есть в проекте на данный момент (аттач)

АА я понял, нормлаьно почему-то обрабатывается только первая ячейка, щас разберемся smile.gif





Хыыы вопрос решен smile.gif

я писал cells[row, col] а надо-то cells[col, row] ;)



Прикрепленные файлы
Прикрепленный файл  _____________________1.rar ( 196.32 килобайт ) Кол-во скачиваний: 54


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 20.09.2017 7:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"