Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка 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, иначе будет утечка.


Наверх

Титульная страница Поиск, карта сайта Написать письмо