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

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

Вопрос по OemToChar [D5, Win95/98]


Марина ©   (2002-03-19 10:08:00) 

Подскажите, пожалуйста, почему вот такой код

Memo1.Lines.LoadFromFile("astra.cod");
Src := Memo1.Lines.GetText;
OemToChar(Src, Str);
Memo1.Lines.Text := StrPas(Str);

дает ошибку времени выполнения типа EAccessViolation на строке OemToChar(Src, Str), но после повторного нажатия на F9 тем не менее отрабатывает. Заранее спасибо.


McSimm   (2002-03-19 10:37:00) [1]

Это происходит потому, что под Str не выделена память. Необходимо перед вызовом oemtochar обеспечить необходимую длину Str, например SetLength.

Также можно воспользоваться самой Src для получения результата:
OemToChar(PChar(Src), PChar(Src));
Memo1.Lines.Text := Src


Shaman_Naydak   (2002-03-19 10:36:00) [2]

ошибка вылетает из-за того, что под Str ты память не выделил.
Лови гитару
var S: string;
begin
Memo1.Lines.LoadFromFile("astra.cod");
S:=Memo1.Text;
OemToChar(PChar(S), PChar(S));
Memo1.Text:=S;
end;


Наверх

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