Тогда уже DistinctBy Я честно говоря не анализировал - там может быть еще много таких. MaxBy - уже невозможно было терпеть без неё.
Я тоже не анализировал, но .DistinctBy
давно не хватало…
Сейчас по всем методам последовательностей прошёлся - не хватает ещё только .AdjacentGroupBy
.
Ещё ни разу не видел применения .AdjacentGroup
, а вот .AdjacentGroupBy
, по крайней мере в задачках на куберфоруме - много где не хватало.
Для последнего предлагаю такую функцию:
function AdjacentGroupBy<T1,T2>(Self: sequence of T1; selector: T1->T2): sequence of (T2, List<T1>); extensionmethod;
begin
var last: List<T1>;
var last_key: T2;
foreach var a in Self do
begin
var key := selector(a);
if key<>last_key then
begin
if last<>nil then yield (last_key, last);
last_key := key;
last := new List<T1>;
end;
last += a;
end;
end;
И дополнительный класс из реализации .AdjacentGroup
не нужен. Я так понимаю вы использовали его для возможности применить .ToArray
… Вот только в .ToArray
тот же алгоритм добавления элементов что и у списка. Только .ToArray
в самом конце создаёт ещё 1 массив, который в случае списков - не нужен.
@Admin, может сделаете метку “namespaces”? Так вам (в особенности ibond’у) будет удобнее исправлять их. Поставить эту метку нужно на эти issue:
https://github.com/pascalabcnet/pascalabcnet/issues/1977 https://github.com/pascalabcnet/pascalabcnet/issues/2024 https://github.com/pascalabcnet/pascalabcnet/issues/2025 https://github.com/pascalabcnet/pascalabcnet/issues/2026 https://github.com/pascalabcnet/pascalabcnet/issues/2064 https://github.com/pascalabcnet/pascalabcnet/issues/2065 https://github.com/pascalabcnet/pascalabcnet/issues/2066 https://github.com/pascalabcnet/pascalabcnet/issues/2071 https://github.com/pascalabcnet/pascalabcnet/issues/2073
Сделал
В GraphWPF
нету ничего типа GetPixel[s]
. Единственная подпрограмма, как то считывающая содержимое окна - Window.Save
. Как то не хорошо, ради считывания области окна - обязательно использовать файл на диске.
Можете, пожалуйста, сделать что то типа GetPixels
, считывающего Array[,] of Color
?
К сожалению, в WPF такого нельзя сделать. Я исследовал этот вопрос. Я рисую не пиксели на экране - я рисую графические примитивы. И хранятся они до поры как графические примитивы
Ну всё окно то вы в файл сохраняете как то.
Посмотрите на строчку 1324 в GraphWPF
. Похоже - именно она берёт пиксели из готового окна и превращает в содержимое битмапа. Вот таким же образом но не в файл - а в оперативную память перекинуть бы…
Ну, у вас же наверное 64-битная платформа. Хотя конечно прикольно умирает.
Убрали из инсталлята PABCRtl32. Она особая - среда её не переваривает. Это как удалить пару dll из инсталлята - она вообще не запустится.
Здраствуйте, я можно сказать случайным образом нашел в модуле GraphWPF функцию Redraw(), которая в документации не описана. Ее назначение - процедура синхронизация вывода графики. Если мы откроем справочный файл по данному модулю, то найдем функцию invoke() с таким же описанием, но есть проблема. Этой функции просто нет, даже уже написав ее в редакторе не видно никаких подсказок. Когда запускаешь программу, выдается ошибка, о том что invoke неизвестное имя.
То есть вопрос в чем: Почему в документации есть нерабочая функция Invoke() и нет функции redraw()?
А по моему Invoke
в Redraw
переименовали, а справку исправить забыли.
Было бы плохо если бы анализатор кода не был бы согласен с компилятором. Тогда это, скорее всего, был бы баг.
Залил версию с обновленным Helpом
У меня такие:
Попробуйте перепоставить систему в другую папку. У меня как-то исправилось именно после этого_
как имя переменной - уже зарезервированно в паттерн мачинге. Может сразу добавить такой же функционал как в паттерн мачинге и C#?
type
t1 = class
static property p1: byte read 0;
end;
begin
var _ := t1.p1; // вызов t1.get_p1 и выкидывание результата
end.
Я не считаю, что это нужно. Паттерн-матчинг - довольно узкая вещь, туда мало кто полезет. А это будет маячить в ядре языка.
Да нет же, это не часть паттерн мачинга. Я говорю - всё что уже задело бы функционал ядра уже есть:
А фича с удалением результата свойства - это не что то локальное как паттерн мачинг. Это может понадобится в повседневной жизни в любой момент.
Не буду с вами спорить.