![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приведение левой части к типу
Cobalt © (2004-08-12 12:06:00)Увидел тут такую вот конструкцию:
if Win32Platform = VER_PLATFORM_WIN32_NT then
PWideChar(MSGBOXPARAMS.lpszIcon) := 'MAINICON'
else
MSGBOXPARAMS.lpszIcon := 'MAINICON';
(см. http://delphimaster.ru/cgi-bin/forum.pl?id=1092250514&n=5)
Никогда с таким не сталкивался, что левую часть тоже можно приводить, обычно считал, что приводят только правую часть.
Скажите, в каких случаях удобнее использовать левосторонее приведение?
Cobalt (2004-08-12 12:31:00) [1]2 Sandman25 © (12.08.04 12:19) [3]
1) А тогда иконка не показывается :) (см. ветку из WinAPI)
2) ИМХО, тут нагляднее будет такой пример:
var
arr: array[1..10] of byte;
FloatVar: Extended;
begin
Extended(arr) := FloatVar;
Sandman25 (2004-08-12 12:19:00) [2]Как насчет
1) Msg.lpszIcon:= PAnsiChar('MAINICON')?
Если
P: Pointer;
I: Cardinal;
то
1)Cardinal(P) := I;
2)P := Pointer(I);
Cobalt (2004-08-12 12:16:00) [3]Такая вот вещь:
1) Msg.lpszIcon:= PWideChar('MAINICON');
Не приводится (ну, это понятно - lpszIcon: PAnsiChar;)
2) PWideChar(Msg.lpszIcon):= 'MAINICON';
Так приводится.
Выходит, что приведение левой части необходимо в тех случаях, когда необходимо в переменную некоего типа требуется положить данные другого формата. Так?
Sandman25 (2004-08-12 12:08:00) [4]Когда приводить левую часть удобнее, чем правую :)