Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 13 [14] 15 16 17   вперед  Ctrl
 Re: RAD Studio 10.3 Rio  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 197
Поздновато, конечно, ввели такие значимые расширения в язык.
7 дек 18, 10:02    [21756683]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
AWSVladimir
ziv-2014
Нет не помогало и угадай причину. Отладчик в помощь :)

Расскажи в кратце, в чем проблема, так как вариантов юзания много:
1.Создание интерфейсных объектов м/б 2-мя путями.
а) Создание объекта который создается и сам раздает функциональность ч/з интерфейсы
б) Создается временная прокладка которая юзает основной объект.

2. Юзание интерфейсов
а) внутри собственного модуля
б) только из внешних модулей

3) В методах получении интерфейса.

То есть как правило функциональный объект создается 1 раз и удаляется 1 раз и вся движуха в изменении количества ссылок или создание/удалении прокладок.

Лучше напиши проблемный пример.
Так как с этими интерфейсами кто во что горазд пишет, нет единого использования как при юзании объектов.

Например, есть список плагинов IPlugin, написанный на разных языках к тому же.
Хочу я очистить я эти интерфейсы и выгрузить DLL.
procedure Unload(Index : Integer);
var p : IPlugin;
     fn : string;
begin
   p := FPluginList[Index];
   fn := p.FileName;
   FPluginList.Delete(Index);
   p := nil;
   UnLoadLibrary(fn); //Имеем AV, т. к. компилятор создает еще один объект IPlugin (увеличивая счетчик ссылок) и очищает после завершения процедуры, когда DLL уже выгружена из памяти.
end;
7 дек 18, 10:08    [21756695]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Beltar
Member

Откуда:
Сообщений: 143
Я вот смотрю на языки в целом и меня не покидает ощущение, что их разрабатывают озабоченные психопаты, к числу которых перешел после Паскаля и Вирт. Вот не нравится человеку долго писать, и он придумывает Си с его ужасами вроде i++, ++i или a+=b за последнее я бы сразу руки отрывал по самую задницу, т. к. достаточно не прожать плюс, и ты будешь бедный и несчастный человек, пытающийся найти непонятную ошибку. Ведь дебажить с пошаговым проходом и черт знает каким временем компиляции это несильно дольше, чем по-человечески писать...

Другой, конкретно Вирт, вообразил, что begin end некошерно, надо сделать другой Паскаль, но писать там операторные блоки как в Бейсике. И вообще, зачем нам те же перечислимые типы, ведь их можно заменить константами, давайте уберем, чтобы язык поменьше был. И цикл for уберем, это, если что первую версию виртовского вы... под названием Оберон. Третьи почему-то любят Бейсик, но не могут понять, что минимализм Бейсики для "Спектрумов" с 64 Кб ОЗУ и отсутствием хоть какого-то подобия редактора лишен смысл, и язык в котором, в принципе, допустимо неявное объявление переменных (в Pure Basic есть такая опция) просто непригоден для промышленного использования.

Еще кто-то сходит с ума от извращений в Си++, другие, наоборот, пытаются что-то отрезать от Си++, но так, чтобы он оставался тем же Си++. Эта музыка точно может длиться вечно. Гугл вон, свой Си++ делают. Про C# молчу, я вообще не понимаю, на кой черт нужен язык, компилируемый непонятно во что, когда можно просто выбрать нужные платформы и собрать под каждую. И никто в Сети не делает инсталляторов для Windows и Linux вместе. Идея промежуточного представления нужна не конечному пользователю, а разработчику, который, в принципе, может переводить любой язык в некий промежуточный вид, после чего, уже полученный байт-код будет переводиться низкоуровневым компилятором.

Люди делают религию из второстепенных вещей. Хотя для меня регистрозависимость языка, например, совсем невторостепенна, не переношу на дух, а кому-то пофиг...

Конкретно в Паскале жесткое объявление переменных в одном месте явно связано с тех. возможностями 60-70-ых годов. Примитивные редакторы, медленная компиляция. Сейчас ситуация маленько иная, можно мышь навести и вся информация о переменной появится, как и перейти к ее объявлению. Т. е. стандарт есть, но следуем ему, уже как некоему ритуалу, не задумываясь, почему оно вообще такое. Хотя в современных условиях вред от объявления переменных прямо в коде сильно меньше, чем в TP 7.1.

2 rgreat:

