Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Возможно интересный вопрос по указателям )   Найти похожие ветки 

 
Ksenom ©   (2006-05-07 22:32) [0]

Столкнулся с непонятной мне вещью.
Я создаю свой тип
type
   TDat = record
     Nod :byte;
     Id  :integer;
     Value:Variant;
 end;

Далее где то в коде делаю как положенно Dat:^TDat
Далее как и положенно New(Dat)
А теперь непонятное!

Dat.id:=123;
Dat^.id:=123;

Обе строки работают и более того аналогичным образом можно осуществлять доступ к значения.
Почему?
В книгах я читал что второй вариант правельный, но работает почему то и первый...
Буду благодарен если мне разъеснят этот вопрос.


 
Desdechado ©   (2006-05-07 22:49) [1]

> Обе строки работают
т.е выполняется присваивание?
а как насчет дальнейшей работы с указателем? не плюется?


 
jack128 ©   (2006-05-07 22:50) [2]

Ksenom ©   (07.05.06 22:32)
В книгах я читал что второй вариант правельный, но работает почему то и первый...

Потому борланды некоторое время назад расширили синтаксис.


 
Sergey Masloff   (2006-05-07 22:53) [3]

А чего разъяснять. Это ж рекорд. Для упрощения синтаксиса когда ты пишешь
Dat.id:=123;
реально все равно выполняется
Dat^.id:=123;

Ну просто в компилятор встроено.


 
Sergey Masloff   (2006-05-07 22:55) [4]

Desdechado ©   (07.05.06 22:49) [1]
>а как насчет дальнейшей работы с указателем? не плюется?
А чего ей плеваться? В рекордах методов не бывает же. Или я отстал и в паскале эту фигню уже разрешили?


 
Джо ©   (2006-05-07 22:59) [5]

> В рекордах методов не бывает же. Или я отстал и в паскале
> эту фигню уже разрешили?

Да, в D2006 уже есть.


 
Sergey Masloff   (2006-05-07 23:05) [6]

Джо ©   (07.05.06 22:59) [5]
>Да, в D2006 уже есть.
Прекрасно. Я рад что остановился на семерке. Дальнейшие ходы только укрепляют меня в правильности решения.


 
Ksenom ©   (2006-05-07 23:06) [7]

А в D2005? Я на нём творю )
Не плюётся... я тоже сначала подумал что упрощение, но как то непривычно )


 
Ksenom ©   (2006-05-07 23:08) [8]

Sergey Masloff, эксперементруй... D2005-2006 номного удобнее...


 
Kolan ©   (2006-05-07 23:09) [9]

Джо ©   (07.05.06 22:59) [5]
Правда что-ли? А зачем это надо? Есть же классы. И как это выглядит?


 
Sergey Masloff   (2006-05-07 23:12) [10]

Ksenom ©   (07.05.06 23:08) [8]
Спасибо. Ничего удобного там (в 2005) нет.
Для Win32 меня прекрасно устраивает семерка, для .NET использовать Delphi безумие.


 
Джо ©   (2006-05-07 23:47) [11]

> [9] Kolan ©   (07.05.06 23:09)
> Джо ©   (07.05.06 22:59) [5]
> Правда что-ли? А зачем это надо? Есть же классы. И как это
> выглядит?


type
 TMyRecord = record
   A: Integer;
   procedure B;
 end;

и аналогичная классам реализация.

Иногда удобно. Я часто использую как своего рода "конструкторы" для записей, реализацию проверки на равенство, и в тому подобных случаях.


 
Kolan ©   (2006-05-08 00:29) [12]

Ухты действительно. Только в чем преимушества/необходимость таких вешей так и не понял... :)

А где взять список нововведений с примерами?


 
Джо ©   (2006-05-08 00:54) [13]

> А где взять список нововведений с примерами?

Тут статья:
http://bdn.borland.com/article/0,1410,33411,00.html


 
jack128 ©   (2006-05-08 00:55) [14]

Kolan ©   (08.05.06 0:29) [12]
Только в чем преимушества/необходимость таких вешей так и не понял... :)

приемущество записи перед классом в том, что запись не нужно создовать, а самое главное - не нужно УНИЧТОЖАТЬ.



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

Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.014 c
6-1138198680
MetalFan
2006-01-25 17:18
2006.05.21
как заполнить программно <input type=file object...


4-1140602600
voe
2006-02-22 13:03
2006.05.21
Нужна помощь с WinRAR`ом


2-1146460256
it_work
2006-05-01 09:10
2006.05.21
кодировка при получении письма


3-1143795254
гога
2006-03-31 12:54
2006.05.21
Сортировка в TDBGridEh


3-1143455830
ZSergey
2006-03-27 14:37
2006.05.21
Как сделать копию записи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский