Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 11 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Вопрос такой - заполняю данными сабж и естественно данных больше, чем может показат сабж, поэтому для прокрутки включено свойство ScrollBars.
Но мне надо, что-бы при показе TStringGrid автоматом переходил на последнюю строку(Row), т.е. чтобы при показе последняя строка отображалась либо в самом верху, либо внизу; короче чтоб не приходилось каждый раз листать и искать эту последнюю строку.

Язык Delphi, если это важно.



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Ну так скролируй его :)


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Ray Adams писал(а):
Ну так скролируй его :)


Смешно, шутку понял. А если серьезно - нашел способ

Код:
StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);


Но есть одно НО - я использую свой собственный
Код:
StringGrid1DrawCell(...)
, и почему-то из-за него несрабатывает скролл, вернее срабатывает не с первого раза. Я для проверки повесил на нажатие кнопки
Код:
procedure TForm6.Button1Click(Sender: TObject);
begin
  StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);
end;

и нажимаю; Так скроллинг срабатывает тока после второго нажатия. А если убираю свою прорисовку Grid, тогда все правильно с первого раза работает.

В чем загвоздка ???

P.S. - Если надо могу привести весь код прорисовки.


 

А просто ставить указатель на последнюю строку не катит?


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
mrAndy писал(а):
А просто ставить указатель на последнюю строку не катит?


И как это сделать ?


 

StringGrid1.Row:=StringGrid1.RowCount-1;


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
mrAndy писал(а):
StringGrid1.Row:=StringGrid1.RowCount-1;


Проверил - НЕ РАБОТАЕТ, не сдвигается на последнюю строку.


 

А куда ты вставляешь этот код?

Вообще неплохо бы весь код видеть.


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
mrAndy писал(а):
А куда ты вставляешь этот код?

Вообще неплохо бы весь код видеть.


1) - Да я для проверки просто на кнопку повесил - Жмеш и не пашет.

2) - Весь код чего?

Добавлено спустя 7 часов, 54 минуты, 46 секунд:
Все всем спасибо - нашел способ, хоть и топорно - но главное результат.

Тему можно закрыть...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Ну так поделись способом :) может кому и пригодится


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Ray Adams писал(а):
Ну так поделись способом :) может кому и пригодится


Короче так - я не понял в чем проблема, но если есть своя процедура прорисовки DrawCell..., тогда при вызове
Код:
StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);

вернее после него происходит сдвиг всей сетки, ну т.е. не ставится на конец.
И я достиг нужного результата вот так:
Код:
procedure TForm6.FormActivate(Sender: TObject);

procedure Delay(ms : longint);
var
  TheTime : LongInt;
begin
  TheTime := LongInt(GetTickCount) + ms;
  while (LongInt(GetTickCount) < TheTime) do begin
    Application.ProcessMessages;
  end;
end;

begin
  StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);
  Delay(10);
  StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);
  Delay(10);
  StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);

end;


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


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 11 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan