Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

Приветствую Мастеров! Как в ТМемо сдвинуть курсор в конец строки?   Найти похожие ветки 

 
IronHawk   (2003-07-07 19:26) [0]

Вот тут подсказали вариант, но он громоздкий, помню раньше как-то одной строкой всё делалось, а теперь оптимум вот этот код:
var
P: PChar;
begin
with Memo1 do
begin
SelLength := 0;
P := PChar(Lines.Text) + SelStart;
while not (P^ in [#10, #26]) do
begin
P := P + 1;
SelStart := SelStart + 1;
end;
end;

Подскажите старый вариант ПЛИЗЗЗ.


 
Song   (2003-07-07 19:31) [1]

EM_LINEINDEX - надёшь смещение следующей строчки, потом вычитаешь 2 байта, этим находишь индекс конца предыдущей.


 
IronHawk   (2003-07-07 19:32) [2]


> Song © (07.07.03 19:31)

Ты явно смеешься, это тоже как минимум 3-4 строки...


 
Ученик   (2003-07-07 19:35) [3]

SendMessage(Memo1.Handle, wm_keydown, vk_end, 0)


 
Song   (2003-07-07 19:37) [4]

2IronHawk © (07.07.03 19:32)
Ну так здесь надо выбрать: программирование или извращение.


 
IronHawk   (2003-07-07 19:44) [5]


> Ученик © (07.07.03 19:35)

8-/
8-О
Это что-то новое!

> Song © (07.07.03 19:37)

Мне надо программирование без извратов!
Ну ведь помнил же!

Там вроде через TStringList...


 
Ученик   (2003-07-07 19:56) [6]

>IronHawk © (07.07.03 19:44)
Очередной претендент на 700 тем ? :-)


 
Babay   (2003-07-08 06:33) [7]

А может так?
Memo1.selStart:=Length(memo1.text);


 
BillyJeans   (2003-07-08 09:08) [8]

PostMessage(Memo1.Handle, WM_KEYDOWN, 35, 17);


 
IronHawk   (2003-07-08 11:12) [9]


> Ученик © (07.07.03 19:56)

Не на 700 тем, а на 2-3 точных ответа!

А ты что, мой ярый поклонник, и читал ту ветку?

> Babay © (08.07.03 06:33)

Что-то тип такого...

> BillyJeans © (08.07.03 09:08)

Блин, Сонг №2, Вы чуть что, всё через меседжи, да там проще как-то было определялась строка, а потом делался переход курсором в её конец.


 
IronHawk   (2003-07-08 12:06) [10]

Ок, есть номер строки, как найти сколько символов в ней?
Как мне передвинуться в этой сроке курсор и поставить его после последнего символа?



 
Radionov Alexey   (2003-07-08 12:18) [11]

>IronHawk © (08.07.03 12:06)
Var P : TPoint;
Idx : Integer; // Известный номер
begin
P.Y := Idx;
P.X := Length(memo1.Lines[P.Y]);
Memo1.CaretPos := P;
end;


 
Radionov Alexey   (2003-07-08 12:19) [12]

Только не забудь назначить Idx. Первая строка имеет индекс 0


 
IronHawk   (2003-07-08 12:20) [13]


> Radionov Alexey © (08.07.03 12:18)

О, уже что-то!
И без всяких сенд меседжей!


 
Radionov Alexey   (2003-07-08 12:24) [14]

>IronHawk © (08.07.03 12:20)
Ну да, как же "без меседжей" :)

procedure TCustomMemo.SetCaretPos(const Value: TPoint);
var
CharIdx: Integer;
begin
CharIdx := SendMessage(Handle, EM_LINEINDEX, Value.y, 0) + Value.x;
SendMessage(Handle, EM_SETSEL, CharIdx, CharIdx);
end;




 
MBo   (2003-07-08 12:25) [15]

одна длинная строка - то, что Song прописал ;)
with Memo1 do SelStart:=Perform(EM_LineIndex,1+Perform(EM_LineFromChar,SelStart,0),0)-2;


 
IronHawk   (2003-07-08 12:29) [16]


> MBo © (08.07.03 12:25)

Тоже супер,
Я так думаю, чтоль FAQ попутно писать?

Song
MBo
Radionov Alexey

Благодарствую!


 
IronHawk   (2003-07-08 12:57) [17]


> MBo © (08.07.03 12:25)

Супер, то что доктор прописал!



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

Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
6-67953
LedWorm
2003-05-13 21:53
2003.07.21
Открытие Браузера по событию.


3-67702
Andriano
2003-06-27 11:08
2003.07.21
DBGrid. Значение поля целиком в виде подсказки


1-67849
AndrewVolkov
2003-07-07 21:17
2003.07.21
Меня этот Popup Добьет


1-67897
PONTIY
2003-07-08 08:55
2003.07.21
Как создать экземпляр формы с параметром?


14-67980
Карелин Артем
2003-07-07 11:48
2003.07.21
Буржуйский форум по дельфи. ХОРОШИЙ.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский