Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Новые возможности Delphi, делимся опытом 
:(
    Опции темы
Святогор
Дата 16.8.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Предлагаю здесь выкладывать новые/малоизученные возможности дельфей.
Начинаю.

Перегрузка операторов:
Код


TMyClass = class
    class operator Add(a, b: TMyClass): TMyClass; // Addition of two operands of type TMyClass
    class operator Subtract(a, b: TMyClass): TMyclass; // Subtraction of type TMyClass
    class operator Implicit(a: Integer): TMyClass; // Implicit conversion of an Integer to type TMyClass
    class operator Implicit(a: TMyClass): Integer; // Implicit conversion of TMyClass to Integer
    class operator Explicit(a: Double): TMyClass; // Explicit conversion of a Double to TMyClass
end;

// Example implementation of Add class operator 
TMyClass.Add(a, b: TMyClass): TMyClass;
begin
  ...
end;

var
x, y: TMyClassbegin
  x := 12; // Implicit conversion from an Integer 
  y := x + x; // Calls TMyClass.Add(a, b: TMyClass): TMyClass 
  b := b + 100; // Calls TMyClass.Add(b, TMyClass.Implicit(100)) 
end;



Методы в структурах(рекордах):

Код

type
  TMyRecord = record
    type
      TInnerColorType = Integer;
    var
      Red: Integer;
    class var
      Blue: Integer;
    procedure printRed();
    constructor Create(val: Integer);
    property RedProperty: TInnerColorType read Red write Red;
    class property BlueProp: TInnerColorType read Blue write Blue;
  end;

constructor TMyRecord.Create(val: Integer);
begin
  Red := val;
end;

procedure TMyRecord.printRed;
begin
  writeln('Red: ', Red);
end;


Константы в классах:

Код

type
  TClassWithConstant = class
    public 
      const SomeConst = 'This is a class constant';
  end;
            

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(TClassWithConstant.SomeConst);
end;



PM MAIL   Вверх
Yanis
Дата 16.8.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Предлагаю читать. Справку тоже.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
StepRu
Дата 16.8.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Одна из возможностей, которая меня порадовала, это писать название типов, процедур, переменных и т.д. на русском =) Правда я не знаю, на сколько это надёжно для переносимости кода например на Win98.
PM MAIL   Вверх
Snowy
Дата 16.8.2007, 22:20 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(StepRu @  16.8.2007,  21:58 Найти цитируемый пост)
Одна из возможностей, которая меня порадовала, это писать название типов, процедур, переменных и т.д. на русском =)
Ну это сомнительный плюс.
Мы же не хотим писать на 1С  smile 

Цитата(StepRu @  16.8.2007,  21:58 Найти цитируемый пост)
Правда я не знаю, на сколько это надёжно для переносимости кода например на Win98.
<tp проблем переносится на любую винду с той же системной локалью.
Однако возникнут проблемы при попытке запуска таких программ на английской винде.
Точнее не всех программ, а тех, где имена переменных попадут в RTTI.
Например назвать кнопку по русски - "Кнопка1". Такое имя пойдёт в RTTI, пойдёт в exe.
При попытке запуска под английской виндой, произойдёт стандартный глюк конвертации юникода и кнопка получит имя "??????1", что вызовет сбой подгузки dfm и отказ дальнейшей работы.

Да, добавлено много приятных вещей в язык. Но это всё мелочи. Да ещё и обратно несовместимые.
Вот дженерики, которые появятся в 2008-й версии - вот это круто.
А русские переменные, методы записей... Это всё баловство.
Методы записей - это вообще чушь. Ну есть такая возможность, ну и ладно. Юзать её нет смысла, но возможность есть.
А вот перегрузка операторов - это вообще зло.
Эта концепция сближает с плюсами, но попирает основные каноны языка.
Не нужно превращать язык в аморфную массу, типа плюсов. 
Основные каноны паскаля - строгость, чёткость и отсутствие разночтений.
Код должен быть однозначно читаем, а не заставлять строить предположения, что наверное где-то есть что-то........
PM MAIL   Вверх
Zero
Дата 16.8.2007, 22:42 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(Snowy @  16.8.2007,  22:20 Найти цитируемый пост)
Цитата(StepRu @  16.8.2007,  21:58 )
Одна из возможностей, которая меня порадовала, это писать название типов, процедур, переменных и т.д. на русском =)

