Найдено 579 результатов
- 05.08.2024 17:54:41
- Форум: Free Pascal Compiler
- Тема: Тайна shr
- Ответы: 2
- Просмотры: 6324
Re: Тайна shr
Сдвиг на значения ≥ разрядности переменной (32 для LongWord) не определён.
- 13.11.2023 23:11:30
- Форум: Lazarus
- Тема: Передача параметров через указатель на функцию
- Ответы: 7
- Просмотры: 3172
Re: Передача параметров через указатель на функцию
Через поля TForm1. Это указатель на самом деле не на просто функцию, а на метод — он физически хранит два указателя, на функцию и на self, запоминаемый в момент @.
- 04.11.2023 00:27:53
- Форум: Обучение Free Pascal
- Тема: Не могу понять, как писать исключения
- Ответы: 12
- Просмотры: 32576
Re: Не могу понять, как писать исключения
Нужно сделать uses SysUtils;, он занимается преобразованием ситуации, возникающей при делении на 0, в бросание исключения языка EZeroDivision.
- 04.10.2023 20:59:09
- Форум: Разработки на нашем сайте
- Тема: tta кодек на Паскале
- Ответы: 9
- Просмотры: 2093115
Re: tta кодек на Паскале
Есть! А если бы и не было, можно было бы какой-нибудь не очень сильно медленный прикол придумать, типаAlexander писал(а):В Паскале нет sar, sal, а только shl, shr.
Код: Выделить всё
function Sar(x, by: int32): int32;
begin
result := int32(x shr by or -(x shr (bitsizeof(x) - 1)) shl (bitsizeof(x) - 1 - by));
end;
- 19.09.2023 16:42:03
- Форум: Общие вопросы
- Тема: private против protected
- Ответы: 7
- Просмотры: 45114
Re: private против protected
И в пределах одного модуля все могут видеть всё сквозь private и protected, но в Delphi то же самое, это эквивалент «friend class» в C++. Можно выключить через strict private и strict protected, но зачем.
- 25.08.2023 08:01:59
- Форум: Обучение Free Pascal
- Тема: Перекрытие методов в nested классах. Как?
- Ответы: 7
- Просмотры: 24082
Re: Перекрытие методов в nested классах. Как?
Да, наверное, это баг, ща зарепорчу. Можно обойти как:
type
TMyWSMsgPump_descendant = class (TWSThreadMessagePump )
protected
type
Local_TMessageDriverThread = TMessageDriverThread;
TMyDrvThread_descendant = Class(Local_TMessageDriverThread )
Public
Procedure Execute;override;
End;
end;
type
TMyWSMsgPump_descendant = class (TWSThreadMessagePump )
protected
type
Local_TMessageDriverThread = TMessageDriverThread;
TMyDrvThread_descendant = Class(Local_TMessageDriverThread )
Public
Procedure Execute;override;
End;
end;
- 01.03.2023 22:32:30
- Форум: Разработки на нашем сайте
- Тема: Cheb's Game Engine
- Ответы: 901
- Просмотры: 1230347
Re: Cheb's Game Engine
благо, Паскаль умеет в воспроизводимость, благодаря стандартизованной до бита математике с 32-битными флоатами
Не умеет, я пробовал сделать функцию LdExp(single) и она в зависимости от платформы могла считать точнее single, и причина, видимо, неизвестна ( пример в обратную сторону , где расчёты в ...
Не умеет, я пробовал сделать функцию LdExp(single) и она в зависимости от платформы могла считать точнее single, и причина, видимо, неизвестна ( пример в обратную сторону , где расчёты в ...
- 05.01.2023 20:55:26
- Форум: Общее
- Тема: Стиль кода FP
- Ответы: 22
- Просмотры: 86234
Re: Стиль кода FP
Это стиль кода самого Free Pascal, не более. Он далёк от общепринятого — того, в котором написаны исходники модулей Delphi.
- 08.09.2022 03:13:29
- Форум: Free Pascal Compiler
- Тема: О производительности динамических массивов...
- Ответы: 38
- Просмотры: 23790
Re: О производительности динамических массивов...
Я себе давно сделал велосипед (не через managed record или что iskander подразумевает, а через ручную работу с RTTI и заголовком массива), который как раз в порядке багофичи не зануляет элементы (если они неуправляемые). Но мне это нужно было не потому, что я очень страдал от лишних занулений, а ...
- 07.09.2022 14:21:11
- Форум: Free Pascal Compiler
- Тема: О производительности динамических массивов...
- Ответы: 38
- Просмотры: 23790
Re: О производительности динамических массивов...
У меня, без изменений кода, x86-64, -O3:beria писал(а):Результат
9875
12742320
19900
7437
12742320
19900
9031
12742320
19900
9578
12742320
19900
:>
- 07.09.2022 11:08:26
- Форум: Free Pascal Compiler
- Тема: О производительности динамических массивов...
- Ответы: 38
- Просмотры: 23790
Re: О производительности динамических массивов...
GetMem не заполняет память нулями, SetLength заполняет (или даже вызывает кастомные Initialize/Finalize, что ещё медленнее). Если использовать GetMem+FillChar, будет одинаково.
Но если ты вызвал SetLength, то ты эти элементы собираешься использовать, то есть будешь с ними делать что-то, на фоне ...
Но если ты вызвал SetLength, то ты эти элементы собираешься использовать, то есть будешь с ними делать что-то, на фоне ...
- 03.09.2022 15:53:24
- Форум: Общее
- Тема: Детский вопрос про diff файл
- Ответы: 2
- Просмотры: 12419
Re: Детский вопрос про diff файл
Код: Выделить всё
cd <папка с репозиторием FPC>
git diff [файлы, можно с масками *?, по умолчанию диффается всё] >output.patch
- 22.08.2022 15:52:07
- Форум: Разработки на нашем сайте
- Тема: Cheb's Game Engine
- Ответы: 901
- Просмотры: 1230347
Re: Cheb's Game Engine
В теории, shared contexts для того и задуманы, чтобы это обойти, они позволяют заниматься вещами вроде загрузки шейдеров и других ресурсов в отдельном потоке. Сам не пробовал...Cheb писал(а):Изпользуемый гапи - OpenGL / GL ES, что налагает ограничение: все команды на рендер - только в основном потоке.
- 17.08.2022 05:57:23
- Форум: Free Pascal Compiler
- Тема: Вопрос знатокам: удалять элементы TMap в процессе итерации
- Ответы: 9
- Просмотры: 7718
Re: Вопрос знатокам: удалять элементы TMap в процессе итерац
Можно сделать коллекцию, действующие итераторы которой отслеживаются в ней же и исправляются при удалениях элементов.
Это не то чтобы очень хорошая идея, но есть интересные юзкейсы; например, список коллбэков, вызываемых как for cb in list do cb.Call, где Call может добавлять или удалять другие ...
Это не то чтобы очень хорошая идея, но есть интересные юзкейсы; например, список коллбэков, вызываемых как for cb in list do cb.Call, где Call может добавлять или удалять другие ...
- 10.07.2022 15:06:18
- Форум: Разработки на нашем сайте
- Тема: Cheb's Game Engine
- Ответы: 901
- Просмотры: 1230347
Re: Cheb's Game Engine
data.pack (даже без сжатия... особенно без сжатия, ха-ха, но я люблю сжатие) всегда будет НАМНОГО быстрее 10 000 отдельных файлов, в этом легко убедиться, попробовав программно обработать (даже просто скопировать куда-нибудь) одно и другое. Потому что реальная файловая система кроме чтения ...
