powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работает пространство имен(namespace) в Delphi ?
18 сообщений из 18, страница 1 из 1
Как работает пространство имен(namespace) в Delphi ?
    #39797700
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые гуру, пожалуйста, объясните мне(недалекому), как работает пространство имен в Delphi ?

Я честно вчитываюсь в документацию embarcadero: Using Namespaces with Delphi , но хоть по голове стучи, не могу понять, как это работает.
Предположительно(по логике), это д.б. для организации видимости типов. Но разъяснения в Help какие-то абстрактные. Ничего не понятно.
Кто разобрался в этой теме, пожалуйста, приведите пример namespace.

Спасибо.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797704
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stно хоть по голове стучи, не могу понять, как это работает
Это никак не работает. Нет в дельфях работающих пространств имён. В доке фигня написана.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797712
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyНет в дельфях работающих пространств имён. В доке фигня написана.
Вы это не серьезно.
Вот официальная документация embarcadero: Using Namespaces with Delphi
Только как использовать не понятно. Надеюсь, уважаемые форумчане подскажут.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797714
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,

Вполне серьёзно . Имел разговор на эту тему с нынешним ПМ'ом, правда бестолку.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797728
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том адекватном виде в котором они существуют в других языках в Delphi их нет.
Есть просто 1 файл =1 якобы неймспейс, который будет приставкой к типу, в случае если будет несколько типов с одинаковым именованием.
Сделать 1 неймспейс = много юнитов и видимость в пределах неймспейса и подключение через System.* как-то не дожали... Может запилить в QC
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797734
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteВ том адекватном виде в котором они существуют в других языках в Delphi их нет.
Кажется начинаю понимать. Поправьте, если ошибаюсь:
namespace в Delphi - реализован неявно, как интерфейская часть unit -а.

namespace в Delphi подключается через директиву Uses ...

в Delphi нет иерархических namespace, они все одноуровневые, поэтому директива Uses часто многострочная и трудночитаемая. И вместо компактного vcl.* приходится перечилять длинные толмуды ... Classes, Forms, Graphics, Menus, Controls, StdCtrls, ActnLis,...
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797736
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stИ вместо компактного vcl.* приходится перечилять длинные толмуды ... Classes, Forms, Graphics, Menus, Controls, StdCtrls, ActnLis,...жирно тролишь))))
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797804
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2жирно тролишь))))
Т.е. писать серьезную/техническую информацию - это тролить?!
Я изучаю тему namespace, и мне нужны ответы. Буду признателен.
На "тролить" или офтопик нет времени, сорри :-(
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797842
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stasutp2жирно тролишь))))
Т.е. писать серьезную/техническую информацию - это тролить?!
Я изучаю тему namespace, и мне нужны ответы. Буду признателен.
На "тролить" или офтопик нет времени, сорри :-(

дык нечего изучать-то в данном случае.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797889
AWSVladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stИ вместо компактного vcl.* приходится перечилять длинные толмуды ... Classes, Forms, Graphics, Menus, Controls, StdCtrls, ActnLis,...
Это не эффективно, если следишь за кодом в приложении, т.к. при vcl.* будет дохрена и больше мусора из-за того, что во многих модулях есть блок инициализации в котором создаются объекты для работы этого модуля.
Вот нафига этот мусор если ты не пользуешся этим функционалом?
И вот вспомнить не могу, когда я перечислял длинные толмуды в uses.
Если есть что то списфисское (с) то делаешь шаблон, а потом его вызываешь клонируя или наследуясь и все это списфисское только 1 раз делаешь. А так то Делфя сама автоматом добавляет новые модули.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797905
High.Programer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AWSVladimirпри vcl.* будет дохрена и больше мусора из-за того, что во многих модулях есть блок инициализации в котором создаются объекты
Дык, в нормальных языках NameSpace только для области видимости имен, и больше ни для чего.
Это в Delphi гениально придумали совместить NameSpace(интерфейсный раздел модуля) с разделом инициализации, где создается код.
Гениальность видна, ее не скроешь.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39797992
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто к имеющейся системе модулей прикрутили иерархию в названиях модулей через точку. Чисто декоративная фича.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798014
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Просто к имеющейся системе модулей прикрутили иерархию в названиях модулей через точку. Чисто декоративная фича. Ну, какбэ предполагалось, что там будет работать Ctrl+<пробел>, допустим начинаешь набирать Sys и в выпадающем списке вываливаются все (одын тука) юниты которые начинаются с Sys, после точки опять все юниты (SysUtils, Classes и т.п.).

Вообще если хочется управлять областью видимости, то есть возможность управлять в рамках одного модуля
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
unit NameSpace;

interface

type
  MyTypeGroup = class {record}
  public type
    TBlaBla = (Bla, La);
  end;

...


unit Unit1;

intrface

uses
  ... NameSpace;

procedure TForm1.FormCreate(Sender: TObject);
var
  G: MyTypeGroup.TBlaBla;
begin
  G := MyTypeGroup.TBlaBla.Bla;
end;



Подключать разом все модули через uses vcl.* это слишком много получается. На практике обычно проблемой является не подключение всего чтоможеткогдатопонадобиться, а удаление неиспользуемых модулей после работы батонокидателей.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798100
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspb,

авторНу, какбэ предполагалось, что там будет работать Ctrl+<пробел>, допустим начинаешь набирать Sys и в выпадающем списке вываливаются все (одын тука) юниты которые начинаются с Sys, после точки опять все юниты (SysUtils, Classes и т.п.).

так и работает вроде. cnpack нужно поставить только что. а неймспейсы - известный костыль для тех языков, у которых нет разделения на модули. правда, в последних версиях плюсов вроде одумались, собрались таки модули завезти, которые в паскале от рождения были
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798121
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspb,

у меня так и уже давно. опции всякие, нечеткий поиск и так всяко:
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798122
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,
правильно пишут, нету
мелкая фича для либописателей, что бы названия с дикой топологией не делать
в дельфи имена не наследуются модулем, так что основной проблемы для которой вводят namespace нету.
Т.е. основная цель это избежании конфикта в названиях модулей.

и цена тоже нехилая за тукую мелочь, пухнут блоки импорта\экспорта
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798156
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonroschinspb,
... cnpack нужно поставить только ... Это не спортивно я про базовые возможности.
Кстати любопытно как оно на случай где более 2 слов реагирует? Например System.Generics.
...
Рейтинг: 0 / 0
Как работает пространство имен(namespace) в Delphi ?
    #39798197
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оно странненько работает, иногда не работает ) но чаще - да
но если набрать generics действительно покажет список
System.generics.collections
System.generics.defaults
и вообще все что подходит
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работает пространство имен(namespace) в Delphi ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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