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

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

Приведение левой части к типу


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]

Когда приводить левую часть удобнее, чем правую :)


Наверх

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