|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Дополнительные возможности Дельфи
Вот собственно такая интересная инфа, для меня например это новость.
Оказывается в структуре Record можно описывать еще и функции, процедуры. Для меня достаточно странно смотрится такой код: Код:
Type TMyRec = record procedure Test; end; procedure TMyRec.Test; begin // %) end; Var MyRec: TMyRec; begin MyRec.Test; end. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#2
|
|||
|
|||
Это с какой версии?
Совсем все из C/C++ перетащили. Осталось только шаблоны перетащить и будут отличия в begin вместо { и end вместо }... |
#3
|
||||
|
||||
Проверял на 2009, 2010 - работает. Более ранней под рукой нет.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
на Delphi 6 "END expected but PROCEDURE found" на
Код:
Type TMyRec = record procedure Test; end; Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Да я тоже про это не знал... Эта возможность появилась походу когда борланд делфи купила ембакадеро, и сразу же они встроили эту функцию...
ЗЫ может это и не новость для многих, но я только вчера узнал, что в более новых версиях делфи (например делфи 2010) есть возможность запуска без дебагера (Shift+Ctrl+F9) ... Помогаю за Спасибо |
#6
|
||||
|
||||
Еще оказывается и свойства поддерживаются. Обалдеть.
Собственно это я выкопал в результате изучения IOUtils Для меня было полной неожиданностью наткнуться на возможности которые предоставляет данный модуль при работе с файловой системой. Странно, что до сих пор примеров использования этого модуля я не встречал, а возможности впечатляют. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
А еще в делфях есть такое:
Код:
program Project5; {$APPTYPE CONSOLE} uses SysUtils; type TRec=object procedure Proc; end; var Rec:TRec; procedure TRec.Proc; begin readln; end; begin Rec.Proc; end. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 07.11.2010 в 19:29. |
#8
|
||||
|
||||
Здесь несколько другое - радикальное расширение возможностей всем привычной еще с Паскаля структуры record.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Да. Это интересно и заставляет задуматься (о возможном применении)...
В частности, в контексте типизированных файлов. Сохранится ли вся запись (с "методами") ? Надо будет попробовать. Это оч.полезная инфа. Спс. |
#10
|
|||
|
|||
В D 2009 такой вариант прошел:
Код:
Type TMyRec2 = record sProp : string[20]; R1 : real; R2 : real; function R1_plus_R2 : real; procedure ShowRes; end; ... function TMyRec2.R1_plus_R2 : real; begin Result:=R1+R2; end; procedure TMyRec2.ShowRes; begin ShowMessage(sProp+' = '+FloatTostr(R1_plus_R2)); end; ........ ........ ........ procedure TForm1.SpeedButton2Click(Sender: TObject); Var MyRec: TMyRec2; F : file of TMyRec2; begin AssignFile(F,'C:\!_TMyRec2.dat'); Rewrite(F); MyRec.sProp:='Сумма'; MyRec.R1:=3.1415926; MyRec.R2:=MyRec.R1/3; Write(F,MyRec); CloseFile(F); end; procedure TForm1.SpeedButton3Click(Sender: TObject); Var MyRec: TMyRec2; F : file of TMyRec2; begin AssignFile(F,'C:\!_TMyRec2.dat'); Reset(F); Seek(F,0); Read(F,MyRec); CloseFile(F); MyRec.ShowRes; end; Еще раз Спс Страдальцу. Последний раз редактировалось roamer, 09.11.2010 в 20:47. |
#11
|
|||
|
|||
Цитата:
В D5 и D7 тоже не прошел вариант. Последний раз редактировалось roamer, 09.11.2010 в 23:18. |
#12
|
||||
|
||||
Это появилось с делфи 2005 вроде
Помогаю за Спасибо |