пзц побаловался :)
Добавлено: 29 Январь 2025, 14:18
Делитесь, интересно )porutchik писал(а): 29 Январь 2025, 11:20 закинул ему свой шаблон. Получил интересные идеи, немного исправлений и добавленные коментарии
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Делитесь, интересно )porutchik писал(а): 29 Январь 2025, 11:20 закинул ему свой шаблон. Получил интересные идеи, немного исправлений и добавленные коментарии
то шаблон у меня для внутреннего пользования. Из тех что делился, примерно так:
говорит самое прикльное как раз рассуждениявопрос: циклы в дэлфи с точки зрения проффесора философии
ответ deepseek:
- for — метафизика необходимости (как у Спинозы: всё предопределено атрибутами Бога).
- while — философия процесса (как у Уайтхеда: реальность как серия событий, связанных условиями).
- repeat — эпистемология проб и ошибок (как у Дьюи: знание возникает через действие и рефлексию).
сам то веришь в такую простую чушь?Дед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
инет говорит что http://dev.deepseek.com свободен. (Китайцы потерли, а заодно со всеми кэшами)Дед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
Основные моменты и возможные ошибки:
Синтаксические ошибки:
В целом, синтаксис шаблона выглядит корректно, но стоит обратить внимание на использование переменных и их инициализацию. Например, переменные %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, инициализированы перед использованием. Это поможет избежать ошибок выполнения.
Тестирование:
Протестируйте шаблон на различных данных, чтобы убедиться, что все функции работают корректно. Особое внимание уделите разворачиванию и сворачиванию уровней дерева, а также перемещению веток.
Документация:
Добавьте больше комментариев в ключевые секции кода, чтобы облегчить понимание и поддержку шаблона в будущем.
самое интересное в статье комметарииДед Пахом писал(а): 30 Январь 2025, 11:53 Самое прикольное вот это: https://habr.com/ru/news/877806/
как ни странно он ответил по-полной раскладке. (Много) соберу удобочитаемый вариант ответа, закину сюда. Проверять буду потомgopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
вот результатgopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
Код: Выделить всё
#SET(%InstancePrefix, 'TSF1') ! Префикс для первого экземпляра
#SET(%InstancePrefix, 'TSF2') ! Префикс для второго экземпляра
Код: Выделить всё
#SET(%TreeQueue, %InstancePrefix & 'TreeQueue')
Код: Выделить всё
#SET(%InitTreeProcedure, %InstancePrefix & ':InitTree')
#SET(%ExpandLevelProcedure, %InstancePrefix & ':ExpandLevel')
Код: Выделить всё
DO %InitTreeProcedure
DO %ExpandLevelProcedure
Код: Выделить всё
#SET(%ExpandButton, %InstancePrefix & 'ExpandButton')
#SET(%ContractButton, %InstancePrefix & 'ContractButton')
Код: Выделить всё
BUTTON('&Развернуть все'), AT(,,65,14), USE(%ExpandButton)
BUTTON('&Свернуть все'), AT(70,0,60,14), USE(%ContractButton)
Код: Выделить всё
! Первый экземпляр SingleFileTree
#SET(%InstancePrefix, 'TSF1')
#INCLUDE('TREESNGL.TPl')
! Второй экземпляр SingleFileTree
#SET(%InstancePrefix, 'TSF2')
#INCLUDE('TREESNGL.TPl')
Код: Выделить всё
#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
Вы просили, я выкладывал - https://forum.clarionlife.net/viewtopic ... 699#p51699.gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
а если не чесать языком, то можно указать конкретно где ии не прав? и очень желательно для шаблона легаси
Спасибо, давно пользуюсь ) Просто было интересно как ИИ отреагируетkreator писал(а): 30 Январь 2025, 22:48Вы просили, я выкладывал - https://forum.clarionlife.net/viewtopic ... 699#p51699.gopstop2007 писал(а): 30 Январь 2025, 16:44 Может ИИ подскажет для шаблона SingleFileTree, как сделать, чтобы можно было использовать несколько SingleFileTree в одном module )
А вообще в этом шаблоне куча ошибок. Кому интересно можете посмотреть мои помеченные правки. А ещё куча непомеченных, раньше этого не делал.
ИИ только языком чесать может. Пока никакой пользы.