у меня много текста и 1 Мемо чтобы выбрать другой текст я нажимаю кнопку возращаюсь в меню и выбераю текст Мемо загружает его а скрол остается там где я его оставил когда читал первый текст
я хочу чтобы когда я нажал на кнопку вернулся и выбрал другой текст скрол стоял в начале
Здравствуйте, room, Вы писали:
R>я хочу чтобы когда я нажал на кнопку вернулся и выбрал другой текст скрол стоял в начале
Лучше хотеть, чтобы стоял в конце.
Здравствуйте, room, Вы писали:
Вот так поможет?
Memo->SelStart = 0;
Memo->SelLength = 0;
SendMessage(Memo->Handle, EM_SCROLLCARET, 0, 0);
_>_>SendMessage(Memo->Handle, EM_SCROLLCARET, 0, 0);
_>
А зачем через Windows API ? Разве положение курсора не вынесено в свойства TMemo/TEdit ?
Как еще один зверский (ugly hack) вариант — делать TMemo.Clear; Application.ProcessMessages; перед присвоением нового текста;
Здравствуйте, Arioch, Вы писали:
_>>_>>SendMessage(Memo->Handle, EM_SCROLLCARET, 0, 0);
_>>
A>А зачем через Windows API ?
Действительно. Сейчас заглянул в VCL5:
procedure TCustomEdit.SetSelLength(Value: Integer);
var
Selection: TSelection;
begin
SendMessage(Handle, EM_GETSEL, Longint(@Selection.StartPos), Longint(@Selection.EndPos));
Selection.EndPos := Selection.StartPos + Value;
SendMessage(Handle, EM_SETSEL, Selection.StartPos, Selection.EndPos);
SendMessage(Handle, EM_SCROLLCARET, 0,0);
end;
Всё равно странно что отдельный метод не сделали.