Заметки
Что в имени тебе моем?

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Оно на памятном листке
Оставит мертвый след, подобный
Узору надписи надгробной
На непонятном языке.

А. С. Пушкин

Все мы хорошо знакомы с правилами формирования имен в Delphi, среди которых есть и такое – имя пишется в одно слово, если пробел все же необходим, он заменяется символом нижнего подчеркивания “_”.

Типичный пример объявления переменной выглядит следующим образом:

var
  s: string;
  i: integer;
  b: boolean;

А теперь представьте, как было бы здорово давать переменным такие имена:

var
  My str: string;
  My int: integer;
  My bool: boolean;

Кто-то возможно скажет: “Какой абсурд, это невозможно, да и такие имена могут запутать разработчика”. Что касается второго утверждения, то это дело вкуса, о которых, как известно, не спорят, а вот верно ли первое утверждение?

Тут надо вспомнить, что у нас есть 2 типа пробелов – обычный (с кодом 32) и неразрывный (с кодом 160, для ввода символа нужно нажать клавишу Alt, и не отпуская ее нажать на NUM-паде последовательность цифр 0 + 1 + 6 + 0). Однако старые версии компилятора, работающие с ANSI, не делают между ними различий, считая и тот и другой пробел обычным. Но все изменилось с пришествием Unicode! Теперь эти пробелы не отождествляются (я проверил это в Delphi XE), и неразрывный пробел может являться частью имени. А если вспомнить, что в Unicode мы можем давать переменным имена на любом языке (включая русский), перед нами открываются новые горизонты в оформлении исходного кода!

Вот пример, который замечательно компилируется в Delphi XE.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Вопрос = string;
  Ответ на вопрос = string;

  Сообщение = procedure( const Msg: string );

var
  Form1: TForm1;
  Не плохо бы увидеть сообщение: Сообщение;

implementation

{$R *.dfm}

function Сколько сейчас времени: Ответ на вопрос;
begin
   Result := TimeToStr( Time );
end;

function Какое сегодня число: Ответ на вопрос;
begin
   Result := FormatDateTime( 'dd mmmm yyyy', Date );
end;

procedure Скажите пожалуйста( Вопрос: Вопрос );
begin
   Не плохо бы увидеть сообщение( Вопрос );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   // @Не плохо бы увидеть сообщение := @ShowMessage;
   Не плохо бы увидеть сообщение := ShowMessage;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Скажите пожалуйста( Сколько сейчас времени );
   Скажите пожалуйста( Какое сегодня число );
end;

end.

Пользоваться этим или нет, каждый решит для себя сам, я же желаю вам не скучного программирования!

.: Пример к данной заметке :.


При использовании материала - ссылка на сайт обязательна