Вверх ↑
Этот топик читают: Гость
Ответов: 4621
Рейтинг: 746
#436: 2020-01-13 11:36:59 ЛС | профиль | цитата
Galkov писал(а):
зачем Netspirit это в качестве главной идеи поставил
Мои изменения касались фактически только приведения кода в человеческий вид. В результате чего в моём варианте получился баг. Баг помог решить Galkov. А потом решили что и официальный компонент надо переделать. Оптимизировали, убрав костыль с добавлением символов к строкам. С помощью перестановки свойств в режиме CaseSensitive=False избегаем приведения Mask к нижнему регистру при каждой операции.
Всё это описывается как
StrMask optimizations
(желательно без всяких "fix...")

Можно и подробно описать, но что-то такой тенденции на нашем SVN я не замечал.

Редактировалось 2 раз(а), последний 2020-01-13 11:38:51
карма: 26

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#437: 2020-01-13 15:34:36 ЛС | профиль | цитата
Netspirit писал(а):
Можно и подробно описать, но что-то такой тенденции на нашем SVN я не замечал

Ага. Вам волю дай, так вы тут целую рецензию на диссертацию напишете, листов этак на ...дцать
карма: 22

0
Ответов: 9906
Рейтинг: 351
#438: 2020-01-13 22:16:28 ЛС | профиль | цитата
Netspirit писал(а):
только приведения кода в человеческий вид

Ну ни фига себе... Я чего, слепой, что ли.
Ну нет у Вас, Коллега, добавления #1 в хвостики. И мне не кажется, что это добавление такое уж бесчеловечное
Добавление, как добавление....

Ну мне пришлось напрягать мозг, чтобы понять, чем это добавление не понравилось.
Вот, целую теорию сочинил:
1) _StrCmp - это быстрый парень, символы только читает, ни с каким хипом не общается.
2) А вот если уже в StrCmp символ добавлять, то происходит полное перекопирование входной строки. В хипе. Что для очень-очень длинной строки (extremely long) - занятие таки накладное.

Не, ну должен же был я найти хоть какую-то теорию, объясняющую подход Коллеги

Редактировалось 2 раз(а), последний 2020-01-13 22:19:13
карма: 9

0
Ответов: 4621
Рейтинг: 746
#439: 2020-01-14 12:01:43 ЛС | профиль | цитата
Ну, у меня реально мотивация была - ощущение "неправильного положения вещей" при взгляде на тот код. В разных местах такое бывает. Как то же приведение к PChar() строковых констант с добавлением #0 при заполнении строковых свойств - оно просто не имеет аргументов для существования (либо они мне неизвестны). Везде, где могу, я такое исправляю.

Редактировалось 1 раз(а), последний 2020-01-14 12:02:22
карма: 26

0
Ответов: 207
Рейтинг: 14
#440: 2020-03-23 20:46:05 ЛС | профиль | цитата
Проблема возникла на ровном месте. Когда вставляю разный текст CTRL+C и СTRL+V в Memo или RichEdit, он вставляется не полностью.(Чуть больше 30000 символов).
Если через ClipboardHook на точку doAdd Текст вставляется полностью.
В чем может быть проблема?
карма: 2

0
Ответов: 4621
Рейтинг: 746
#441: 2020-03-25 10:37:57 ЛС | профиль | цитата
Причина в ограниченном размере буфера этих элементов управления - по-умолчанию 32 Кб.
Joiner писал(а):
на точку doAdd Текст вставляется полностью
Вставляется, но если попробуешь после этого ввести с клавиатуры что-то - не получится.
Решение - /topic/66273/1#p289674

Редактировалось 1 раз(а), последний 2020-03-25 19:29:42
карма: 26

1
Голосовали:Joiner
Ответов: 207
Рейтинг: 14
#442: 2020-03-25 12:28:14 ЛС | профиль | цитата
Netspirit, Спасибо помогло
ArrayFilterRepeats не работает в FPC-32, FPC-64, FPC-32U, FPC-64U

