Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Навигация по StringGrid_у [D7, WinXP]


Zhekson ©   (2005-01-12 12:20:00) 

Как по нажатию на Tab скакнуть на следующую. ячейку с определённым значением?


Zhekson   (2005-01-12 15:29:00) [1]

всем спасибо... есть контакт.

Извините если кого-то отвлёк... ну не могу я работать в одиночестве.


Zhekson   (2005-01-12 15:13:00) [2]


if (Key = vk_Space) then
 with AdvStringGrid1 do
   if Col < ColCount - 1 then
   while (Cells[Col, Row] <> ' --') and (Row < RowCount - 1) do
     begin
      Col := Col + 1;
      if col = ColCount-1 then Row := Row + 1;
     end;


Что в этом коде не так?


Neznaika   (2005-01-12 13:48:00) [3]

Я ему о том же...


Anatoly Podgoretsky   (2005-01-12 13:45:00) [4]

Естественно вылетишь за границы, если не будет найдено ' --'


Neznaika   (2005-01-12 13:44:00) [5]


> if (Key = vk_Space) then
>   with AdvStringGrid1 do
>     if Col < ColCount - 1 then
>       while Cells[Col, Row] <> ' --' do
>        Col := Col + 1


if (Key = vk_Space) then
with AdvStringGrid1 do
if Col < ColCount - 1 then
while Cells[Col, Row] <> ' --' do begin
Col :=inc(Col);
if col =ColCount-1 then exit;
end;

или что-то вроде...

if (Key = vk_Space) then
with AdvStringGrid1 do
if Col < ColCount - 1 then begin
repeat
inc(col);
until (Cells[Col, Row] <> ' --') or (col=colcount-1);


Zhekson   (2005-01-12 13:38:00) [6]

ой... попрошу не ругаться...
переделываю


Zhekson   (2005-01-12 13:30:00) [7]

делаю так:

if (Key = vk_Space) then
  with AdvStringGrid1 do
    if Col < ColCount - 1 then
      while Cells[Col, Row] <> ' --' do
       Col := Col + 1


(Error)Grid index out of range


Neznaika   (2005-01-12 12:54:00) [8]

procedure TStringGrid1.OnKeyDown(xxxxxxxxxxxxxxxxxx);
if key = Не помню сколько; //(Значение Tab)
then  begin
//Выделяй что хочешь
end;

IMHO


Anatoly Podgoretsky   (2005-01-12 12:49:00) [9]

А что именно в задаче не понятно?


Zhekson   (2005-01-12 12:41:00) [10]

pasha_golub ©   (12.01.05 12:31) [1]
Хороший ответ. На то что бы в нём разобраться у меня уйдёт время(может много времени) + неизвестно, какие при этом я допущу ошибки.

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


pasha_golub   (2005-01-12 12:31:00) [11]

TStringGrid.OnKeyDown
TStringGrid.OnSelectedCell
F1


Наверх

Титульная страница Поиск, карта сайта Написать письмо