Вниз
Скачать: CL | DM;

Фокус на Stringgrid   Найти похожие ветки 

 
pavelkq   (2009-01-15 14:18) [0]

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

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


 
{RASkov} ©   (2009-01-15 15:24) [1]

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


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


> {RASkov} ©

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


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

Чему равен RowCount ?


 
{RASkov} ©   (2009-01-15 22:57) [4]

> 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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
15-1230488629
TCrash
2008-12-28 21:23
2009.03.01
А подскажите готовое решение


15-1230812008
Kerk
2009-01-01 15:13
2009.03.01
[FreeBSD] Странная проблема с консолью


2-1232390341
AlexDan
2009-01-19 21:39
2009.03.01
PageControl


4-1206293624
s7r
2008-03-23 20:33
2009.03.01
Изменение положения caption у Item а в ListView


15-1230607135
Slider007
2008-12-30 06:18
2009.03.01
С днем рождения ! 30 декабря 2008 вторник




   Наверх