Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как установить отступ в ричэдите у всех абзацев?   Найти похожие ветки 

 
TStas   (2012-05-17 12:31) [0]

Почему-то SelectAll и Paragraph.LeftIndent := 10 ничего не даёт


 
TStas   (2012-05-17 12:57) [1]

Вопрос снят. Это делается так:
procedure TStCodeEditor.SetIndents;
var
 S, L: Integer;
begin
 S := SelStart;
 L := SelLength;
 Lines.BeginUpdate;
 SelectAll;
 Paragraph.LeftIndent := 15;
 Paragraph.FirstIndent := 15;
 Paragraph.RightIndent := 10;
 SelStart := S;
 SelLength := L;
 Lines.EndUpdate;
end;


 
Юрий Зотов ©   (2012-05-17 14:40) [2]


> TStas   (17.05.12 12:57) [1]

Маленькая поправка. Парные операции лучше выполнять так:

Lines.BeginUpdate;
try
 ...
finally
 Lines.EndUpdate
end;


 
TStas   (2012-05-17 23:46) [3]

А может быть исключение?


 
Юрий Зотов ©   (2012-05-18 01:00) [4]


> TStas   (17.05.12 23:46) [3]

Оно всегда может быть. Даже если оно и практически невероятно, все равно лучше приучать себя к безопасному стилю. Эта привычка убережет от многих неприятностей.


 
TStas   (2012-05-18 19:40) [5]

Да. Просто интересно, а в случае выделении абзачев в ричэдите откуда оно может появиться?
Сам код поправил, спасибо.


 
Юрий Зотов ©   (2012-05-19 01:01) [6]

> TStas   (18.05.12 19:40) [5]
> откуда оно может появиться?


Есть абсолютная уверенность в том, что VCL не содержит ошибок?

Есть абсолютная уверенность в том, что функции WinAPI, через которые работает VCL тоже не содержат ошибок?

Есть абсолютная уверенность в том, что Paragraph ни при каких условиях не станет невалидной ссылкой?

У меня абсолютной уверенности во всем этом нет.


 
Rouse_ ©   (2012-05-19 01:07) [7]


> TStas   (17.05.12 23:46) [3]
> А может быть исключение?

Конечно. Выход на канву есть? Есть... все что связано с графикой может в любой момент посыпать исключениями...


 
TStas   (2012-05-19 01:14) [8]

Ну да... Как и любой другой API вызов.


 
Rouse_ ©   (2012-05-19 01:33) [9]


> TStas   (19.05.12 01:14) [8]
> Ну да... Как и любой другой API вызов.

Очень хотелось бы увидеть на практике как MessageBeep выдаст исключение...


 
Германн ©   (2012-05-19 01:37) [10]

Я бы ещё добавил.
Если есть вызов какой-либо процедуры, которая изменяет какие-либо условия обычного вывода на экран будь то BeginUpdate или смена вида курсора и т.д. и т.п. обязательно нужен блок try...finally.


 
имя   (2012-05-19 02:09) [11]

Удалено модератором
Примечание: оффтоп


 
Anatoly Podgoretsky ©   (2012-05-19 08:49) [12]


> Вопрос снят. Это делается так:

EM_SETPARAFORMAT



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
2-1345366688
Наивный
2012-08-19 12:58
2013.03.22
Как избежать разрушения после TMyIoClass.Destroy.


15-1340314077
ZV
2012-06-22 01:27
2013.03.22
Компонент Async32 не работает в С++


2-1328968204
Magedon
2012-02-11 17:50
2013.03.22
Broadcast() не работает ((. Что я делаю не так?


8-1230712152
Программер
2008-12-31 11:29
2013.03.22
Как узнать кодек и разрешение видеофайла?


2-1329309791
Киса
2012-02-15 16:43
2013.03.22
Вопрос по компоненту EmbeddedWB