Error get class hints

как заставить ‘alltray’ работать над человечностью 16.04? alltray имеет превосходную опцию, которая дает нам большую настраиваемость: —menu; -m: «menu text:command»: add entry to popdown menu только для запущения теста это я использую tho напр.: alltray xev это устанавливаемо на человечности 16.04. использование kwin это перестанет работать с ERROR get class hints использование с metacity […]

Содержание

  1. как заставить ‘alltray’ работать над человечностью 16.04?
  2. 1 ответ
  3. Короткий ответ (TL; DR)
  4. Подробнее
  5. Как заставить `alltray` работать на Ubuntu 16.04?
  6. 1 ответ
  7. Короткий ответ (TL;DR)
  8. подробности
  9. how to make `alltray` work on ubuntu 16.04?
  10. 1 Answer 1
  11. Short answer (TL;DR)
  12. Details
  13. Error get class hints
  14. Типы сообщений компилятора
  15. Безобидные(?) Hints
  16. О пользе сообщений компилятора
  17. Коварные Warnings
  18. Резюме

как заставить ‘alltray’ работать над человечностью 16.04?

alltray имеет превосходную опцию, которая дает нам большую настраиваемость:
—menu; -m: «menu text:command»: add entry to popdown menu

только для запущения теста это я использую tho напр.: alltray xev

это устанавливаемо на человечности 16.04.

использование kwin это перестанет работать с ERROR get class hints

использование с metacity (мое предпочтительное для скорости) или compiz дает Alltray: no system tray/notification area found.

что может быть сделано, чтобы позволить ему работать? предпочтительно на метагороде.

как альтернативный ответ, любое эквивалентное приложение или сценарий, который имеет эквивалентную опцию к —menu сделает это.

1 ответ

Короткий ответ (TL; DR)

alltray больше не сохраняется, если Вы используете использование KDE kdocker вместо этого.
(это может также работать с Gnome),

Это столь же легко как:

Подробнее

Поскольку Вы видите из их репозитория и из этого сообщения alltray инструмент не сохраняется больше.

Из-за этого, даже если бы Вы пытаетесь скомпилировать его из источника, было бы очень трудно получить его работа, так как это основано на старых стандартах и старых/устаревших библиотеках. Например, это основано на старых стандартах для языка Vala и при попытке скомпилировать его с недавними компиляторами Vala, это даже генерирует синтаксические ошибки.

kdocker инструмент все еще сохраняется вместо этого, и очень легко установить его на Ubuntu 16.04 как показано выше.

Это работает почти точно как alltray , если Вы хотите отменить «стыкующий», просто нажимают правой кнопкой мыши вместо левой кнопки ( Esc не будет работать).

Это, конечно, работает с KDE, я не протестировал его с Gnome (то, что его имя запускается со средств K, ничто, много приложений как Kate или Konsole все еще не работают с Gnome).

Источник

Как заставить `alltray` работать на Ubuntu 16.04?

alltray имеет отличный вариант, который дает нам отличные возможности настройки:
—menu; -m: «menu text:command»: add entry to popdown menu

просто чтобы проверить это, я использую, например: alltray xev

устанавливается на Ubuntu 16.04.

с помощью kwin это не удастся с ERROR get class hints

используя с metacity (мой предпочитаемый по скорости) или compiz дает Alltray: no system tray/notification area found.

что можно сделать, чтобы оно заработало? желательно на метасити.

в качестве альтернативного ответа, любое эквивалентное приложение или сценарий, который имеет эквивалентную опцию —menu сделаю это.

1 ответ

Короткий ответ (TL;DR)

alltray больше не поддерживается, если вы используете KDE, используйте вместо этого kdocker.
(это может также работать с Gnome)

Это так же просто, как:

подробности

Как вы можете видеть из их репозитория и из этого поста alltray инструмент больше не поддерживается

Из-за этого, даже если вы попытаетесь скомпилировать его из исходного кода, будет очень трудно заставить его работать, поскольку он основан на старых стандартах и ​​старых / устаревших библиотеках. Например, он основан на старых стандартах языка Vala, и если вы попытаетесь скомпилировать его с помощью последних компиляторов Vala, он даже генерирует синтаксические ошибки.

kdocker инструмент все еще поддерживается, и его очень легко установить на Ubuntu 16.04, как показано выше.

Это работает почти так же, как alltray , если вы хотите отменить «закрепление», просто щелкните правой кнопкой мыши вместо левой кнопки ( Esc не будет работать).

