Табло/учетка для спортивных/интеллектуальных игр
Модератор: Модераторы
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Табло/учетка для спортивных/интеллектуальных игр
Электронное табло для спортивных/интеллектуальных игр, разбитые на 3 раунда по 11 вопросов (или состязаний). Функционал адаптирован для отображения на мониторе-табло и одновременного учета баллов.
Использованы библиотеки Zeos и rxLib (OPM-версии). Транковый Lazarus 2.1.0
Исходники https://github.com/Al-Muhandis/tournament
Бинарники https://github.com/Al-Muhandis/tournament/releases/
Использованы библиотеки Zeos и rxLib (OPM-версии). Транковый Lazarus 2.1.0
Исходники https://github.com/Al-Muhandis/tournament
Бинарники https://github.com/Al-Muhandis/tournament/releases/
Наверно стоит потренироваться и изучить хотя бы массивы дополнительно.
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Seenkao писал(а):Наверно стоит потренироваться и изучить хотя бы массивы дополнительно.
А че не списки-то тогда, почему массивы? И там не массивы уж, а саму структуру можно было выстроить чуть по-другому. К примеру, сделать отдельную таблицу вопрос-турнир.
Если есть идея как сделать можете сделать коммит я гляну.
А по делу, если так реализовывать, то не очень хорошо получилось бы сделать лукап поля. Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.
Ichthyander, всё же стоит понимать что вам пишут а не читать выборочно. В моём словосочетании есть слова: "хотя бы".
И, я думаю, не стоит забывать, что люди тратят своё время, на то, чтоб посмотреть ваш код. Не задумывались, что у этих людей есть свои дела? Если бы меня это интересовало, я бы занялся. Меня это не интересует.
Мой совет либо стоит принять, либо не стоит. Ваше право!
И, да, в моём лазарусе ваш проект не открылся. Возможно у многих так.
И, я думаю, не стоит забывать, что люди тратят своё время, на то, чтоб посмотреть ваш код. Не задумывались, что у этих людей есть свои дела? Если бы меня это интересовало, я бы занялся. Меня это не интересует.
Мой совет либо стоит принять, либо не стоит. Ваше право!
И, да, в моём лазарусе ваш проект не открылся. Возможно у многих так.
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Seenkao писал(а):И, я думаю, не стоит забывать, что люди тратят своё время, на то, чтоб посмотреть ваш код.
Вам же хватило наглости не разобравшись намекнуть, что я не знаю, что такое массивы, так что если сказали "А", то стоит сказать и "Б" и предложить как сделали бы Вы, не увеличивая количество строк и не ухудшая понятность кода.
Ваш "совет", по поводу изучать хотя бы массивы абсолютно пустой и непрактичный, причину я озвучил выше.
"Не открывается", потому что у вас Лазарус 2.0.10 или ниже, а в топике обозначил, что Лазарус использовался транковый.
я поделюсь с вами "секретом".
вместо:
вполне можно использовать такой код:
а так же, если вы знаете, что у вас все значения булевы, то можно сделать более "проще" (сложнее для понимания), все булевы значения "заворачиваются" в Byte, Word или LongWord и используются их биты.
Ну и всегда и везде используются имена, для нужных обозначений, если человек хочет для себя запомнить или для людей проще сделать.
Успехов!
вместо:
Код: Выделить всё
MyBool01 := true;
MyBool02 := true;
MyBool03 := true;
...
MyBool77 := true;вполне можно использовать такой код:
Код: Выделить всё
var
MyBool: array[1..77] of boolean;
procedure ....
begin
for i := 1 to 77 do
MyBool[i] := true;
end;а так же, если вы знаете, что у вас все значения булевы, то можно сделать более "проще" (сложнее для понимания), все булевы значения "заворачиваются" в Byte, Word или LongWord и используются их биты.
Ну и всегда и везде используются имена, для нужных обозначений, если человек хочет для себя запомнить или для людей проще сделать.
Успехов!
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Ну раз уж так, то я попробую разжевать. Мне не жалко до Вас своего времени.
Итак, еще раз:
А что Вы мне приводите не к месту пример использования статического массива, да еще объявленного внутри процедуры
Вы конечно показали, что Вы знаете, что такое массив, по крайней мере, статический. ну Ok. Но советую Вам "хотя бы" изучить что-то более интересное, что еще существуют еще хешированные списки и дженерики на основе их и так далее. Откроете массу чего полезного.
Таким образом, ваш пример снова бесполезен: с какого заполнять одинаковыми значениями статический массив, объявленный в этой же процедуре? Вы не заметили из кода, что это поля типа TBooleanField, которые были созданы в конструкторе форм (DesignTime)? Но я попробую Вам помочь: если непременно хотелось бы использовать цикл (ведь для этого Вам захотелось заюзать массивы?), то возможно стоило бы создавать эти поля TBooleanField не в конструкторе, а динамически в RunTime. Еще можно было бы использовать rtti (советую Вам "хотя бы" и это изучить :0 ) для того, чтобы пробежаться по списку полей типа TBooleanField. Но все это дорогой "эксперт по массивам" либо усложнило/(удлинило бы время написания) код и пришлось бы отказаться от магии коснтруктора форм и его экономии времени. ПОвторюсь, если бы не конструктор сайта, я бы сделал бы даже структуру базы данных более нормализованной, в которой бы не были бы представлены в таком виде поля "q1", "q2", "q3" и т.д, так что даже в цикле не было бы необходимости.
Добавлено спустя 10 минут 21 секунду:
:facepalm, а Вам с базами данных приходилось работать? И для чего и ради чего такие извращения? Когда же у меня реально есть необходимость упаковывание набора битов, то я использую к примеру, класс TBits, а не эти превращения, увеличивающие, как ни странно, совершенно правильно Вами замечено, сложность с заворачиваниями в другие типы.
Итак, еще раз:
И там не массивы уж, а саму структуру можно было выстроить чуть по-другому. К примеру, сделать отдельную таблицу вопрос-турнир.
... ... Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.
... ... если так реализовывать, то не очень хорошо получилось бы сделать лукап поля. Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.
А что Вы мне приводите не к месту пример использования статического массива, да еще объявленного внутри процедуры
Таким образом, ваш пример снова бесполезен: с какого заполнять одинаковыми значениями статический массив, объявленный в этой же процедуре? Вы не заметили из кода, что это поля типа TBooleanField, которые были созданы в конструкторе форм (DesignTime)? Но я попробую Вам помочь: если непременно хотелось бы использовать цикл (ведь для этого Вам захотелось заюзать массивы?), то возможно стоило бы создавать эти поля TBooleanField не в конструкторе, а динамически в RunTime. Еще можно было бы использовать rtti (советую Вам "хотя бы" и это изучить :0 ) для того, чтобы пробежаться по списку полей типа TBooleanField. Но все это дорогой "эксперт по массивам" либо усложнило/(удлинило бы время написания) код и пришлось бы отказаться от магии коснтруктора форм и его экономии времени. ПОвторюсь, если бы не конструктор сайта, я бы сделал бы даже структуру базы данных более нормализованной, в которой бы не были бы представлены в таком виде поля "q1", "q2", "q3" и т.д, так что даже в цикле не было бы необходимости.
Добавлено спустя 10 минут 21 секунду:
а так же, если вы знаете, что у вас все значения булевы, то можно сделать более "проще" (сложнее для понимания), все булевы значения "заворачиваются" в Byte, Word или LongWord и используются их биты.
:facepalm, а Вам с базами данных приходилось работать? И для чего и ради чего такие извращения? Когда же у меня реально есть необходимость упаковывание набора битов, то я использую к примеру, класс TBits, а не эти превращения, увеличивающие, как ни странно, совершенно правильно Вами замечено, сложность с заворачиваниями в другие типы.
- довольно странно что большую часть работы с базами данных и прочей фигнёй ко мне ни кто до сих пор не обратился..."эксперт по массивам"
- видимо в этом весь и вопрос. "Ctrl + C" и "Ctrl +V" всё решили.либо усложнило/(удлинило бы время написания) код
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Обновил программу для ведения тренировок и игр любителей ЧГК. Добавил показ раздаточных материалов на экране, а также трансляцию счета в телеграм канал/группу или чат
Добавлено спустя 30 минут 48 секунд:
https://github.com/Al-Muhandis/chgk ссылку забыл оставить
Добавлено спустя 30 минут 48 секунд:
https://github.com/Al-Muhandis/chgk ссылку забыл оставить