Add(MainForm,11343095,70,203)
{
Width=716
Height=601
Caption=""
link(onCreate,12175623:doTimer,[])
}
Add(HBoxLayout,12018231,182,119)
{
Name="1"
HeightScale=100
Layout="2"
}
Add(ChildPanelRush,4428017,203,294)
{
link(onClick,15468205:doFilter,[])
}
BEGIN_SDK
Add(EditMultiEx,3297653,21,21)
{
EventCount=#7:onClick|
}
Add(PanelRush,15740849,35,105)
{
Width=700
Height=30
Align=2
Layout="parent.2"
ColorFrom=15780518
ColorShadow=15780518
Glyphs=[]
}
Add(ButtonRush,8854872,217,84)
{
Left=10
Top=5
Width=95
Height=20
ColorTo=16777215
ColorToOver=16777215
ShadowOffsetOver=0
BorderWidthOver=0
ColorFromDown=-16777194
ColorToDown=-16777194
BorderColorDown=0
ShadowOffsetDown=0
BorderWidthDown=0
Caption="Удалить дубли"
Glyphs=[]
link(onClick,3297653:onClick,[(285,90)(285,27)])
}
END_SDK
Add(VBoxLayout,791585,245,119)
{
Name="2"
}
Add(ArrayFilterRepeats,15468205,266,294)
{
link(onFilter,11054763:doAdd,[])
link(Array,8679338:Array,[])
}
Add(Memo,8679338,252,217)
{
Left=220
Top=220
Ctl3D=1
Layout="1"
WidthScale=50
ScrollBars=3
}
Add(Memo,11054763,336,294)
{
Left=300
Top=220
Ctl3D=1
Layout="1"
WidthScale=50
ScrollBars=3
}
Add(Random,5419902,182,217)
{
Max=10
link(onRandom,8679338:doAdd,[])
}
Add(Timer,12175623,126,217)
{
Interval=0
Enable=1
AutoStop=10
link(onTimer,5419902:doRandom,[])
}
карма: 2

0
Ответов: 4621
Рейтинг: 746
#443: 2020-03-25 13:12:03 ЛС | профиль | цитата
Попробую исправить.
карма: 26

1
Голосовали:Joiner
Ответов: 4621
Рейтинг: 746
#444: 2020-03-25 19:28:05 ЛС | профиль | цитата
Исправил. Если вдруг очень надо - то вот.
карма: 26

1
Голосовали:Joiner
Ответов: 207
Рейтинг: 14
#445: 2020-03-25 20:03:18 ЛС | профиль | цитата
Netspirit писал(а):
Исправил. Если вдруг очень надо - то вот.

Netspirit, Спасибо
карма: 2

0
Ответов: 207
Рейтинг: 14
#446: 2020-03-25 21:42:34 ЛС | профиль | цитата
Netspirit, В Unicode сравнивает по первому символу почему-то.

Редактировалось 1 раз(а), последний 2020-03-25 21:42:55
карма: 2

0
Ответов: 207
Рейтинг: 14
#447: 2020-03-27 15:40:21 ЛС | профиль | цитата
StrMask например с такой *#* маской работал неправильно.
Лечение: в файле hiStrMask.pas заменить - строки 63, 64
str := sstr +#1;
msk := _prop_Mask +#1;

карма: 2

0
Ответов: 4621
Рейтинг: 746
#448: 2020-04-01 12:26:07 ЛС | профиль | цитата
Joiner писал(а):
В Unicode сравнивает по первому символу почему-то

В файле HiAsm\compiler\FPC2\src\packages\KOLx64\kol.pas поправить строку 44909 (функция WStrCmp):
Result := Integer(Ord(w1^)) - Integer(Ord(w2^));

После чего выполнить файл HiAsm\compiler\FPC2\src\_make_KOL_uni.bat

Joiner писал(а):
StrMask например с такой *#* маской работал неправильно
В следующей версии будет исправлен.

Редактировалось 1 раз(а), последний 2020-04-09 22:43:53
карма: 26

1
Голосовали:Joiner
Ответов: 207
Рейтинг: 14
#449: 2020-04-07 12:07:10 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-06-02 19:19:39
карма: 2

0
Ответов: 60
Рейтинг: 0
#450: 2020-05-01 11:02:30 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-05-01 11:03:46
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)