А игрушка Blast-off в Стиме, вроде как, ваша разработка?
7 дек 18, 10:21    [21756712]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
vavan
Member

Откуда: Казань
Сообщений: 3194
AWSVladimir
многие макросы в Си просто так не прочитать/не понять, недавно на хабре исповедь разработчиков оракла была, что некоторые макросы просто не трогают, так как не понимают как они работают
а на кой их читать, понимать и переделывать если они как надо работают. достаточно знать для чего они и что делают. та же история с любым кодом в принципе, это не эксклюзивная фича макросов
AWSVladimir
В Си же и в 10.3 этого уже мало, нужно пробежаться по всему коду и определить, а какой же тип у переменных
в плюсах удобно что зачастую вообще и не нужно знать тип
AWSVladimir
Код компилятора не оптимизирован, глюки на глюгах в среде, блин у них там нет там даже одного тестирощика что ли, что бы пунктуально все проверить?
уж пора бы и свыкнуться что эта музыка будет вечной и здесь иначе никогда не станет
7 дек 18, 10:38    [21756733]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Beltar
Member

Откуда:
Сообщений: 143
автор
в плюсах удобно что зачастую вообще и не нужно знать тип


int i;
i=3.5;


- А эти ягоды есть можно?
- Можно. Но отравишься.
7 дек 18, 10:44    [21756742]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
L_argo
Member

Откуда:
Сообщений: 443
Beltar,

+500.
Наплодили адовую кучу языков, вместо того, чтобы сфокусироваться на глубоком развитии существующих.
Наплодили адовую кучу фреймворков, вместо того, чтобы сфокусироваться на развитии существующих.
Наплодили адовую кучу браузеров, вместо того, чтобы сфокусироваться на развитии существующих.
Наплодили адовую кучу ОС, вместо того, чтобы сфокусироваться на развитии существующих.
7 дек 18, 10:45    [21756744]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
vavan
Member

Откуда: Казань
Сообщений: 3194
Beltar, непонятно что пытался донести. в плюсах можно юзать auto, decltype, фигурную инициализацию запрещающую сужающие преобразования и т.п. и довольно редко заморачиваться указанием конкретных типов, где это не требуется. но при должном умении можно и нефритовый стержень расколоть конечно
7 дек 18, 10:50    [21756747]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Василий 2
Member

Откуда:
Сообщений: 303
ziv-2014
Например, есть список плагинов IPlugin, написанный на разных языках к тому же.
Хочу я очистить я эти интерфейсы и выгрузить DLL.
procedure Unload(Index : Integer);
var p : IPlugin;
     fn : string;
begin
   p := FPluginList[Index];
   fn := p.FileName;
   FPluginList.Delete(Index);
   p := nil;
   UnLoadLibrary(fn); //Имеем AV, т. к. компилятор создает еще один объект IPlugin (увеличивая счетчик ссылок) и очищает после завершения процедуры, когда DLL уже выгружена из памяти.
end;

Если выгрузку DLL поместить в деструктор и не мешать мух с котлетами, то проблема исчезнет
7 дек 18, 10:50    [21756748]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Василий 2
Member

Откуда:
Сообщений: 303
L_argo
Beltar,

+500.
Наплодили адовую кучу языков, вместо того, чтобы сфокусироваться на глубоком развитии существующих.
Наплодили адовую кучу фреймворков, вместо того, чтобы сфокусироваться на развитии существующих.
Наплодили адовую кучу браузеров, вместо того, чтобы сфокусироваться на развитии существующих.
Наплодили адовую кучу ОС, вместо того, чтобы сфокусироваться на развитии существующих.

Браузеры тут лишние, весь ассортимент схлопывается до Хромиум+клоны, Фокс+клоны да Сафари
7 дек 18, 10:51    [21756751]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
Василий 2
ziv-2014
Например, есть список плагинов IPlugin, написанный на разных языках к тому же.
Хочу я очистить я эти интерфейсы и выгрузить DLL.
procedure Unload(Index : Integer);
var p : IPlugin;
     fn : string;
begin
   p := FPluginList[Index];
   fn := p.FileName;
   FPluginList.Delete(Index);
   p := nil;
   UnLoadLibrary(fn); //Имеем AV, т. к. компилятор создает еще один объект IPlugin (увеличивая счетчик ссылок) и очищает после завершения процедуры, когда DLL уже выгружена из памяти.
