Посмотрели мы тут на наши старые исходные тексты ;) Много любопытных
моментов нашли ;)
- ------------------------------------------
Краткая выдержка комментариев из реализованного проекта.
ProMode: boolean; // режим Бога
{ TODO -cПроверить потом: Может быть блудилово }
{ TODO: Тут пока оставлю... может быть утечка памяти... }
// Сечем наши маски
else {: Нэизвэстный праграммный исключений 8-}
// А кто там родитель этого урода? Сказать ему, чтобы отпиздил
своегопридурка
// Батон, он же кнопка, он же кнопарь(кнопак)
// Подпихнули нам меню, стало быть. Косое, поди...
// Эта функция проверяет, является ли указатель, переданный ей как
параметр,
// указателем на СУЩЕСТВУЮЩИЙ экземпляр данного класса. Данной функции
// можно доверять процентов на 90.
// Написано по мотивам популярной программисткой народной сказки
// "Повелитель Батонов".
//------- Следующие функции ни хрена не делают. Не используйте их ----
procedure dropPlugActions(const plugName: WideString); safecall; //Не
использовать!!!!
// Если биде, то возбуждается ;) исключение
procedure TAMenuManager. dropPlugActions(const plugName: WideString);
begin
// Не использовать!!!
end;
// Находим корневые меню плуга - вырываем меню с корнем
// Ищет, понимаешь, папку. Найденная папка
// становиться текущей.
// А передал ли ты ме коннектор, мой пернатый друг?
// Функция CoGetInterfaceAndReleaseStream восстанавливает интерфейс
// из информации, переданной в через интерфейс IStream, а затем
освобождает
// интерфейс IStream. Теперь понятно, почему мне пришлось хранить
// указатель на IStream как Pointer - поскольку вызов этой функции
// освобождает указатель на интерфейс IStream, его больше нельзя
использовать
// Однако тупая Дельфина, если бы я хранил указатель как IStream
попыталась бы
// освободить его еще раз. А это - Access Violation, однозначно
// Волшебник правил. Написан Peter`ом
// Проверимся на вшивость
// Сбацать новое правило. Но сначала проверимся. (Killy параноик, в
тяжелой форме, это факт)
// Думаешь, я буду разбирать строку? Ошибаешься: )
// Поищем, в натуре, это правило. Оно может быть.
if assigned(FSelectionProc) then // Законов Деметра мы не нарушаем...
// Пришпандорить справочную секцию с основному блоку
EMenuManError = class(ESafeObjErr); // Возбуждается: ) когда что-то идет
не гладко ;)
// Коды реакций (спроси Антона)
// Добавляет запись в этот весь блудняк.
// Возвращается хендл.
// Обновляет кой-какие поля в текущей записи
// Длинная и скучная (правда, надежная: ) процедура разборки строки
определения
// пункта меню. Достало меня ее писать.
//
// Разбирает и проверяет строку определения меню.
addnum: integer = 0; //Added by Gates - число вхождений в пидерцию
// Эта тупая функция просто заполняет поля в errInfo
// Эта дебильная процедура компенсирует недоработку в VCL.
// Она просто присоединяет subItem к rootItem и рефрешит,
// чтобы правильно прорисовался caption, shortCut и картинка
// Ну что, ламерок, попался? Получи в башню!
Сильно могучий модуль поиска документов в базе.
Написан больным и измученным Killy в сент. 2000 г. по заказу GATES Corp.
// Окучить все процы соединением.
// Поиск ноды с заданным именем. По мотивам одноименной сказки GATES`а
If FildSet[i]. Name = FName Then // Нашли и всосали
//Чтоб не колбасило
//просто кладем на ошибку при раскрашивании
// Проверка на корректность и т. д. К системе ALCMASTER
// Написана мной, любимым, в поте лица. (Собственнолапно: )
//Глюкалово правилось Вовой
// В принципе, надо бы как то удалять и категорию, да лень писАть....
// Срабатывает опосля создания COM - объекта
// Запомнить внешние пидерции
// Впердолить шину снабжения
// showMessage(`Я убит. Провайдер шины`);
// Хитрая еврейская загрузка
// Сделано крайне тупо.
// Пусть орлы тоже попаряться ;)
PostThreadMessage(GetCurrentThreadId(), WM_QUIT, 0, 0); // Серега сказал
// Поставить в исходящую очередь ПРОИЗВОЛЬНУЮ команду. На той стороне
// хук решит, что с этой бодягой делать.
// Нахлобучить провайдера мульками
// Создаем манагера шины и отдаем его на растерзание
{
Все очевидно. Комментариев не требуется
}
// Совсем плохая ж(
// Грузим всякую вспомогательную лабуду
// Впердолить интерфейс компоненту соединения
// Расшариваем эвенты для каскадирования батвы
Вот так: -)