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

Вниз

Как лечить   Найти похожие ветки 

 
Aleksandr   (2002-08-07 15:13) [0]

Достали меня эти сообщения компилятора. В коде:

procedure TStringCollectionList.SetStr( I : integer; Value: ShortString);
begin
DisposeStr( PString( Items[I]));
Items[I] := NewStr( Value)
end;

он предупреждает, что Symbol "DisposeStr" is deprecated и Symbol "NewStr" is deprecated. Чего ему надо?

и в коде
Result := GlobalAllocPtr(HeapAllocFlags, NewCapacity)

он о HeapAllocFlags он предупреждает, что Specific to a platform. То же с unit FileCtrl. Не просто же так компилер ругается? Какими-нить дефайнами это лечить, что ли?


 
Gonza   (2002-08-07 15:41) [1]

Нажми F1 на этих сообщениях и он тебе поможет


 
Ученик   (2002-08-07 15:45) [2]

Help-Delphi Delp-Index-$WARN


 
ZrenBy   (2002-08-07 15:45) [3]

{$WARN UNIT_PLATFORM OFF}
и т.д и т.п.


 
Aleksandr   (2002-08-07 17:22) [4]

Да в курсе я их... только одна проблема - он чихать хотел на эти директивы. Все равно показывает.


 
Ученик   (2002-08-07 17:26) [5]

А где они поставлены ?


 
Внук   (2002-08-07 17:32) [6]

function NewStr(const S: string): PString;

Description

Do not use NewStr in new applications. This function is provided for backward compatibility only.

procedure DisposeStr(P: PString);

Description

DisposeStr is only provided for backward compatibility with existing code that allocated a string using NewStr. Both DisposeStr and NewStr are obsolete.

То же самое можно сказать про GlobalAllocPtr...
Поэтому не от сообщений нужно избавляться, а от подобных вызовов, IMHO


 
Aleksandr   (2002-08-08 12:12) [7]

2 Внук:

Во-во, именно это меня и интересовало. В том плане, что конкретно следует сделать в приведенных кодах и какие последствия это повлечет? Сорри, моего английского для толкования Хелпа не хватает. Я из него понимаю только, что методы эти - пережиток древности (а как эта программа будет работать в Windows"95 - не окажется ли, что там эта древность и нужна)?


 
Anatoly Podgoretsky   (2002-08-08 12:16) [8]

Да надо не с последствиями бороться, а с причинами.
А к чему приведет, ну скажем к поиску неожиданных ошибок, сказано не использовать, так будь законопослушным членом общества.


 
Ученик   (2002-08-08 12:46) [9]

А на что надо менять использование FileCtrl ?


 
Внук   (2002-08-08 13:06) [10]

Aleksandr © (08.08.02 12:12)
"а как эта программа будет работать в Windows"95 "
Термин обратной совместимости (backward compatibility) здесь имеет немного другое значение. Представь, программа написана N лет назад. Естественно, она использует вызовы устаревших функций и процедур. Если убрать их поддержку в новых ОС, то эти программы перестанут работать, например, на Win2000. Поэтому их и оставляют. По сути же эти функции представляют собой заглушки, которые либо перенаправляют вызовы новым функциям, либо не делают ничего (последнее относится к некоторым устаревшим функциям в модулях Delphi, компилятор сам вставляет необходимый код вместо вызова устаревшей функции). Новые же функции обязаны работать в любых версиях ОС, поэтому и старые программы работают в них. То есть опасения напрасны, если особо не оговорено противное.
О таких нерациональных вызовах и предупреждает компилятор. На что их менять - этот вопрос не сложен, думаю и сам справишься.



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
6-60766
Guardian
2002-06-05 06:41
2002.08.19
NMFTP


1-60609
Cr@sh
2002-08-08 13:00
2002.08.19
Помогите примером: использование QReport без баз данных.


4-60916
darkin
2002-06-16 12:31
2002.08.19
как копировать файлы....???


3-60522
Demon[DZ]
2002-07-30 12:09
2002.08.19
Помогите ! У меня проблема с UDF (Interbase 6.0)


3-60518
Ярослав
2002-07-30 10:11
2002.08.19
db-vista