TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 28.09.2016 16:26:51

jakyro писал(а):Если хочешь там что-то с ShowMessage навязать, то ShowMessage тут не причём. В ShowMessage ты выводишь какой-то конкретный результат,


ShowMessage позволяет гарантировать, что какой-то конкретный код выполняется и/или снять значение определенной переменной в отдельно взятый момент. Понятное дело, что оно не выдаст текст сообщения, если его сам туда не загнал, но предупреждение лишь информационная метка -- как самодостаточный элемент оно не имеет смысла. Это лишь памятка на что следует обратить внимание.

jakyro писал(а):Я перепроверял, воссоздавал именно ту ситуацию, при которой лог был пуст и я подумал что никаких сообщений не выдало, закрыл папку и программу, после чего она записала лог, когда я уже за ним не наблюдал.

Это бесполезная работа. Тебе сказали как можно проверить (и возможно проверить) функцию логгирования.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение and » 28.09.2016 17:24:17

jakyro писал(а):Ну и оказывается в логи пишет после закрытия приложения... А я смотрел что пока меняю размеры формы - в логе ничего не появляется. :roll:
Но проверял я тогда, когда ты про это и написал.
Полагаю, это просто Вы (в смысле, Ваш просмотрщик) не умеете смотреть открытые файлы. Я в Far'е вижу записи в файле лога во время работы приложения.
Снег Север писал(а):
jakyro писал(а):Или так делать нельзя?

Нельзя.
Обоснуйте plz.
Лекс Айрин писал(а):И, вообще-то, консольная программа не должна иметь окна -- его наличие есть трюк возможный из-за особенностей реализации.
Чем-нибудь подпереть это утверждение можете? Пруфлинком на спеки, MSDN (если речь о Win) или чем-то подобным?
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 28.09.2016 18:08:54

and писал(а):Чем-нибудь подпереть это утверждение можете?

А чисто логически подумать? Cmd (а потом и DOSBox) это программа эмулирующая консоль. То есть, это, фактически, обманка, которая является win приложением, но не полноценным режимом консоли. Если хотите доказательств, то запустите в DOS тот же far, которые есть виндовое приложение и под дос не работает.
Если под линуксом, то уроните графическую оболочку и запустите любое графическое приложение требующее выхлопа в консоль.
Ну и, для ленивых. https://msdn.microsoft.com/ru-ru/library/0wc2kk78(v=vs.90).aspx
Поскольку консольные приложения выполняют ввод и вывод данных через командную строку, они идеально подходят для быстрого ознакомления с возможностями языка и написания служебных программ командной строки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение and » 28.09.2016 18:32:56

Лекс Айрин писал(а):
and писал(а):Чем-нибудь подпереть это утверждение можете?

А чисто логически подумать?
То есть, не можете ничем, кроме [s]собственных фантазий[/s] "логического подумывания". Почему я не удивлён?..

Лекс Айрин писал(а):Cmd (а потом и DOSBox) это программа эмулирующая консоль. То есть, это, фактически, обманка, которая является win приложением, но не полноценным режимом консоли. Если хотите доказательств, то запустите в DOS тот же far, которые есть виндовое приложение и под дос не работает.
"В огороде бузина..." Midnight Commander тоже не работает под DOS. Он тоже не консольное приложение? :-D
А может, мы друг друга не понимаем? Что в Вашем словаре есть "полноценный режим консоли"? Поделитесь определением plz.
Лекс Айрин писал(а):Ну и, для ленивых. https://msdn.microsoft.com/ru-ru/library/0wc2kk78(v=vs.90).aspx
Поскольку консольные приложения выполняют ввод и вывод данных через командную строку, они идеально подходят для быстрого ознакомления с возможностями языка и написания служебных программ командной строки.
И что? Не обнаруживаю ни слова в подтверждение Вашего тезиса.
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 28.09.2016 18:51:00

and писал(а):Что в Вашем словаре есть "полноценный режим консоли"? Поделитесь определением plz.

полноценный режим консоли это режим, когда отсутствует доступ к графическому интерфейсу пользователя. То есть, ввод идет с консоли и вывод идет туда же. в винде консольный режим работы присутствовал до Millenium версии. (в) В NT версиях его не было никогда.
and писал(а): что? Не обнаруживаю ни слова в подтверждение Вашего тезиса.


А то, что в них просто нет ввода/вывода в иное окно, кроме эмулятора DOS. Это же сказано прямо. А если есть и окно и (псевдо)терминал, то это все же GUI версия программы, но никак не консольная.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение and » 28.09.2016 19:12:28

Лекс Айрин писал(а):полноценный режим консоли это режим, когда отсутствует доступ к графическому интерфейсу пользователя
Значит, таки нестыковка словарей.
Консольное приложение - это приложение, с которым ассоциированы три стандартных потока ввода-вывода. Всё. Точка. Есть ли при этом гуйня, нет ли гуйни - совершенно не определяющий фактор.
Лекс Айрин писал(а):в винде консольный режим работы присутствовал до Millenium версии. (в) В NT версиях его не было никогда.
Дааа лааадно! В мастдайках (если подзабыли древний жаргон - это линейка 9x: 95/95OSR2/98/98SE/Me) консоль была совершенно такая же, как у NT-линейки. (Да, я в курсе, что реализована она была иначе - но рояли не играет).
 
Ааааа, понял! Вы не о консоли мастдайной говорили, а о DOSMode - той части ОС, которая грузилась без shell'а. Так... это... тёплое с мягким Вы путаете. Вы б ещё real mode сюда приплели, для вящей неразберихи.

Добавлено спустя 10 минут 53 секунды:
Лекс Айрин писал(а):в них просто нет ввода/вывода в иное окно, кроме эмулятора DOS. Это же сказано прямо.
"Мартышка к старости слаба глазами стала". Ткните plz пальцем, где сказано, что я не могу (или хотя бы идеологически не имею права) создать там иное окно.
Лекс Айрин писал(а):А если есть и окно и (псевдо)терминал, то это все же GUI версия программы, но никак не консольная.
А, понял! Чтобы считаться "истинно консольным", нужно не только иметь консоль, но и не иметь GUI :-D
А почему гибридная программа у Вас "гуёвая с консолью", а не "консольная с GUI"? Дискриминация-с! :-)))
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 28.09.2016 19:32:13

and писал(а):Есть ли при этом гуйня, нет ли гуйни - совершенно не определяющий фактор.


Как раз таки определяющий. Не забываем, что графический режим изначально появился как надстройка над текстовой консолью.
Консоль, изначально, это не командная строка+ экран, а средство ввода+средство вывода. Причем, никто не говорит, что это должны быть клавиатура+экран. Изначально это были перфокарты+принтер (или те же перфокарты). Экран (монитор) мог вполне и отсутствовать.

В винде консольный режим изначально средство запуска старых (досовских) приложений. Часть из них была предназначена чисто для настройки/ремонта системы, то их нельзя было просто удалить. И так как замены им не было, то пришлось делать эмулятор доса. Который и назвали консолью (до этого просто не было необходимости различать dos/win, так как программ с мордой не существовало). когда движение чистоту винды достигло апогея.

Самое смешное, что в линуксе появление графического режима не потребовало таких сложностей.

Добавлено спустя 1 минуту 36 секунд:
and писал(а):Ткните plz пальцем, где сказано, что я не могу (или хотя бы идеологически не имею права) создать там иное окно.


Я ткнул. Видящий найдет.

and писал(а):А, понял! Чтобы считаться "истинно консольным", нужно не только иметь консоль, но и не иметь GUI :-D


да.

Добавлено спустя 2 минуты 54 секунды:
and писал(а):А почему гибридная программа у Вас "гуёвая с консолью", а не "консольная с GUI"? Дискриминация-с! :-)))


потому что консольная с ГУИ не будет иметь малый размер (добавляется код показа ГУИ окна),что противоречит словам корпорации майкрософт. Даже псевдо ГУЙ требует больших накладных расходов.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение and » 28.09.2016 20:17:52

Лекс Айрин писал(а):Консоль, изначально, это не командная строка+ экран, а средство ввода+средство вывода. Причем, никто не говорит, что это должны быть клавиатура+экран. Изначально это были перфокарты+принтер (или те же перфокарты). Экран (монитор) мог вполне и отсутствовать.
Вот странно. Всё Вы вроде знаете и понимаете, судя по этой цитате. Но как доходит до выводов...
 
Лекс Айрин писал(а):графический режим изначально появился как надстройка над текстовой консолью
Да лааадно!.. Консоль и графическая оболочка - совершенно не связанные отношениями "базис-надстройка" вещи, они каждая сама по себе. Каждая из них - совершенно самостоятельная надстройка над ядром.
Лекс Айрин писал(а):пришлось делать эмулятор доса. Который и назвали консолью
Нет. Понятие консоли ортогонально DOS/Win/etc.
Лекс Айрин писал(а):программ с мордой не существовало
Да лааадно!.. Расскажите это это разработчикам досовских игр, графредакторов, CAD'ов... Или Борланду с его GraphicVision'ом. (Кстати, их же TurboVision - канонический борландовский интерфейс, созданный для текстового режима - тоже называли GUI, как бы парадоксально это ни звучало. Но не будем об этом вспоминать, чтоб ещё больше не запутаться.)
Лекс Айрин писал(а):консольная с ГУИ не будет иметь малый размер (добавляется код показа ГУИ окна),что противоречит словам корпорации майкрософт
Каким словам? А огромное консольное приложение - ужЕ не консольное? А крошечное гуёвое - оно консольное?
Не плодите лишних сущностей! А то придёт Оккам - и бритвочкой по горлу.
Лекс Айрин писал(а):
and писал(а):А, понял! Чтобы считаться "истинно консольным", нужно не только иметь консоль, но и не иметь GUI :-D
да.
Нет.
Консоль - текстовый (то есть, оперирующий символами) интерфейс stdin/stdout/stderr. Как Вы справедливо заметили, это вовсе не обязательно дисплей (или экранное окно) + клавиатура.
GUI shell (в современном понимании) - оболочка, оперирующая пикселями.
Прочие Ваши умопостроения - фантазии от лукавого.
Приложение может быть и гуёвым, и консольным одновременно. Это нигде и никем afaik не запрещено. Ни в Win, ни в *nix. Если Вы (или кто-то ещё из форумчан) имеет иные сведения - с благодарностью выслушаю. И посыплю голову пеплом, и обзову себя говнокодером - ибо с самого начала своего знакомства с Lazarus'ом, т.е. лет 6-7 ужЕ, только через консоль и отлаживаюсь. А release-режим сборки, в числе прочего, ещё и отключает консоль. Главное не забывать WriteLn'ы повычищать :-) (WriteLn imho удобнее, чем DebugLn).
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 28.09.2016 20:41:57

and писал(а):ибо с самого начала своего знакомства с Lazarus'ом, т.е. лет 6-7 ужЕ, только через консоль и отлаживаюсь.


Вообще, я с компами общаюсь примерно с двухтысячного. И вначале осваивал дос. и примерно тогда учился программировать. И приемы отладки у меня еще тех времен. Я не буду ничего доказывать. Тем более, что всё уже всем должно быть понятно.

Скажу честно -- мне просто лень засорять форум. Хочется вам считать, что консольные обязательно показывают консоль и могут иметь гуевое окно -- считайте. Флаг в руки, зубочистку в зубы и вперед. Но вообще, подобный режим называется программа с отладочной консолью.
За сим прекращаю срач.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение and » 28.09.2016 20:51:24

Лекс Айрин писал(а):Вообще, я с компами общаюсь примерно с двухтысячного. И вначале осваивал дос. и примерно тогда учился программировать.
"Вообще", я - с 1991г. Тоже DOS (естественно) на IBM-совместимой Искра-1030 плюс CP/M на ДВК. И что? Какое имеет отношение к нашей дискуссии эта не то ностальгия, не то фаллометрия?
 
OK, действительно, стОит сворачиваться. Сытый голодного не разумеет.

Добавлено спустя 3 минуты 59 секунд:
О как! Глянул правее своего поста - а там
Зарегистрирован: 16 сен 2009г.
Так что да, у меня недели полторы назад "днюха" была - 7 лет Lazarus + FPC + freepascal.ru/forum :-)
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Alex2013 » 28.09.2016 23:24:51

Брр... "спор слепого с глухим" ...

1 Консоль даже в виндовс не эмулятор ДОСа
2 Например FAR консольная программа но это нигде не ДОС .
3 То что виндовс можно с грехом-пополам запускать "нативые Дос программы" совершенно отдельная песня
(У дос-программ даже формат исполняемого файла совсем другой и запускаются они совсем иначе )

4 Гибридные программы вполне работают (Вот доказательство правда это Линукс и старый Лазарус но принцип понятен )
Кстати тоже что-то на старте выдало :
[WARNING] Out of OEM specific VK codes, changing to unassigned
[WARNING] Out of unassigned VK codes, assigning $FF

...но дальше все тихо . И GUI-кнопка c Writeln ('1') в обработчике вполне делает свое "черное дело"... :wink:
ИзображениеИзображение
Иногда можно просто директиву компилятора в проект кинуть
{$APPTYPE XXX} Выбор типа приложения. XXX=
Console – консольное.
GUI – графическое.


Да иногда встречается что-то вроде описанного случая ... Это обычно это срабатывание исключения то есть где-то в коде LCL явно записано
try
< Инструкции >

except // Исключения
Writeln ( ...)

end;
Иногда можно побороть своим обработчиком или покопаться в настройках компиляции ... бывает что это инфа что идет отладчику (консоль закрыта но "устройство " output никуда не делось )
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Лекс Айрин » 29.09.2016 09:43:50

Alex2013 писал(а):(У дос-программ даже формат исполняемого файла совсем другой и запускаются они совсем иначе )

Не такой уж и другой. Просто добавляется дополнительный заголовок. Теоретически, можно даже написать прогу запускаемую как в дос, так и в виндовс. Только ни разу подобных прог не видел.
Alex2013 писал(а): Гибридные программы вполне работают (Вот доказательство правда это Линукс и старый Лазарус но принцип понятен )
Кстати тоже что-то на старте выдало :


гибридной была бы прога которая при запуске в консоли использовало только консоль, а при запуске вне ее графическое окно. но спорить не собираюсь, так как просто тупо бесполезно. Если не учитывается мнение даже microsoft, то иные приводить бесполезно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: TTreeView - WARNING: TResourceCacheItem.IncreaseRefCount

Сообщение Alex2013 » 29.09.2016 14:17:59

Лекс Айрин писал(а):Не такой уж и другой. Просто добавляется дополнительный заголовок. Теоретически, можно даже написать прогу запускаемую как в дос, так и в виндовс. Только ни разу подобных прог не видел.

Просто в Вин-программах обычно есть затычка пишущая в досе что-то вроде " This program cannot be run in DOS mode."
Но при запуске в видовс ось сразу определяет, что это не ДОС-программа и загружает ее совсем иначе ...

гибридной была бы прога которая при запуске в консоли использовало только консоль, а при запуске вне ее графическое окно.

:?: А что мешает проверить ? Но задача стояла Консоль + GUI что я и показал .
Но можно сделать еще проще и выбирать режим по ключу в командной строке...
Зы
но спорить не собираюсь, так как просто тупо бесполезно.
:shock:
"Мне вообще ничего не нравится!"(с)Капитан Смоллетт ... :D :D :D
Я вообще не спорил . :wink: Я просто поделился мнением и тем что точно знаю . :idea:
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 73

Рейтинг@Mail.ru