|
|
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. При компилляции выдает предупреждение автор[dcc32 Hint] Unit1.pas(23): H2219 Private symbol 'Listener' declared but never used Хотя использование (хотя и неявное, ну для этого и стоит default в описании свойства) в программе есть: Код: pascal 1. 2. 3. Как так? Как избавиться от сообщения компиллятора? Или неправильно что-то в классе? Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 13:06 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordХотя использование (хотя и неявное, ну для этого и стоит default в описании свойства) в программе есть Почувствуй разницу между Listener и Listeners. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 13:12 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, я могу заменить Listener на qqq - результат будет тем же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 13:32 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
У вас Listener в PRIVATE секции и к нему из кода самого TListeners обращений нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 13:40 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
DimaBr, ну как же это нет, а вот это? Код: pascal 1. Это равнозначно записи вида (т.к. прописано default, см. векторные свойства) Код: pascal 1. Так что все используется... Вот подробнее: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 14:37 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Кстати, с записью авторListeners.Listener[95000].FName проблем нет, а если уберу Listener - все работает, но компиллятор выдает предупреждение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 14:39 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Переместил определение свойства в public - предупреждение пропало. Но все равно не понятно почему так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 14:41 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
aford, ты вообще читаешь, что тебе народ пишет?)))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 14:50 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordЭто равнозначно Нет, совсем не равнозначно. Listeners у тебя массив, а не свойство. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 14:54 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordDimaBr, ну как же это нет, а вот это? Код: pascal 1. Это равнозначно записи вида (т.к. прописано default, см. векторные свойства) Код: pascal 1. Так что все используется... Вот подробнее: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. свойство Listeners не используется в теле TListeners и находится в ПРИВАТ секции. То что вы используете его ХАКЕРСКИМ способом в том же модуле в другом классе, не говорит о том что делаете правильно. Перенесите TListener в другой модуль и попробуйте достучаться к Listeners из метода формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:01 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovafordЭто равнозначно Нет, совсем не равнозначно. Listeners у тебя массив, а не свойство. Таки свойство. Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:04 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Listeners - это вообще-то переменная объекта TListeners или объект (как правильно, или переменная на объект, суть ясна в общем). Listener - это свойство, которое пишет и читает поле FListener, которое в свою очередь является массивов записей TListener типа record Запутал вас и себя))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:11 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
aford, это явный баг Delphi. Private член класса не должен быть доступен. Если же private свойство объявлено default, компилятор должен либо выдать error, либо не выдавать такого warning. Ну а конкретно тебе - перенеси свойство из private в public, вот и всё решение "проблемы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:16 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
DimaBrТо что вы используете его ХАКЕРСКИМ способом в том же модуле в другом классе, не говорит о том что делаете правильно. Перенесите TListener в другой модуль и попробуйте достучаться к Listeners из метода формы Все равно доступен. Это баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:22 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эра, я так уже сделал еще после 2-го сообщения в ветке) авторэто явный баг Delphi. Private член класса не должен быть доступен. Почему, в этом же модуле должен быть доступен, или я не дочитался принципов ООП, но спорить тут не стану. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:23 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
14.02.2019 15:16, Фэйтл Эра пишет: > это явный баг Delphi. Private член класса не должен быть доступен. иди азбуку учи. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:25 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordПочему, в этом же модуле должен быть доступен, или я не дочитался принципов ООП, но спорить тут не стану. В рамках модуля все доступно. В нарушение всех принципов ООП. Дельфийская тупость, но позволяющая обойти другую топость с запретом циклических ссылок модулей друг на друга. --- Но тут явный баг Delphi: private свойство доступно, если оно default. Как минимум, в D2007. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:27 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
14.02.2019 15:27, Фэйтл Эра пишет: > Дельфийская тупость, но позволяющая обойти другую топость аклинизмы проникли в мозг... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:30 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Фэйтл ЭраВсе равно доступен. Это баг. Это не баг. В справке сказано что в классе может быть лишь одно свойство по умолчанию, и доступ к нему происходит без указания имени свойства. Про расположение свойства в секциях ни слова If a class has a default property, you can access that property with the abbreviation object[index], which is equivalent to object.property[index]. For example, given the declaration above, StringArray.Strings[7] can be abbreviated to StringArray[7]. A class can have only one default property with a given signature (array parameter list), but it is possible to overload the default property. Changing or hiding the default property in descendent classes may lead to unexpected behavior, since the compiler always binds to properties statically. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:31 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
DimaBr, не согласен. А если ты и прав, то, значит, баг в том, что ворнинг генерируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:33 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
14.02.2019 15:33, Фэйтл Эра пишет: > не согласен. в спортлото пиши, кловун. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:36 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эразначит, баг в том, что ворнинг генерируется Это действительно баг, тут ворнинга быть не должно. А вот видимость приватных членов в рамках модуля не баг. Если хочешь строгой приватности используй strict private. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:36 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Даже объявление в другом модуле даёт доступ к privat-default свойству ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:40 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
DimaBrДаже объявление в другом модуле даёт доступ к privat-default свойству Ох какой лютый жучара ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:45 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
топикстартеру, либо избавляться от дефолтного свойства, либо его декларацию заключить между дируктивами {$hints off}property...{$hints on} (если не напрягает вылезшая неожиданность) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:49 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyтут ворнинга быть не должно Его и нет, есть хинт, да :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:53 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Либо обратиться к свойству в методе свойства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 15:54 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
автортопикстартеру, либо избавляться от дефолтного свойства, либо его декларацию заключить между дируктивами {$hints off}property...{$hints on} (если не напрягает вылезшая неожиданность) Kazantsev Alexey, так я уже, это, в паблик переместил и варнинга нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 16:22 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyKazantsev Alexeyтут ворнинга быть не должно Его и нет, есть хинт, да :) Текст его не соответствует действительности, в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 17:52 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
DimaBrДаже объявление в другом модуле даёт доступ к privat-default свойству Ну, я ж это и писал: 21809560 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 17:57 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyЕсли хочешь строгой приватности используй strict private. Deafaul свойство и доступно, даже когда strict... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 18:09 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Фэйтл ЭраТекст его не соответствует действительности, в любом случае. Ну да, этот хинт баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 18:11 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Фэйтл ЭраKazantsev AlexeyЕсли хочешь строгой приватности используй strict private. Deafaul свойство и доступно, даже когда strict... :) Да я тоже проверил. Межмодульная доступность это баг, что для strict private, что для обычного private. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 18:13 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyDimaBrДаже объявление в другом модуле даёт доступ к privat-default свойству Ох какой лютый жучара У меня совсем простой вопрос, - зарегистрировал таки хоть кто-нибудь ужо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 22:21 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Vlad FKazantsev Alexeyпропущено... Ох какой лютый жучара У меня совсем простой вопрос, - зарегистрировал таки хоть кто-нибудь ужо? Давай ты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2019, 22:53 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Не вижу тут бага. Само свойство не видно, значит, все верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 10:31 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Vlad F- зарегистрировал таки хоть кто-нибудь ужо?Если, что, то в Rio подтверждается. С хинтом и доступом через strict private ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 17:17 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
Так что в итоге, я прав был или нет? 1-е ответы до сих пор понять не могу. Listeners - объект классаTListeners Listener - свойство класса TListeners, которое пишет и читает поле FListener, которое является массивом записей TListener типа record. Если в методе есть директива default - это умолчание свойства перечисляемого типа и может быть использовано только 1 раз, не путать с default для полей. Методы и поля, которые объявлены в секции private могут быть использованы только в текущем модуле, где объявлен класс. Если нужно использовать в других - объявляем их в public. Все правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 19:00 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordЕсли в методе есть директива default - это умолчание свойства перечисляемого типа и может быть использовано только 1 раз, не путать с default для полей. https://stackoverflow.com/questions/10796417/how-to-implement-indexed-default-property В остальном всё верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 19:38 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
afordМетоды и поля, которые объявлены в секции private могут быть использованы только в текущем модуле, где объявлен класс. Если нужно использовать в других - объявляем их в public. Все правильно? Да, все правильно. Ну, можно понудить. 1. Как показали эксперименты, всегда доступно default - свойство. :) 2. И в рамках модуля private тоже недоступны, если они strict private . 3. И есть protected . Это тоже доступны всем в том же модуле. А за пределами модуля тоже видны, но лишь в классах - наследниках. Но если strict protected - то и в модуле доступны лишь в наследниках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 19:59 |
|
||
|
Private symbol declared but never used
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Vlad F- зарегистрировал таки хоть кто-нибудь ужо?Если, что, то в Rio подтверждается. С хинтом и доступом через strict private Любопытства ради проверил в Lazarus 2.0 x64 (от 3 февраля 2019) - все то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 20:19 |
|
||
|
|

start [/forum/search_topic.php?author=Slavko82&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 1223ms |
| total: | 1543ms |

| 0 / 0 |
