пзц побаловался :)

Флейм. Только просьба - не материться! :)

Модератор: Дед Пахом

gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

пзц побаловался :)

Сообщение gopstop2007 »

porutchik писал(а): 29 Январь 2025, 11:20 закинул ему свой шаблон. Получил интересные идеи, немного исправлений и добавленные коментарии
Делитесь, интересно )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

gopstop2007 писал(а): 29 Январь 2025, 14:18 Делитесь, интересно )
то шаблон у меня для внутреннего пользования. Из тех что делился, примерно так:
Spoiler
deep06.png
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

тут товарищ его доводит:
вопрос: циклы в дэлфи с точки зрения проффесора философии
ответ deepseek:
- for — метафизика необходимости (как у Спинозы: всё предопределено атрибутами Бога).
- while — философия процесса (как у Уайтхеда: реальность как серия событий, связанных условиями).
- repeat — эпистемология проб и ошибок (как у Дьюи: знание возникает через действие и рефлексию).
говорит самое прикльное как раз рассуждения
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3284
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 48 раз
Контактная информация:

пзц побаловался :)

Сообщение Дед Пахом »

Самое прикольное вот это: https://habr.com/ru/news/877806/
С уважением, ДП
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

Дед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
сам то веришь в такую простую чушь?
вот только хабру я не очень верю, особенно про статьи что диип - это полностью украденный чатгпт. И украден вместе с обученной базой.
пруфы в статье тоже интересные. Про супер-пупер-мега хакеров. Смотрим у них - таки не нашел следов наличия в и-нете http://dev.deepseek.com да еще с портами HA и doker
как-то тут попадалась, что эта помойка на грантах пиндосов сидит. Наверно стоит поверить
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

Дед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
инет говорит что http://dev.deepseek.com свободен. (Китайцы потерли, а заодно со всеми кэшами)
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

попросил проверить на ошибки шаблон SingleFileTree (если память не изменяет Вадима), вот результат:
Основные моменты и возможные ошибки:
Синтаксические ошибки:

В целом, синтаксис шаблона выглядит корректно, но стоит обратить внимание на использование переменных и их инициализацию. Например, переменные %TreeTitle, %TreeTitleIcon, %DisplayTree, %FilterTree и другие должны быть корректно определены и использованы в соответствующих местах.

Логические ошибки:

В некоторых местах используются условия, которые могут привести к неожиданному поведению. Например, в секции %InstancePrefix:ContractLevel проверяется, есть ли подчиненные уровни, и если их нет, выполнение прерывается. Однако, если подчиненные уровни есть, но они не загружены, это может привести к ошибке.

Комментарии:

В шаблоне уже есть некоторые комментарии, но их можно расширить для лучшего понимания. Например, в секции %InstancePrefix:ExpandLevel можно добавить комментарий, поясняющий, что происходит при разворачивании уровня дерева.
Пример добавления комментариев:

Код: Выделить всё

#AT(%ProcedureRoutines)
#FIX(%File,%Primary)
#FIX(%Field,%MainField)
#FIX(%Control,%TreeControl)
!------------------------------------------------------
%InstancePrefix:InitTree ROUTINE
  FREE(%TreeQueue)  ! Очистка очереди дерева
  #IF(%TreeTitle)
  #INSERT(%StandardValueAssignment(Clarion),%TreeQueue & '.' & %InstancePrefix & ':Display',%TreeTitle)
  %TreeQueue.%InstancePrefix:%MainFieldID = 0  ! Инициализация ID главного поля
  %TreeQueue.%InstancePrefix:%ChildFieldID = 0  ! Инициализация ID дочернего поля
  %TreeQueue.%InstancePrefix:Level = 0  ! Инициализация уровня
  %TreeQueue.%InstancePrefix:Position = ''  ! Инициализация позиции
    #IF(%ControlHasIcon)
      #FIX(%IconList,%TreeTitleIcon)
      #IF(%IconList)
      #CASE(%IconListType)
        #OF('Variable')
  %TreeQueue.%InstancePrefix:Icon = %IconList  ! Установка иконки из переменной
        #ELSE
          #SET(%ValueConstruct,INSTANCE(%IconList))
  %TreeQueue.%InstancePrefix:Icon = %ValueConstruct  ! Установка иконки из файла
        #ENDCASE
      #ELSE
  %TreeQueue.%InstancePrefix:Icon = 0  ! Иконка не установлена
      #ENDIF
    #ENDIF
    #IF(%ControlHasColor)
  %TreeQueue.%InstancePrefix:NormalFG = -1  ! Цвет текста по умолчанию
  %TreeQueue.%InstancePrefix:NormalBG = -1  ! Цвет фона по умолчанию
  %TreeQueue.%InstancePrefix:SelectedFG = -1  ! Цвет выделенного текста
  %TreeQueue.%InstancePrefix:SelectedBG = -1  ! Цвет выделенного фона
    #ENDIF
  ADD(%TreeQueue)  ! Добавление записи в очередь
  #ENDIF