end;

Если выгрузку DLL поместить в деструктор и не мешать мух с котлетами, то проблема исчезнет

Только деструктор находится в самой DLL или сборке и может быть написан на другом языке программирования.
7 дек 18, 12:09    [21756843]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4575
Beltar
2 rgreat:

А игрушка Blast-off в Стиме, вроде как, ваша разработка?
Нет, с чего вы взяли?
7 дек 18, 13:02    [21756941]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12558
уже патч выпустили Картинка с другого сайта.
Marco Cantu
First RAD Studio 10.3 patch is out, including a few missing files for Android and PCRE


https://cc.embarcadero.com/item/30869
7 дек 18, 13:10    [21756955]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 197
Централизованное объявление переменных уйдет совсем. Не будет секции var.
Ну, в прикладном коде, где не требуется обратная совместимость. Ибо как только у людей появится возможность делать так, как удобно - они станут делать именно так, как им удобно.
В библиотеках - чуть погодя, конечно.
7 дек 18, 14:15    [21757064]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4575
Фэйтл Эра
Централизованное объявление переменных уйдет совсем. Не будет секции var.
Ну, в прикладном коде, где не требуется обратная совместимость. Ибо как только у людей появится возможность делать так, как удобно - они станут делать именно так, как им удобно.
В библиотеках - чуть погодя, конечно.

Ты недооцениваешь инерцию мышления.
Еще очень долго все останеться почти по прежнему.

Разве что в циклах на инлайн быстро перейдут.
7 дек 18, 14:19    [21757072]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3119
Инлайн-декларации в деле прототипирования вещь шикарная. Ну а наибольший профит это, несомненно, ограничение времени жизни рамками блока декларации.
7 дек 18, 14:34    [21757092]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Василий 2
Member

Откуда:
Сообщений: 303
ziv-2014
Василий 2
пропущено...

Если выгрузку DLL поместить в деструктор и не мешать мух с котлетами, то проблема исчезнет

Только деструктор находится в самой DLL или сборке и может быть написан на другом языке программирования.

В таком случае надо не творить фигню и не заводить промежуточной переменной. Сохранил ссылку на удаленную память - ССЗБ. Без этого все отлично отработает
7 дек 18, 14:46    [21757109]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4575
Kazantsev Alexey,

А по мне наибольший профит - это даже не столько сам инлайн, а уменьшение объема кода из-за присваивания значения прямо в декларации и наследования типов.
7 дек 18, 14:47    [21757110]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
Василий 2
ziv-2014
пропущено...

Только деструктор находится в самой DLL или сборке и может быть написан на другом языке программирования.

В таком случае надо не творить фигню и не заводить промежуточной переменной. Сохранил ссылку на удаленную память - ССЗБ. Без этого все отлично отработает

Промежуточные переменные заводит компилятор. Там интерфейсы, какая нафиг ссылка на удаленную память. А если интерфейс реализован для .Net, на что ссылаться то?
7 дек 18, 16:30    [21757280]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
Василий 2,
Это пример, а не конкретная реализация. Просто так устроен компилятор, он до кучи вызывает еще свой внутренний код из system.pas для реализации подсчета ссылок и слабых ссылок.
В рио по логике должно стать меньше костылей.
7 дек 18, 16:32    [21757285]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Василий 2
Member

Откуда:
Сообщений: 303
ziv-2014
Промежуточные переменные заводит компилятор. Там интерфейсы, какая нафиг ссылка на удаленную память. А если интерфейс реализован для .Net, на что ссылаться то?

Ну так покажи, где он там чего добавляет. Воспроизводимый пример.
7 дек 18, 17:14    [21757373]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5969
Beltar
Я вот смотрю на языки в целом и меня не покидает ощущение, что их разрабатывают озабоченные психопаты, к числу которых перешел после Паскаля и Вирт. Вот не нравится человеку долго писать, и он придумывает Си с его ужасами вроде i++, ++i или a+=b за последнее я бы сразу руки отрывал по самую задницу, т. к. достаточно не прожать плюс, и ты будешь бедный и несчастный человек, пытающийся найти непонятную ошибку. Ведь дебажить с пошаговым проходом и черт знает каким временем компиляции это несильно дольше, чем по-человечески писать...

