Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid Click, Сlick программно 
:(
    Опции темы
Rodman
Дата 16.10.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Дароф....

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

Т.е. я выбрал ячейку (произошел расчет)... я произвел другие маневры в гриде данные обновились... и тут чтобы опять обновился расчет мне необходимо нажать на прошлую ячейку...

Как это сделать...

Спасибо...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
skyboy
Дата 16.10.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



уже вижу два варианта:
1. честная эмуляция - отослать сообщения wm_mousedown и wm_mouseup твоей таблице. Недостатки очевидны: 
- если ячейки на экране нет, кликнуть в пределх этой ячейки не выйдет; 
- надо определять координаты требуемой ячейки;
2. "Прямой" вызов обработчика нажатия с передачей нужных параметров. 
Пересчет у тебя по какому событию вызывается? По OnClick?
Тогда делай так:
Код

...
Form1.StringGrid1OnClick(Form1.StringGrid1);
...

Или на OnSelectCell?
Тогда:
Код

...
SomeCol:= ...; // переменная, содержащая номер столбца твоей "считающей" ячейки
SomeRow:= ...; // переменная, содержащая номер строки твоей "считающей" ячейки
CanSelect:= ...;// переменная,... а, не помню уже, что-то связанная с возможностью выделения ячейки; посмотри в справке на OnSelectCell
Form1.StringGrid1OnSelectCell(Form1.StringGrid1,SomeCol,SomeRow,CanSelect);
...

PM MAIL   Вверх
Rodman
Дата 17.10.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



По OnSelectCell... 

Сенкс... Попробую...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Rodman
Дата 17.10.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



а как мне нажать на StringGridDrawCell
Код

FrmWeek.StGrdDrawCell(FrmWeek.StGrd, SomeCol, SomeRow, MyRect, [gdFocused]);


но если изенятся текущая ячейка, она не перерисовывается...

Что не так???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
skyboy
Дата 17.10.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Цитата(Rodman @  17.10.2006,  16:05 Найти цитируемый пост)
а как мне нажать на StringGridDrawCell

Цитата(Rodman @  17.10.2006,  16:05 Найти цитируемый пост)
но если изенятся текущая ячейка, она не перерисовывается...

доходчивее обьясни.
PM MAIL   Вверх
Rodman
Дата 17.10.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Ячейка может меняться...

а на старте хотелось бы закрашивать первую....

у меня высота и ширина ячеек = 22

я расчитываю параметр Rect как Rect.left:=ARow*22 и Rect.Top:=ACol*22, по такому же принципу и остальные параметры...

Но рисовать не хочет...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Zero
Дата 17.10.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Rodman, там в стрингриде бывает баг, когда по несколько раз перересовывешь одну и ту же ячейку.
В DRKB есть код как на ней рисовать один раз, но при перерисовке бывают глюки... Я в своё время, заменил стринггрид, другим компонентом (название не помню, в поисковике ищется) предназначеным для создания отчётов. Если ты делаешь именно их, то стринггрид на него и замени, если нет то искать другие способы.

Добавлено @ 21:47 
Цитата(Rodman @  17.10.2006,  20:37 Найти цитируемый пост)
Но рисовать не хочет... 

В общем, если хочешь то посмотри тут:
http://forum.vingrad.ru/index.php?act=modu...icle_num=000602
Там подробное описание рисования на ячейках.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.