!------------------------------------------------------
Рекомендации:
Проверка инициализации переменных:

Убедитесь, что все переменные, такие как %TreeTitle, %TreeTitleIcon, %DisplayTree, %FilterTree, инициализированы перед использованием. Это поможет избежать ошибок выполнения.

Тестирование:

Протестируйте шаблон на различных данных, чтобы убедиться, что все функции работают корректно. Особое внимание уделите разворачиванию и сворачиванию уровней дерева, а также перемещению веток.

Документация:

Добавьте больше комментариев в ключевые секции кода, чтобы облегчить понимание и поддержку шаблона в будущем.
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

Дед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
самое интересное в статье комметарии
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

пзц побаловался :)

Сообщение gopstop2007 »

Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
как ни странно он ответил по-полной раскладке. (Много) соберу удобочитаемый вариант ответа, закину сюда. Проверять буду потом
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
вот результат
Вопрос: а как можно доработать данный шаблон, чтобы его можно было использовать несколько SingleFileTree в одном модуле?

Ответ: Чтобы использовать несколько экземпляров SingleFileTree в одном модуле, необходимо доработать шаблон таким образом, чтобы каждый экземпляр был независимым и не конфликтовал с другими. Для этого нужно: Уникальные имена переменных и процедур: Каждый экземпляр SingleFileTree должен иметь уникальные имена переменных, очередей и процедур. Это можно сделать, добавив уникальный префикс для каждого экземпляра. Динамическое создание переменных: Используйте динамическое создание переменных и процедур, чтобы избежать конфликтов имен. Изоляция данных: Убедитесь, что данные каждого экземпляра SingleFileTree изолированы и не пересекаются с данными других экземпляров. Пример доработки шаблона: 1. Добавление уникального префикса: В шаблоне уже используется переменная %InstancePrefix, которая добавляет уникальный префикс к именам переменных и процедур. Убедитесь, что этот префикс уникален для каждого экземпляра. Например, если у вас два экземпляра SingleFileTree, вы можете задать разные префиксы:

Код: Выделить всё

#SET(%InstancePrefix, 'TSF1')  ! Префикс для первого экземпляра
#SET(%InstancePrefix, 'TSF2')  ! Префикс для второго экземпляра 
2. Изоляция данных: Убедитесь, что все переменные и очереди, используемые в шаблоне, имеют уникальные имена. Например, если у вас есть очередь %TreeQueue, она должна быть уникальной для каждого экземпляра:

Код: Выделить всё

#SET(%TreeQueue, %InstancePrefix & 'TreeQueue')
Это гарантирует, что каждый экземпляр будет использовать свою очередь. 3. Динамическое создание процедур: Процедуры, такие как %InstancePrefix:InitTree, %InstancePrefix:ExpandLevel, и другие, должны быть уникальными для каждого экземпляра. Убедитесь, что они создаются с уникальными именами:

Код: Выделить всё

#SET(%InitTreeProcedure, %InstancePrefix & ':InitTree')
#SET(%ExpandLevelProcedure, %InstancePrefix & ':ExpandLevel')
Затем используйте эти переменные для вызова процедур:

Код: Выделить всё

DO %InitTreeProcedure
DO %ExpandLevelProcedure
4. Использование уникальных идентификаторов для элементов управления: Если вы используете элементы управления (например, кнопки), убедитесь, что их имена также уникальны. Например:

Код: Выделить всё

#SET(%ExpandButton, %InstancePrefix & 'ExpandButton')
#SET(%ContractButton, %InstancePrefix & 'ContractButton')
Затем используйте эти переменные для создания и управления элементами управления:

Код: Выделить всё

BUTTON('&Развернуть все'), AT(,,65,14), USE(%ExpandButton)
BUTTON('&Свернуть все'), AT(70,0,60,14), USE(%ContractButton)
5. Пример использования нескольких экземпляров: В вашем модуле вы можете создать несколько экземпляров SingleFileTree, задавая уникальные префиксы для каждого:

Код: Выделить всё

! Первый экземпляр SingleFileTree
#SET(%InstancePrefix, 'TSF1')
#INCLUDE('TREESNGL.TPl')

