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

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

Фокус на Stringgrid [D6, XP]


pavelkq ©   (2009-01-15 14:18:00) 

Устанавливаю фокус на строку (выделение строками).
StringGrid1.SetFocus;
StringGrid1.Row:=MyRow;

Срабатывает, но эта выделенная строка находится где-то внизу таблицы, за пределами видимости. Если ее двинуть вверх/вниз (клавишами или колесиком мышки), то строка сразу становится в видимой части таблицы. Как сделать, чтобы она сразу была видна посре перемещения на нее фокуса?


{RASkov}   (2009-01-15 22:57:00) [1]

> StringGrid.TopRow не помог.

Не верю. Ну да ладно....
А если сделать так:
 StringGrid1.Row:=MyRow-1;
 StringGrid1.Row:=MyRow;
 StringGrid1.SetFocus;
? :) Не, так конечно делать не нужно, но попробуй.... Ибо:
procedure TCustomGrid.SetRow(Value: Longint);
begin
 if Row <> Value then FocusCell(Col, Value, True);
end;

Победить можно так:
type TMyGrid = class(TCustomGrid);
procedure TForm1.Button1Click(Sender: TObject);
begin
 TMyGrid(StringGrid1).FocusCell(StringGrid1.Col, MyRow, True);
end;


MsGuns   (2009-01-15 21:00:00) [2]

Чему равен RowCount ?


Pavelkq   (2009-01-15 20:47:00) [3]


> {RASkov} ©

StringGrid.TopRow не помог. У кого еще такие проблемы были и как их победить?


{RASkov}   (2009-01-15 15:24:00) [4]

В D7 код из [0] нормально отрабатывает... ничего двигать и нажимать дополнительно не нужно...
Но... Но если в данный момент(в момент выполнения кода [0]) Текущий Row у StringGrida = MyRow, и он не в области видимости, то да - ничего не произойдет....
Можно в данном случае поиграться с StringGrid.TopRow...


Наверх

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