Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В чем смысл и разница? / 18 сообщений из 18, страница 1 из 1
10.07.2019, 08:46
    #39835775
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
Попалось на глаза такое:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
TfrmProject = class(TForm)
    lblProjID: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    type
      TProjActType = (paSingle, paMultiple);

    var
      fActivationType: TProjActType;
      fProjID: integer;
      fURL: string;
  public
    property ProjID: integer write fProjID;
  end;



Объясните простым языком - зачем помещать type и var в приватную секцию формы? Что это дает? В каких случаях рекомендуется так писать?
Переменные, описанные в привате - чем они отличаются от переменных, описанных ниже секции implementation модуля формы?
...
Рейтинг: 0 / 0
10.07.2019, 08:50
    #39835778
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
Такое должно и может использоваться только внутри этого класса. Для внутреннего потребления.
...
Рейтинг: 0 / 0
10.07.2019, 08:59
    #39835780
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
А если убрать var из описания переменных в привате, например:
Код: pascal
1.
2.
3.
  private
      fProjID: integer;
      fURL: string;


что изменится? В чем разница между "var fProjID: integer;" и просто "fProjID: integer;"?
...
Рейтинг: 0 / 0
10.07.2019, 09:01
    #39835783
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYing,

var заменится type.

Не проще-ли проверить, чем ждать ответа на форуме?
...
Рейтинг: 0 / 0
10.07.2019, 09:04
    #39835785
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
Снаружи лишнего не видно.
...
Рейтинг: 0 / 0
10.07.2019, 09:13
    #39835789
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
wadmanvar заменится type.
Вопрос не про это. Допустим, в привате так:
Код: pascal
1.
2.
3.
4.
  private
      intA: integer;
    var
      intB: integer;


В чем отличие intA от intB???
...
Рейтинг: 0 / 0
10.07.2019, 09:15
    #39835790
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYingВопрос не про это.
Вопрос и не про это был, а про это:
LiYing
Код: pascal
1.
2.
3.
4.
5.
    type
      TProjActType = (paSingle, paMultiple);

    var
      fActivationType: TProjActType;



[рукалицо] что будет если убрать var?
...
Рейтинг: 0 / 0
10.07.2019, 09:17
    #39835795
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
wadmanВопрос и не про это был, а про это:

Еще раз внимательно прочитайте мой 2-й пост, особенно последнее предложени.
...
Рейтинг: 0 / 0
10.07.2019, 09:21
    #39835799
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYing,

Во втором случае разницы нет.
...
Рейтинг: 0 / 0
10.07.2019, 09:21
    #39835802
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYingwadmanВопрос и не про это был, а про это:

Еще раз внимательно прочитайте мой 2-й пост, особенно последнее предложени.
Сначала идет описание типа, затем переменная с ним.
Не торопись, подумай часик-другой и не смешивай 2 разные ситуации.
...
Рейтинг: 0 / 0
10.07.2019, 09:34
    #39835805
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYing,

Для изоляции имён. Что бы можно было и не светить типом, и описать переменную в интерфейсной части. Но дизайн языка сделан ИМХО очень коряво, объекты правда и так были не очень реализованы, но эти добавки ещё хуже выглядят. Текущий пример это подтверждает: фактически свойством нельзя воспользоваться вне этого модуля.
...
Рейтинг: 0 / 0
10.07.2019, 10:18
    #39835826
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
kealon(Ruslan)фактически свойством нельзя воспользоваться вне этого модуля.
Почему нет-то? У свойства тип Integer, а что там внутри происходит - тому кто обращается знать не требуется.
...
Рейтинг: 0 / 0
10.07.2019, 11:26
    #39835869
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
alekcvp,

опиши public свойство с приватным типом
...
Рейтинг: 0 / 0
10.07.2019, 12:19
    #39835902
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
kealon(Ruslan),

Ты написал "текущий пример это подтверждает", - в текущем примере в свойстве тип не приватный.
...
Рейтинг: 0 / 0
10.07.2019, 12:28
    #39835910
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
alekcvp,

немного додумал, запрещено?
...
Рейтинг: 0 / 0
10.07.2019, 12:44
    #39835917
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
LiYing,

Если вы внутри объявите type, то как компилятору понять где закончился блок типов и начался блок переменных.
В случае
Код: pascal
1.
2.
3.
4.
5.
6.
private
  var
    F: Int32;

private
    F: Int32;


Разницы нет.

Но внутренние типы придумали для тех кто не пишет логику на формах.
...
Рейтинг: 0 / 0
10.07.2019, 13:25
    #39835938
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
X-CiteНо внутренние типы придумали для тех кто не пишет логику на формах+100500
...
Рейтинг: 0 / 0
10.07.2019, 13:53
    #39835954
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чем смысл и разница?
kealon(Ruslan)alekcvp,

немного додумал, запрещено?

Писать про один пример, имея в виду другой? Не запрещено, но... странно.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В чем смысл и разница? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]