![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка WM_SETTEXT [D7, 2000]
alexnmsk © (2008-10-07 14:32:00)Добрый день. Делаю обработку сообщение WM_SETTEXT для того, чтобы заменить символы табуляции на '->'
procedure TSyntMemo.WMSetText(var Message: TWMSetText);
var
S: String;
begin
if Message.Text=nil Then Exit;
if Message.Text='' Then Exit;
S:=AnsiReplaceText(String(Message.Text), #9, '->');
// StrDispose(Message.Text);
GetMem(Message.Text,Length(S)+1);
StrCopy(Message.Text, PChar(S));
inherited;
end;
В таком виде все работает. Вопрос - нужно ли освобождать память, занятую прошлым значением Message.Text, если да, то как?
Григорьев Антон (2008-10-07 14:45:00) [1]Не нужно. Это толжен сделать тот, кто вызвал сообщение. А вот ту память, которую вы выделили с помощью GetMem, нужно освободить после inherited, иначе будет утечка.