Другой, конкретно Вирт, вообразил, что begin end некошерно, надо сделать другой Паскаль, но писать там операторные блоки как в Бейсике. И вообще, зачем нам те же перечислимые типы, ведь их можно заменить константами, давайте уберем, чтобы язык поменьше был. И цикл for уберем, это, если что первую версию виртовского вы... под названием Оберон. Третьи почему-то любят Бейсик, но не могут понять, что минимализм Бейсики для "Спектрумов" с 64 Кб ОЗУ и отсутствием хоть какого-то подобия редактора лишен смысл, и язык в котором, в принципе, допустимо неявное объявление переменных (в Pure Basic есть такая опция) просто непригоден для промышленного использования.

Еще кто-то сходит с ума от извращений в Си++, другие, наоборот, пытаются что-то отрезать от Си++, но так, чтобы он оставался тем же Си++. Эта музыка точно может длиться вечно. Гугл вон, свой Си++ делают. Про C# молчу, я вообще не понимаю, на кой черт нужен язык, компилируемый непонятно во что, когда можно просто выбрать нужные платформы и собрать под каждую. И никто в Сети не делает инсталляторов для Windows и Linux вместе. Идея промежуточного представления нужна не конечному пользователю, а разработчику, который, в принципе, может переводить любой язык в некий промежуточный вид, после чего, уже полученный байт-код будет переводиться низкоуровневым компилятором.

Люди делают религию из второстепенных вещей. Хотя для меня регистрозависимость языка, например, совсем невторостепенна, не переношу на дух, а кому-то пофиг...

Конкретно в Паскале жесткое объявление переменных в одном месте явно связано с тех. возможностями 60-70-ых годов. Примитивные редакторы, медленная компиляция. Сейчас ситуация маленько иная, можно мышь навести и вся информация о переменной появится, как и перейти к ее объявлению. Т. е. стандарт есть, но следуем ему, уже как некоему ритуалу, не задумываясь, почему оно вообще такое. Хотя в современных условиях вред от объявления переменных прямо в коде сильно меньше, чем в TP 7.1.

2 rgreat:

А игрушка Blast-off в Стиме, вроде как, ваша разработка?

Заткни фонтан (с)

Вирт к С отношения не имеет.

Последний абзац, впрочем, толковый.
7 дек 18, 23:44    [21757681]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12558
https://andy.jgknet.de/blog/2018/12/ddevextensions-and-dfmcheck-released-for-delphi-10-3-rio
DDevExtensions and DFMCheck released for Delphi 10.3 Rio
8 дек 18, 15:57    [21757892]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12558
Android 9.0 & Delphi 10.3 Rio

&feature=youtu.be
9 дек 18, 11:24    [21758363]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10638
Давайте посмотрим правде в глаза. Вот есть строчка кода
a := b
где искать объявление a? Это может быть
  • Локальная переменная
  • Параметр метода
  • Поле текущего или родительского класса
  • Свойство текущего или родительского класса
  • Глобальная переменная

    Для b ко всему вышеперечисленному добавится
  • константа (локальная, классовая, глобальная)
  • элемент перечислимого типа
  • функция или метод

    Т.е. утверждение
    вот раньше можно было посмотреть секцию var и узнать тип переменной
    неверно. Переменную нужно искать. И без IDE ее найти очень сложно. Таким образом сложность задачи "узнать тип переменной" с введением инлайн-объявлений не изменилась.

    А вот обратная задача "найти где эта переменная используется" сильно упростилась. Теперь все находится в пределах блока
  • вчера, 16:45    [21759336]     Ответить | Цитировать Сообщить модератору
     Re: RAD Studio 10.3 Rio  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2963
    _Vasilisk_,

    элементарно всё различается, только нужно придерживаться нормальной записи названий переменных, функций и так далее. а если так код писать, то ССЗБ, конечно. концы искать можно долго и нудно.

    автор
    Локальная переменная
    X,Y, Width
    автор
    Параметр метода
    AX, AY, AWidth
    автор
    Поле текущего или родительского класса
    FX, FY, FWidth
    автор
    Свойство текущего или родительского класса
    лучше обращаться к полям, если сеттеров нет
    автор
    Глобальная переменная
    лучше их вообще не делать. но если зудит, можно и тут нотификацию добавить: GX, GY, GWidth.
    вчера, 18:45    [21759459]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 13 [14] 15 16 17   вперед  Ctrl
    Все форумы / Delphi Ответить