Ну это сомнительный плюс.
Мы же не хотим писать на 1С

Было бы здорово, если бы сделали аналог делфей с операторами и синтаксисом 1с.
А то недавно получил задание, которое делать на делфи пришлось.... А забыл его напроч после 1с-ки... smile  И постоянно забываю что после всяких оператов типа циклов, ветвления и т.п. приходится ещё дурацкие бегин-енды втыкать и прочую лишнию ерунду во всяких местах. smile Ну ужос просто... smile И как я раньше на нём программировал... smile  smile 
PM MAIL ICQ   Вверх
Snowy
Дата 17.8.2007, 01:26 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Так ты кирзачи сними, а то уже привык вместо программирования 1С месить  smile 
Цитата(Zero @  16.8.2007,  22:42 Найти цитируемый пост)
Было бы здорово, если бы сделали аналог делфей с операторами и синтаксисом 1с.
Упаси бог от такого "щасстя"...

PM MAIL   Вверх
aktuba
Дата 17.8.2007, 03:34 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

Было бы здорово, если бы сделали аналог делфей с операторами и синтаксисом 1с.


ЖЭСТЬ... Помню, кто-то рассказывал, что переделывал конфигурацию какую-то в 1С, прочел названия таблиц - "левая таблица", "нижняя таблица" и т.д... Что-за бред...

Цитата

И как я раньше на нём программировал...


А ты на нем не программировал - так, баловался. Иначе понимал бы очевидные плюсы конструкции begin-end.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Святогор
Дата 17.8.2007, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Неужели тема сама по себе никому не интересна? Будем захламлять что ли?  smile 
PM MAIL   Вверх
aktuba
Дата 17.8.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

Неужели тема сама по себе никому не интересна? Будем захламлять что ли?


Да нет, не то чтобы не интересна, но ... Как бы помягче сказать... Если мне нужно узнать что нового в Delphi - я пойду на сайт codegear. Если мне что-то новое встретилось на форуме/в сети и т.д. - я нажимаю F1...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Святогор
Дата 17.8.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.8.2006

Репутация: нет
Всего: нет



Ну всё понятно тогда. Не хотите-как хотите.  smile 
PM MAIL   Вверх
bems
Дата 17.8.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



вы мне вот скажите - это все под дотНет только или новые язаковые возможности касаются и Вин32?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Rennigth
Дата 17.8.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(bems @  17.8.2007,  12:20 Найти цитируемый пост)
вы мне вот скажите - это все под дотНет только или новые язаковые возможности касаются и Вин32? 

Многие нововведения конечно только под DotNet, но основная масса под W32. Покрайней мере все что в этой теме упомянулось и многое другое.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Snowy
Дата 17.8.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(bems @  17.8.2007,  12:20 Найти цитируемый пост)
вы мне вот скажите - это все под дотНет только или новые язаковые возможности касаются и Вин32?
Уни.
Все нововведения в языке вводятся и в дотнет и вин32.
Правда в некоторых версиях дельфи, нововведения появляются сначала в дотнет версии.
Например дженерики появятся в дотнет версии уже в Delphi.NET2007, а в вин32 только в 2008-й.
Но это касается только вещей, которые пришли из дотнета.
В остальном всё идёт синхронно.

Например имена юнитов через точку в 7-ке. Сделано для поддержки дотнета, но работает и там и там. Правда бывает глючит smile
PM MAIL   Вверх
Rennigth
Дата 17.8.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Snowy @  17.8.2007,  16:43 Найти цитируемый пост)
дженерики

Snowy, эээ, а что это такое? наверное я отстал от жизни  smile

Добавлено через 3 минуты и 44 секунды
извините за  smile, просто как я понял это жаргонное выражение какой-то технологии, а я такого не знаю. гугл с яндексом по запросу Дженерики выдал на несколько страниц сайты на тему 
Цитата

Виагры, Сиалиса и Левитры!  

 smile  smile  smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Snowy
Дата 17.8.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



про generic я писал на delphilab.
Сходи хоть раз для общего развития  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1018 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.