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