Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#31: 2016-06-09 15:51:17 ЛС | профиль | цитата
Согласен.
Но, в выходные. Надеюсь - пожара нет
[offtop]у меня началась сменная работа по 12 часов - поешь, поспишь, и отдохнуть накогда[/offtop]
карма: 9

0
Разработчик
Ответов: 26300
Рейтинг: 2146
#32: 2016-06-09 16:30:32 ЛС | профиль | цитата
Galkov писал(а):
Надеюсь - пожара нет

Подождем, торопиться некуда.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#33: 2016-06-10 14:01:54 ЛС | профиль | цитата
Ну, например...
карма: 9

0
файлы: 1hihilightmemo1.rar [21.9KB] [536]
Разработчик
Ответов: 26300
Рейтинг: 2146
#34: 2016-06-10 14:29:48 ЛС | профиль | цитата
Galkov писал(а):
Ну, например...

Вроде работает нормально. Подожду еще отзывы и добавлю изменения.
карма: 22

0
Ответов: 1536
Рейтинг: 176
#35: 2016-06-10 16:57:57 ЛС | профиль | цитата
Можно ли как-то приструнить этот перевод строки? Это общий вопрос. Если конкретнее, то нельзя ли сделать так, чтобы курсор не ставился где попало - нужно всё как в обычном мемо. Писать что попало и где попало мне крайне не нужно. Просто прописать в свойствах режим: либо шахматы, либо после третьей вторую не пью. Будьте здоровы, и нам не хварать!
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26300
Рейтинг: 2146
#36: 2016-06-10 20:46:59 ЛС | профиль | цитата
ser_davkin писал(а):
либо шахматы, либо после третьей вторую не пью. Будьте здоровы, и нам не хварать!

Ага -- кошка пошла налево, собака -- направо, обе пошли прямо. Ты хоть сам понял, что сказал?
карма: 22

0
Ответов: 1304
Рейтинг: 405
#37: 2016-06-10 22:59:06 ЛС | профиль | цитата
ser_davkin писал(а):
Если конкретнее, то нельзя ли сделать так, чтобы курсор не ставился где попало - нужно всё как в обычном мемo

ser_davkin, логика автотабуляции не совсем понятна но её можно и отключить, SmartTabs.
карма: 3

0
Ответов: 1536
Рейтинг: 176
#38: 2016-06-11 15:40:49 ЛС | профиль | цитата
Прошу прощения, кажется, змей искуситель меня отпустил. Суть вопроса в том, чтобы новая строка создавалась только исключительно клавишей enter, но не кликом мышью по полю ввода, т.е. так, как это есть в обычном Memo.
Хорошо бы некий выключатель, запрещающий подобное:
533454.gif
И ещё нужен автоперенос строки, опять же как в обычном Memo,

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
файлы: 1533454.gif [109.2KB] [876]
Разработчик
Ответов: 26300
Рейтинг: 2146
#39: 2016-06-11 20:56:51 ЛС | профиль | цитата
ser_davkin писал(а):
Хорошо бы некий выключатель, запрещающий подобное

Ну так отключи его AutoComplete=False
карма: 22

0
Ответов: 1304
Рейтинг: 405
#40: 2016-06-11 22:11:33 ЛС | профиль | цитата
nesco, тут ser_davkin пишет про другое, о запрете продолжения строки установкой курсора в произвольное место.
карма: 3

0
Разработчик
Ответов: 26300
Рейтинг: 2146
#41: 2016-06-11 22:27:15 ЛС | профиль | цитата
MAV писал(а):
тут ser_davkin пишет про другое, о запрете продолжения строки установкой курсора в произвольное место

Аааа, вон оно что.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#42: 2016-06-12 08:14:14 ЛС | профиль | цитата
Слушай, nesco...

Присмотрелся я тут к использованию FParse.
Вспомнил, что это я сам писал комментарий:    // Защиты от Len<=0 -- НЕТ!!!

И - не понравилось мне (см. комментарий):
#pas
procedure THIHiLightMemo.ParseHilighting; //added by Galkov
.....................
UG := FParse(U, '=');
while UG <> '' do begin
UG := Uppercase(UG);
if (UG = 'U') then
include(AttrArr[i].fontstyle, fsUnderline)
else if (UG = 'B') then
include(AttrArr[i].fontstyle, fsBold)
else if (UG = 'C') or (UG = 'I') then
include(AttrArr[i].fontstyle, fsItalic)
else if (UG = 'S') then
include(AttrArr[i].fontstyle, fsStrikeOut);
// Где у нас ГАРАНТИЯ, что тут U<>'' ???
// Более того: у нас есть гарантия, что U='' на последнем "правильном" заходе
UG := FParse(U, '=');
end;
end;
end;

Отсюда, такое предложение:
#pas
procedure THIHiLightMemo.ParseHilighting; //added by Galkov
var i,k:integer; U,UG,str:string;
begin
for i := HS.Count - 1 downto min do
if HS.Items[i] = '' then HS.Delete(i)
else begin
U := HS.Items[i];
str := FParse(U, '=');
if str = '' then HS.Delete(i);
end;
SetLength(AttrArr, HS.Count);
SetLength(TypeArr, HS.Count);
for i := HS.Count - 1 downto min do begin
U := HS.Items[i];
str := FParse(U, '=');
k := PosEx('*', str, 1);
if (k=0)and(Length(str)>2)and(str[1]='{')and(str[Length(str)]='}') then begin
str := Copy(str, 2, Length(str)-2);
dec(k); // устанавливаем признак блока
end;
HS.Items[i] := str;
TypeArr[i] := k;
U := Uppercase(U) + '==';
AttrArr[i].fontcolor := Str2Color(FParse(U, '=')); //++Colors
AttrArr[i].fontstyle := [];
repeat
UG := FParse(U, '=');
if (UG = 'U') then
include(AttrArr[i].fontstyle, fsUnderline)
else if (UG = 'B') then
include(AttrArr[i].fontstyle, fsBold)
else if (UG = 'C') or (UG = 'I') then
include(AttrArr[i].fontstyle, fsItalic)
else if (UG = 'S') then
include(AttrArr[i].fontstyle, fsStrikeOut);
until UG = ''; // Может лучше: (U='') ??? Хотя и так правильно...
end;
end;

Другие вхождения FParse в коде не просматривал. Мои возможности не беспредельны

карма: 9

0
Разработчик
Ответов: 26300
Рейтинг: 2146
#43: 2016-06-12 22:02:37 ЛС | профиль | цитата
Galkov писал(а):
Отсюда, такое предложение:

Вроде работает. Пока добавлять не буду, немного подожду, может еще чего всплывет
карма: 22

0
Ответов: 4662
Рейтинг: 767
#44: 2016-06-13 10:36:56 ЛС | профиль | цитата
MAV писал(а):
о запрете продолжения строки установкой курсора в произвольное место
Вроде это называется "Cursor beyond EOL". Наверное, стоило бы иметь такое свойство.
карма: 26

0
Ответов: 2059
Рейтинг: 132
#45: 2016-06-14 20:30:15 ЛС | профиль | цитата
Наверное тоже в тему.
По ser_davkin
Допустим мы начали следующую строку со сдвигом в n пробелов и все последующие строки начинаются с таким-же сдвигом. Это отлично.
Потом нам надо начать строку без смещения - устанавливаю курсор в начало и всё OK.
Но после перевода строки опять появляется смешение, а по идее не должно так быть - это нонсенс и исправить невозможно никаким образом.
http://forum.hiasm.net/forum_serv.php?q=56&id=4328
карма: 6

0
45
Сообщение
...
Прикрепленные файлы
(файлы не залиты)