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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.069 c
15-1329597005
Юрий
2012-02-19 00:30
2013.03.22
С днем рождения ! 19 февраля 2012 воскресенье


15-1347568203
Юрий
2012-09-14 00:30
2013.03.22
С днем рождения ! 14 сентября 2012 пятница


2-1334607403
Непомнящий
2012-04-17 00:16
2013.03.22
Кончается память


2-1346669848
Phoenix_
2012-09-03 14:57
2013.03.22
что будет быстрее


15-1339653614
KSergey
2012-06-14 10:00
2013.03.22
Ассемблерные вставки и переносимость кода





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский