Size: a a a

2020 December 01

VA

Viktor Akselrod in Delphi & Lazarus
зачем этот финт с постоянно молотящим таймером, когда есть OnTerminate?
источник

AW

Alex Wow in Delphi & Lazarus
А это Паскаль какой ?
Делфячный или фпсный
источник

VA

Viktor Akselrod in Delphi & Lazarus
Alex Wow
Нажал два раза на кал куляторе суммирование
У тебя создалось два потока 🤤
1) у него разрушается предыдущий поток при создании нового
2) как внутренний метод вообще зависит от количества инстансов?
источник

AW

Alex Wow in Delphi & Lazarus
Viktor Akselrod
1) у него разрушается предыдущий поток при создании нового
2) как внутренний метод вообще зависит от количества инстансов?
Кофейку бахну, придумаю ответ
источник

SB

Sergey Bodrov in Delphi & Lazarus
Viktor Akselrod
ну вот хотя бы по короткому куску вопросы
Свойство TThread.Suspended не является Deprecated (в отличие от методов Resume() и Suspend()), соответствует логике конструктора и совместимо с любыми версиями Delphi/FPC.

TThread.Execute выполняется минимум два раза - при старте потока и при его разрушении. А в некоторых реализациях выполняется в цикле.

TThread.Terminate() просто ставит потоку признак "остановлен", но не останавливает его, поэтому можно безопасно применять внутри самого потока.

if Assigned(Obj) then FreeAndNil(Obj); - просто привычка =)
источник

SB

Sergey Bodrov in Delphi & Lazarus
"Финт с таймером" прост, понятен, безопасен, и не жрет ресурсов.
источник

A

Alex in Delphi & Lazarus
Если это для начинающих, тогда боюсь узнать что там для продвинутых. 😂
источник

SB

Sergey Bodrov in Delphi & Lazarus
А еще в таймере можно сделать обновление прогресса, показ промежуточных результатов, итд..
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Может кто помнит, есть ли функция проверки, является ли символ отображаемым по коду символа (в частности для функции OnKeyUP нужно проверить, введен ли символ или нажата служебная клавиша)?
источник

VA

Viktor Akselrod in Delphi & Lazarus
Sergey Bodrov
Свойство TThread.Suspended не является Deprecated (в отличие от методов Resume() и Suspend()), соответствует логике конструктора и совместимо с любыми версиями Delphi/FPC.

TThread.Execute выполняется минимум два раза - при старте потока и при его разрушении. А в некоторых реализациях выполняется в цикле.

TThread.Terminate() просто ставит потоку признак "остановлен", но не останавливает его, поэтому можно безопасно применять внутри самого потока.

if Assigned(Obj) then FreeAndNil(Obj); - просто привычка =)
1) я не зря уже писал, что мы это обсуждали. причем именно с тобой. из-за ограничения синтаксиса нельзя повесить deprecated директиву на property. Проперть замыкается именно на deprecated методы
2) В какой такой реализации TThread.Execute выполнится дважды? Твой код по fpc или delphi?
я очень сомневаюсь, что даже если под fpc они бы не стали делать такую фигню
3) Зачем тебе TThread.Terminate? это просто мусор в данном случае. Единственное, что может оправдать его - это что реально в 2 окажется правдой
4) if Assigned(Obj) then FreeAndNil(Obj);  Это мусор
5) "Финт с таймером" тоже бесполезный мусор
источник

VA

Viktor Akselrod in Delphi & Lazarus
брекпоинт в Execute ожидаемо срабатывает  один раз.
с удовольствием посмотрю контрпример с доказательствами
источник

AK

Andy Korg in Delphi & Lazarus
Aleksandr Duduk
Может кто помнит, есть ли функция проверки, является ли символ отображаемым по коду символа (в частности для функции OnKeyUP нужно проверить, введен ли символ или нажата служебная клавиша)?
Такую не встречал. Но список возможных сочетаний можно посмотреть http://docwiki.embarcadero.com/RADStudio/Sydney/en/Representing_Keys_and_Shortcuts
источник

SB

Sergey Bodrov in Delphi & Lazarus
Viktor Akselrod
брекпоинт в Execute ожидаемо срабатывает  один раз.
с удовольствием посмотрю контрпример с доказательствами
Это привычка от написания кроссплатформенного кода под винду и линукс на Lazarus 0.9.30. Сейчас это может быть не актуально, но хуже от этого не станет.
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Andy Korg
Такую не встречал. Но список возможных сочетаний можно посмотреть http://docwiki.embarcadero.com/RADStudio/Sydney/en/Representing_Keys_and_Shortcuts
Спасибо, тут скорее описание констант для разных клавишБ а вот по коду нажатой клавиши определить, отображается ли символ в поле ввода Edit - вот сразу очевидного решения так и не нашел
источник

VA

Viktor Akselrod in Delphi & Lazarus
Sergey Bodrov
Это привычка от написания кроссплатформенного кода под винду и линукс на Lazarus 0.9.30. Сейчас это может быть не актуально, но хуже от этого не станет.
да никогда так не было. fpc копирует поведение delphi для легкой миграции.

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

AK

Andy Korg in Delphi & Lazarus
Aleksandr Duduk
Спасибо, тут скорее описание констант для разных клавишБ а вот по коду нажатой клавиши определить, отображается ли символ в поле ввода Edit - вот сразу очевидного решения так и не нашел
Не уверен, что такое вообще возможно. Всё таки таблица юникода большая и в некоторых шрифтах есть символ, а в некоторых нет :)
https://unicode-table.com/ru/#basic-latin
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Наверное поэтому и не нашел))
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Viktor Akselrod
да никогда так не было. fpc копирует поведение delphi для легкой миграции.

по итогу имеем, что ты сделал доброе дело, - сделал пример для новичков, но получилось много оговорок.
в идеале его бы доработать и будет супер.
@sergeybodrov Это не так, Спасибо, большое спасибо!
Сергею за образец
Виктору за указание создавать классы при создании формы и разрушать при уничтожении формы.
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Пилю свой микрообразец.
источник

z

zamtmn in Delphi & Lazarus
Похоже как будто Сергей Пятыгин пытается наслушавшись советов "бывалых" бегунов пробежать 10км с первого раза на КМС))
источник