Size: a a a

2020 December 02

SB

Sergey Bodrov in Delphi & Lazarus
Я птичка, мне такое сложно. Хочу все эти тайные знания спрятать "под капот" и забыть.
источник

GB

George Bakhtadze in Delphi & Lazarus
Sergey Bodrov
Я птичка, мне такое сложно. Хочу все эти тайные знания спрятать "под капот" и забыть.
капот дымиться периодически будет :)
источник

VA

Viktor Akselrod in Delphi & Lazarus
M привет
источник

z

zamtmn in Delphi & Lazarus
Viktor Akselrod
во-первых, гуру я себя не называл. во-вторых, все доводы тебе привели изначально против твоего метода и ProcessMessages в частности еще в первый раз, когда ты задавал вопрос. ты можешь вернуться в историю и перечитать.
про то, чем плох ProcessMessages в целом можно и в этой группы почитать и погуглить
честно перечитал. доводов не нашел. Но похоже понял что вы все за вред толдычите. Данный метод подразумевает отсутствие привычных button1click и запуск всех gui действий через экшены а дальше через commandmanager. Поэтому "паралельного" выполнения разных команд нет и быть не может (но есть нюансы с завершением предидущей команды). Но это не минус, в сложном приложении button1click и иже не место.
источник

z

zamtmn in Delphi & Lazarus
почему большинство инет советчиков вместо того чтобы сказать "нет, незнаю", "хз, несталкивался" или тупо промолчать. Начинают доказывать что ты неправ, или выяснять зачем это, а потом всеравно доказывать
источник

VA

Viktor Akselrod in Delphi & Lazarus
zamtmn
честно перечитал. доводов не нашел. Но похоже понял что вы все за вред толдычите. Данный метод подразумевает отсутствие привычных button1click и запуск всех gui действий через экшены а дальше через commandmanager. Поэтому "паралельного" выполнения разных команд нет и быть не может (но есть нюансы с завершением предидущей команды). Но это не минус, в сложном приложении button1click и иже не место.
неправильно ты понял.  про привязку к ГУИ никто не говорит.
как раз таки твой вариант, если не ошибаюсь привязывается к пользовательскому вводу в отличии от условной  "текущей команды", которая может заполняться из любых источников в любое время.

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

z

zamtmn in Delphi & Lazarus
Viktor Akselrod
неправильно ты понял.  про привязку к ГУИ никто не говорит.
как раз таки твой вариант, если не ошибаюсь привязывается к пользовательскому вводу в отличии от условной  "текущей команды", которая может заполняться из любых источников в любое время.

основной минус ProcessMessages - это то, что сбивается последовательное выполнение команд, логика выполнения программы становится трудно прогнозируемой.
если брать банальный пример с обработчиком кнопки, в котором дергается ProcessMessages, то ты в него можешь попасть более одного раза. это приводит к надобности разучивания таких ситуаций.
основной минус у меня получается решен. в обработчик кнопки я попадаю 2 раза, но там только commandmanager.runcommand('DrawLine') и внутрь команды 2 раза попасть не получится. источники заполнения - мышь, командная строка, результат выполнения предидущей команды
источник

GB

George Bakhtadze in Delphi & Lazarus
zamtmn
основной минус у меня получается решен. в обработчик кнопки я попадаю 2 раза, но там только commandmanager.runcommand('DrawLine') и внутрь команды 2 раза попасть не получится. источники заполнения - мышь, командная строка, результат выполнения предидущей команды
нет, основной минус это таки использование недокументированных знаний о внутренней реализации UI фреймворка. В какой-то момент она может поменяться. Равно как и уже может быть другой на какой-нибудь платформе. Так что даже если все пока идеально работает, это не значит, что проблем нет.
источник

GB

George Bakhtadze in Delphi & Lazarus
стоит ли из-за этого связываться с многопоточностью, раз она пока не нужна - решать тебе. может и не стоит
источник

z

zamtmn in Delphi & Lazarus
George Bakhtadze
нет, основной минус это таки использование недокументированных знаний о внутренней реализации UI фреймворка. В какой-то момент она может поменяться. Равно как и уже может быть другой на какой-нибудь платформе. Так что даже если все пока идеально работает, это не значит, что проблем нет.
согласен. тут я ниже кода lcl общего для всех поддерживаемых платформ не опускаюсь. Но да с этой стороны могут быть проблекмы
источник

z

zamtmn in Delphi & Lazarus
многопроточность в себе проблем принесет еще больше наверно((
источник

GB

George Bakhtadze in Delphi & Lazarus
zamtmn
многопроточность в себе проблем принесет еще больше наверно((
вероятно, да. Как минимум, придется взаимодействовать с LCL из другого потока, что следует делать по определенным правилам. но они документированы.
источник

AK

Alexey Kulakov in Delphi & Lazarus
что практичнее: i:=i*33 или i:=i+i shl 5 ?
источник

z

zamtmn in Delphi & Lazarus
i:=i*33
источник

AK

Alexey Kulakov in Delphi & Lazarus
т.е. imul удобнее чем shl/add по ассемблеру если смотреть?
источник

z

zamtmn in Delphi & Lazarus
компилятор пусть таким увлекается, ты на языке высокого уровня пишешь
источник

AK

Alexey Kulakov in Delphi & Lazarus
но читать-то мне и низкоуровневое приходится :(
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Kulakov
что практичнее: i:=i*33 или i:=i+i shl 5 ?
А сколько миллионов раз в секунду это нужно считать?
источник

AK

Alexey Kulakov in Delphi & Lazarus
ладно,пусть решает компилятор
источник

AK

Alexey Kulakov in Delphi & Lazarus
миллионами это ты считаешь. у меня, думаю, ограничится это парой мегабайт с побайтовым чтением и расчетом этого хэша
источник