Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Метод Tmemo для установки курсора в нужную строку 
:(
    Опции темы
Aleks26
Дата 27.5.2010, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



 Подскажите! Может я просто просмотрел. Нужно свойство или метод в TCustomMemo, чтобы установить текущий курсор в нужную строку. Методы, показывающие текущее положение, вроде есть, но нужно установить. Чтобы было понятней, я считываю из текстового файла с помощью ReadLn в цикле последовательно строки. После завершения цикла я оказываюсь на последней строке Memo. А нужно либо в начало, либо на конкретную строку. smile 
PM MAIL   Вверх
kami
Дата 27.5.2010, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Код

procedure TForm1.btn1Click(Sender: TObject);
var
  p:TPoint;
begin
  p.X:=0;
  p.Y:=0;
  Memo1.CaretPos:=p;
  Memo1.SetFocus;
end;

PM MAIL WWW   Вверх
Aleks26
Дата 27.5.2010, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



Спасибо! Только почему нельзя сразу задать нулевые значения в поля Memo1.TCaretPos, а необходим p типа TPoint? smile 



Я вчера вечером получил этот ответ, но пробовал лишь сегодня утром и результата, которого я хотел получить не смог достичь. После кода, который мне был показан как решение, курсор действительно устанавливается в точку (X=0, Y=0), но я вижу это только после возврата ScrollBar'ом в начало моего текста. Я же спрашивал, есть ли какая-то возможность автоматом (не вручную, используя ScrollBar) "прокрутить" мой текст в начало? А так курсор находится в начале, но в окне Memo все равно виден конец моего текстового файла. smile 

Это сообщение отредактировал(а) Aleks26 - 28.5.2010, 10:10
PM MAIL   Вверх
Mikel
Дата 31.5.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Код

SendMessage(memo.Handle, EM_LINESCROLL, 0, -Memo.Lines.Count)

 smile 


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
kami
Дата 31.5.2010, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Aleks26 @  27.5.2010,  23:17 Найти цитируемый пост)
Я же спрашивал, есть ли какая-то возможность автоматом (не вручную, используя ScrollBar) "прокрутить" мой текст в начало?

не спрашивал.
Цитата(Aleks26 @  27.5.2010,  20:56 Найти цитируемый пост)
Нужно свойство или метод в TCustomMemo, чтобы установить текущий курсор в нужную строку.

Что спросил - то и получил smile
PM MAIL WWW   Вверх
Traum
Дата 20.4.2011, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.1.2004

Репутация: нет
Всего: нет



У меня получилось установить в нужную позицию в Memo (TMemo)
и показать эту позицию в качестве 1-й видимой строки с помощью следующего кода

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  p : TPoint;
  FirstVisible : longint;
begin
  // позиция в которую нужно переместить
  p.X := 4;
  p.Y := 4;
  Memo1.CaretPos := p;
  // определяем номер первой видимой строки
  FirstVisible := SendMessage(Memo1.Handle,EM_GETFIRSTVISIBLELINE,0,0);
  // устанавливаем линию с курсором в качестве первой видимой
  SendMessage(Memo1.Handle,EM_LINESCROLL,0, p.Y - FirstVisible )
  Memo1.SetFocus; 
end;


Это сообщение отредактировал(а) Traum - 20.4.2011, 20:50
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1060 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.