Это, безусловно, работает с KDE, я не тестировал его с Gnome (тот факт, что его название начинается с K, ничего не значит, многие приложения, такие как Kate или Konsole, все еще работают с Gnome).

Источник

how to make `alltray` work on ubuntu 16.04?

alltray has an excellent option that gives us great customizability:
—menu; -m: «menu text:command»: add entry to popdown menu

just to run test it I am using tho ex.: alltray xev

it is installable on ubuntu 16.04.

using kwin it will fail with ERROR get class hints

using with metacity (my preferred for speed) or compiz gives Alltray: no system tray/notification area found.

what can be done to let it work? preferably on metacity.

as an alternative answer, any equivalent application or script that has an equivalent option to —menu will do it.

1 Answer 1

Short answer (TL;DR)

alltray is not maintained anymore, if you are using KDE use kdocker instead.
(it may also work with Gnome)

Details

As you can see from their repository and from this post the alltray tool is not being maintained anymore.

Because of this, even if you try to compile it from source it would be very difficult to get it working, since it is based on old standards and old/obsolete libraries. For example, it is based on old standards for the Vala language and if you try to compile it with recent Vala compilers it even generates syntax errors.

The kdocker tool is still maintained instead, and it is very easy to install it on Ubuntu 16.04 as shown above.

It works almost exactly like alltray , if you want to cancel «docking» just click with the right mouse button instead of left button ( Esc will not work).

It surely works with KDE, I didn’t test it with Gnome (the fact that its name starts with K means nothing, many applications like Kate or Konsole still work with Gnome).

Источник

Error get class hints

Елена Филиппова, Королевство Дельфи
15 апреля 2003г.

Каждая программа содержит по крайней мере одну ошибку
Народная мудрость

Никогда не делает ошибок тот, кто просто ничего не делает. Это тоже народная мудрость. Поэтому с ошибками в коде сталкивается в своей работе каждый программист. После того, как программа успешно откомпилирована, преодолен первый этап борьбы. :о)

Не секрет, что гораздо сложнее бороться с ошибками, возникающими во время выполнения программы, особенно, когда они приводят не просто к ее «падению», а к неадекватной работе, наслаивая проблемы и создавая «наведенные» ошибки. И здесь уже надежды на компилятор нет. Спасение утопающих, как известно, дело рук этих самых утопающих.

Материал данной статьи не имеет отношения к теме тестирования и отладки. Он предназначен начинающим программистам, дабы обратить их внимание на «соломинку», которую протягивает утопающим IDE Delphi в нелегком деле борьбы с ошибками :о) Ведь не зря же ее называют дружественной средой разработки.

Хочу сразу обратить ваше внимание на то, что все приводимые примеры не являются реальными, они специально упрощены и только иллюстрируют объяснение материала.

Типы сообщений компилятора

Информацию о результате компиляции и сборки программы можно увидеть в окне, показывающем процесс компиляции , и на панели сообщений, встроенной в редактор кода .


рис. 1 Сообщения компилятора бывают трех типов. В этом списке они приведены по убыванию степени опасности, если так можно выразиться :о)

  1. Error — ошибка
  2. Warning — предупреждение
  3. Hint — подсказка или совет.

Довольно распространенное отношение начинающих программистов к этим сообщениям заключается в полном игнорировании предупреждений и советов. Ведь не ошибки же? Программа откомпилирована и запускается на исполнение. И, может быть, даже работает :о)

Мне приходилось встречать на некоторых форумах «дружеские советы» новичкам, сводившиеся к предложению «не обращать на эту ерунду внимания, это оптимизатор у Delphi выделывается.»
Так ли это на самом деле?

При наличии в проекте ошибок-Errors , не будет сформирован исполняемый файл и, волей не волей, ошибки придется исправлять. Наличие же сообщений Hints и Warnings позволяет запускать приложение. Обратите внимание на окно процесса компиляции (рис. 1) , в строке «Done» написано не Compiled , что, в общем-то, ожидалось, а предупреждение There are warnings . Несмотря на отсутствие ошибок, проект откомпилирован с тремя «подсказками» и пятью «предупреждениями».
Насколько безопасно не обращать на это внимание? Начнем с самых безобидных сообщений компилятора, с его советов — Hints .

Безобидные(?) Hints

Ниже приведен код простой функции, которая не содержит синтаксических ошибок, но при её компиляции будет получено три Hint’а (в коде они отмечены красным). Давайте разберем их подробно.

Variable ‘i’ is declared but never used in ‘FunctonName’ Переменная ‘i’ определена, но никогда не используется в ‘FunctonName’ — это одно из самых часто встречающихся сообщений. Чаще всего оно просто говорит о неаккуратном коде. Однако, наличие таких переменных в принципе может означать потенциальную ошибку в реализации алгоритма, ведь зачем-то она была объявлена. Именно поэтому компилятор обращает ваше внимание на эту переменную: вдруг вы просто забыли доделать задуманное?
Простейшее решение — удалить все неиспользованные переменные. А заодно и проверить, действительно ли они не нужны :о)

Value assigned to ‘j’ never used Значение, присвоенное ‘j’ никогда не используется . Это сообщение не означает, что программа неправильная — оно означает только то, что компилятор обнаружил, что после присвоения переменной j значения 0 , эта переменная не участвует более ни в каких операциях. Что делает это присвоение абсолютно бессмысленным. И, если используется оптимизатор, оно будет удалено в откомпилированном коде.
Так же, как и предыдущий Hint, это сообщение чаще всего является признаком «мусора» в коде, от которого следует избавляться, чтобы не пропустить потенциальные ошибки. Опасность в том, что в реальности может оказаться, что это присвоение было сделано не той переменной, которой нужно. Например, надо было присвоить что-то переменной i , а присвоили j .

FOR or WHILE loop executes zero times — deleted Цикл FOR или WHILE исполняется ноль раз — удалено. Собственно, текст этого сообщения полностью объясняет ситуацию. Конечно же это не специально, это «рука дрогнула», «глаз замылился» или что-то в таком духе. И компилятору остается только сказать спасибо.

Итак, получается, что Hint’ы обращают наше внимание на странности и несуразицы в коде с точки зрения «правильного» компилятора. Конечно, приведенный пример очень прост и надуман и может не убедить вас, но если в коде функции, которая содержит не один десяток операторов, появляется hint, стоит обратить на него внимание, поверьте.

Рассмотренные выше ситуации можно и нужно исправлять. Но бывают случаи, когда нет возможности исправить код так, чтобы не получать Hint’s при компиляции. Рассмотрим небольшой пример по созданию собственных классов:

Overriding virtual method ‘TLists.Clear’ has a lower visibility (private) than base class (public) Переопределенный виртуальный метод ‘TLists.Clear’ имеет видимость ниже, чем в базовом классе Это не то, чтобы ошибка, но на практике понижение видимости свойств и методов класса встречается довольно редко и говорит об ошибках на этапе проектирования базовых классов. Это понижение видимости может создать в проблему в будущем, если от класса TLists будут наследоваться при создании новых классов.

Private symbol ‘FutureTools’ declared but never used Приватный символ ‘FutureTools’ определен, но никогда не используется . Это сообщение сродни уже описанному Variable ‘ ‘ is declared but never used.
Так как этот метод приватный, то он по определению не может быть доступен нигде более, как внутри класса. Тем не менее, компилятор там его использования не обнаруживает. Из чего следует естественный вывод, что функция ‘FutureTools’ нигде не будет использоваться.

Допустим, что в этом случае все не так просто, как это видится компилятору и функция FutureTools, например, нигде не используется вовсе не потому, что вы о ней забыли или она никому не нужна. Возможно это задел на будущее. Можно, конечно, закомментировать и объявление функции и код ее реализации до поры до времени. Но можно сделать и иначе, несколько изящнее.

Возможно, что по условию конкретной задачи понижение видимости метода в классе TLists оправдано, а корректировать код базового класса нет возможности, тогда придется попросить компилятор не принимать во внимание эту ситуацию.

Как раз для таких случаев предусмотрена сцециальная дирректива компилятора: <$HINTS OFF>. Она отключает проверку кода на предмет обнаружения Hint’ов до тех пор, пока в коде не встретится обратная дирректива — <$HINTS ON>. Если в обрамленном этими специальными комментариями коде и будут «опасные» Hint-ситуации, они будут игнорироваться компилятором.

Воспользовавшись этими диррективами, мы получим код, который компилируется не только без ошибок, но и без Hint’ов:

Примечание:
Не поддавайтесь искушению раз и навсегда «заткнуть» с помощью <$HINTS OFF>упрямый компилятор, пользы от этого вам, как программисту, не будет никакой.

О пользе сообщений компилятора

Небольшое лирическое отступление:

В каждом уважающем себя форуме есть список вопросов, признанных как off-topic. Часть из них сто раз уже разжевана, часть решается нажатием клавиши F1 и так далее. На каждом форуме борятся с ними по-своему, но, к огромному сожалению, задающих такие вопросы не становится меньше. Более того, вопрошающие частенько еще и обижаются, когда их отсылают :о) Вот пример классического off-topic’а:

В ответ на такой вопрос, господа, как правило, начинают страшно ругаться. :о) Самые вежливые слова, которые получает автор вопроса, звучат примерно так — «Сколько же можно?! Хелп когда научитесь читать?!» На что автор, как ему кажется, абсолютно справедливо, начинает огрызаться, что типа, откуда ему было знать, что такое абстрактный метод и что на этом самом TStrings не написано, какие у него методы!
Проведем маленький эксперимент и напишем такой код:

При компиляции нам будет выдан warning , как раз на той строке, где создается экземпляр класса — Constructing instance of ‘TStrings’ containing abstract methods . Я надеюсь, что текст этого предупреждения абсолютно ясен и не требует пояснений.

Смотрите, что получается, ошибок компиляции нет, человек с высоко поднятой головой игнорирует «всю эту ерунду» и просто не обращает внимания на предупреждения компилятора! В итоге, он получает ошибку времени выполнения, некоторое личное недоумение, кучу словесных тычков и подзатыльников на форуме. А ведь его предупреждали! :о)


рис. 2

IDE Delphi, как дружественная среда программирования, кроме обычного факта уведомления о сообщениях компилятора, предоставляет дополнительные возможности — если дважды кликнуть на тексте сообщения (рис. 2), то курсор автоматически переместиться на ту строку в редакторе кода, в которой, по мнению компилятора, возникает спорная ситуация. Если же на тексте сообщения ( hint или warning ) нажать F1 , то откроется окно справочной системы (рис. 3) по конкретному hint’у или warning’у. Там будет описано, в каких случаях компилятор выдает такое сообщение и что Delphi вообще «думает» по этому поводу.


рис. 3

Коварные Warnings

Предупреждения- warnings обладают гораздо более высоким уровнем опасности с точки зрения компилятора. История с абстрактным классом служит тому примером. Разберем еще несколько случаев возникновения warning ‘ов: Return value of function ‘VarCompare’ might be undefined Значение результата функции ‘VarCompare’ может быть неопределено .

Казалось бы, с точки зрения логики в тексте функции все верно. Перекрыты все возможные случаи и сообщение компилятора выглядит несколько неуместно. Но не стоит ждать от него слишком много, компилятор не может (да и не обязан) вникать в логику программы. Для того, чтобы избавиться от этого сообщения, было бы правильно переписать это код. Например, вот так:

В итоге и компилятор «отстанет», и код будет более читабельным. Это сообщение только на первый взгляд кажется безобидным, ниже приведен пример, в котором возникает аналогичное предупреждение и содержится реальная ошибка — если возникнет исключительная ситуация при открытии файла, результат функции, действительно, не будет определен. В итоге это скажется при выполнении программы, когда ошибки никто не будет ожидать.

Еще один пример коварного warning ‘а: Variable ‘list’ might not have been initialized Переменная ‘list’ может быть не инициализирована .

Совершенно справедливое замечание. Если во время работы программы в функцию будет передана пустая строка, нам обеспечен знаменитый Access violation .
Вернемся еще раз к примеру с определением собственных классов.

Method ‘Clear’ hides virtual method of base type ‘TList’ Метод ‘Clear’ прячет виртуальный метод базового класса ‘TList’ . Эта ситуация буквально означает перекрытие виртуального метода родительского класса. То есть, в классе TExLists определен статический метод, имя которого совпадает с виртуальным методом родительского класса TList. Если в дальнейшем, от класса TExLists будут наследоваться, то метод Clear для этих наследников будет закрыт. Правильный вариант:

Точно также, как и в случае с hint’ами, существуют опции для отключения сообщений компилятора о предупреждениях — , и для их включения — . И точно так же хочу обратить внимание на нежелательность использования этих опций без нужды. Молчание компилятора в этом случае не будет означать отсутствие проблемы :о)

Резюме

Цель этого материала, не рассказать обо всех возможных hint ‘ах и warning ‘ах, их список слишком велик для одной статьи, а обратить внимание на необходимость анализировать ВСЕ сообщения компилятора в ваших программах.

Елена Филиппова
Специально для Королевства Delphi

Источник

alltray имеет превосходную опцию, которая дает нам большую настраиваемость:
--menu; -m: "menu text:command": add entry to popdown menu

только для запущения теста это я использую tho напр.: alltray xev

это устанавливаемо на человечности 16.04.

использование kwin это перестанет работать с ERROR get class hints

использование с metacity (мое предпочтительное для скорости) или compiz дает Alltray: no system tray/notification area found.

что может быть сделано, чтобы позволить ему работать? предпочтительно на метагороде.

как альтернативный ответ, любое эквивалентное приложение или сценарий, который имеет эквивалентную опцию к --menu сделает это.

эта работа привычки, которая устарела.

задан
5 September 2017 в 02:00

поделиться

1 ответ

Короткий ответ (TL; DR)

alltray больше не сохраняется, если Вы используете использование KDE kdocker вместо этого.
(это может также работать с Gnome),

Это столь же легко как:

sudo apt-get install kdocker

Подробнее

Поскольку Вы видите из их репозитория и из этого сообщения alltray инструмент не сохраняется больше.

Из-за этого, даже если бы Вы пытаетесь скомпилировать его из источника, было бы очень трудно получить его работа, так как это основано на старых стандартах и старых/устаревших библиотеках. Например, это основано на старых стандартах для языка Vala и при попытке скомпилировать его с недавними компиляторами Vala, это даже генерирует синтаксические ошибки.

kdocker инструмент все еще сохраняется вместо этого, и очень легко установить его на Ubuntu 16.04 как показано выше.

Это работает почти точно как alltray, если Вы хотите отменить «стыкующий», просто нажимают правой кнопкой мыши вместо левой кнопки (Esc не будет работать).

Это, конечно, работает с KDE, я не протестировал его с Gnome (то, что его имя запускается со средств K, ничто, много приложений как Kate или Konsole все еще не работают с Gnome).

ответ дан Kubuntuer82
8 December 2019 в 04:07

поделиться

Другие вопросы по тегам:

Похожие вопросы:

2 мар 2008

взялся за изучение макс-скрипта и нна первых же шагах возникла сложность. Разбираясь с причиной ошибки дошел до рафинированного кода где нет ничего, а ошибка продолжает возникать. вот код:

rollout unnamedRollout «Untitled» width:162 height:300
(
button btn1 «Button» pos:[45,224] width:71 height:51

on btn1 pressed do (

aaa()

)

)

fn aaa = (
messagebox «sdfg»
)

test= newRolloutFloater «Rollout Order Test» 230 600 20 100
addRollout unnamedRollout test

aaa()

В чем ситуация — при первом запуске скрипта функция «aaa» запускается нормально… но при попытке запустить ее нажатием на кнопку в появившемся интерфейсе упорно возникает следующая ошибка: >> MAXScript Rollout Handler Exception: — Type error: Call needs function or class, got: undefined <<

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

2 мар 2008

Конечно ты объявяеш функцию уже после того как на нее ссылаешся, в твоем случае проще определять ее в теле rollout до всех «on»
Читай главы:
Scope of Variables
Local and Global Variables
Visibility of Locals, Functions, Structures, and User-Interface Items in Rollout Code
Accessing Locals and Other Items in a Rollout from External Code

Issue:

When opening 3ds Max a MAXScript error occurs indicating the following:

MAXScript MacroScript Error Exception

—Type error: Call needs function or class, got: undefined

 

User-added image

Image: MAXScript error widow.

Additionally, the MAXScript Editor opens with the following macro errors (or similar):

User-added image
Image: MAXScript Editor with VRay errors displayed.

MAXScript Editor Window

"macroScript VRayViewportIPR category: "VRay"
buttontext: "V-Ray IPR"
tooltip: "V-Ray Viewport IPR"
( on isVisible do ( vrayViewportIPRControl 0 0 )
on isEnabled do ( vrayViewportIPRControl 0 1 )
on isChecked do ( vrayViewportIPRControl 0 2 )
on Execute do ( vrayViewportIPRControl 0 3 ) )"

 

Note: If more errors occur than can be displayed, the following error message may also appear:
 

Maximum Nested Error Dialog Depth Reached

Attempt to display more then maximum number of simultaneous error message dialogs occurred. See error log file for additional error messages.
 

User-added image

Image: Multiple errors result in the nested error window.

Causes:

Corrupted plugin installation.

See Also:

  • «Type error: Call needs function or class, got: undefined» message when hiding and unhiding objects in 3ds Max after uninstalling Forest Pack
  • «—Type Error: Call needs function or class, got: undefined» when using different views in 3ds Max
  • «Maximum Nested Error Dialog Depth Reached» when launching 3ds Max

Понравилась статья? Поделить с друзьями:
  • Error gentoo please run pip with the user option to avoid breaking python exec
  • Error generico k tag перевод
  • Error generic error in expression
  • Error generating ku from authentication pass phrase
  • Error gen invalid gta 5