! Второй экземпляр SingleFileTree
#SET(%InstancePrefix, 'TSF2')
#INCLUDE('TREESNGL.TPl')
Это создаст два независимых экземпляра SingleFileTree с уникальными именами переменных и процедур. 6. Пример доработки шаблона: Вот пример того, как можно доработать шаблон для поддержки нескольких экземпляров:

Код: Выделить всё

#CONTROL(SingleFileTree,'Просмотр одного файла в виде дерева'),PRIMARY('Дерево файла',OPTKEY),DESCRIPTION('Просмотр файла ' & %Primary),MULTI,WINDOW
  CONTROLS
    LIST,AT(,,150,100),USE(?FileTree),FORMAT('800Lt@s200@'),FROM(Queue:SingleFileTree)
  END
#BUTTON('&Свойства дерева'),AT(10,,180)
  #SHEET
    #TAB('&Главная')
      #PREPARE
        #FIND(%ControlInstance,%ActiveTemplateInstance,%Control)
      #ENDPREPARE
      #BOXED('Заголовок дерева'),AT(,40)
        #PROMPT('Текст заголовка дерева:',@S255),%TreeTitle
        #ENABLE(%ControlHasIcon AND %TreeTitle)
          #PROMPT('Пиктограмма заголовка:',OPENDIALOG('Выбрать иконку','Icons-файлы (*.ICO)|*.ICO|Windows Bitmaps-файлы (*.BMP)|*.BMP|Все файлы (*.*)|*.*')),%TreeTitleIcon
        #ENDENABLE
      #ENDBOXED
      #PROMPT('&Строка для вывода:',FIELD),%DisplayTree,REQ
      #PROMPT('&Фильтр записей:',@S255),%FilterTree
      #BOXED('Развертка/свертка уровней')
        #BOXED('Коды клавиш')
          #PROMPT('&Развернуть ветвь:',KEYCODE),%ExpandKeyCode,DEFAULT('PlusKey')
          #PROMPT('&Свернуть ветвь:',KEYCODE),%ContractKeyCode,DEFAULT('MinusKey')
        #ENDBOXED
        #PROMPT('Курсор "Часы" на время раз/свертки уровня',CHECK),%WaitCursorExpandContractLevel,AT(10)
      #ENDBOXED
    #ENDTAB
  #ENDSHEET
#ENDBUTTON
В этом примере каждый экземпляр SingleFileTree будет иметь уникальные имена переменных и процедур, что позволит использовать несколько экземпляров в одном модуле без конфликтов. Итог: Для поддержки нескольких экземпляров SingleFileTree в одном модуле необходимо: Использовать уникальные префиксы для переменных, очередей и процедур. Изолировать данные каждого экземпляра. Убедиться, что имена элементов управления также уникальны. Эти изменения позволят вам использовать несколько независимых экземпляров SingleFileTree в одном модуле без конфликтов.
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

классы на ошибки тоже проверяет - только в путь. Подбивает кинуть родные от TS. Имею привычку сравнивать изменения у них в версиях, так видно в их шаблонах хватает исправлений ошибок
kreator
✯ Ветеран ✯
Сообщения: 5157
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

пзц побаловался :)

Сообщение kreator »

gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
Вы просили, я выкладывал - https://forum.clarionlife.net/viewtopic ... 699#p51699.
А вообще в этом шаблоне куча ошибок. Кому интересно можете посмотреть мои помеченные правки. А ещё куча непомеченных, раньше этого не делал.
ИИ только языком чесать может. Пока никакой пользы.
We are hard at work… for you. :)
Аватара пользователя
porutchik
Активист
Сообщения: 194
Зарегистрирован: 01 Февраль 2009, 5:35
Поблагодарили: 7 раз

пзц побаловался :)

Сообщение porutchik »

kreator писал(а): 30 Январь 2025, 22:48 ИИ только языком чесать может. Пока никакой пользы.
а если не чесать языком, то можно указать конкретно где ии не прав? и очень желательно для шаблона легаси
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

пзц побаловался :)

Сообщение gopstop2007 »

kreator писал(а): 30 Январь 2025, 22:48
gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
Вы просили, я выкладывал - https://forum.clarionlife.net/viewtopic ... 699#p51699.
А вообще в этом шаблоне куча ошибок. Кому интересно можете посмотреть мои помеченные правки. А ещё куча непомеченных, раньше этого не делал.
ИИ только языком чесать может. Пока никакой пользы.
Спасибо, давно пользуюсь ) Просто было интересно как ИИ отреагирует :D
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить