Лапша лапшой

Дали мне на днях год назад программу одну доработать — редактор планов, причем программу дали а исходники ее — черт знает какой давности (половины функционала нет, может это и к лучшему).
Дело в том, что эта программа делалась методом Ctrl+C Ctrl+V и на представление данных больно смотреть его просто нет как такового, вместо этого используется обработка компонентов на форме, активно задествовав свойство «Tag».

Пример первый (некоторые вещи опускаю, дабы не загромождать) — введение класса объекта, который можно таскать по полю, вроде не страшно:

TMyImage = class (TImage)
  ...
  procedure OnMouseDown(...
  procedure OnMouseUp(...
  procedure OnMouseMove(...
end;

Далее следуют конкретные объекты (наследование по прежнему от сами видите чего):

TSklad = class (TImage)
  procedure OnMouseDown(...
  procedure OnMouseUp(...
  procedure OnMouseMove(...
  procedure DrawSklad; //Обратите внимание
end; 

TProhod = class (TImage)
  procedure OnMouseDown(...
  procedure OnMouseUp(...
  procedure OnMouseMove(...
  procedure DrawProhod;
end; 

TKran = class (TImage)
  procedure OnMouseDown(...
  procedure OnMouseUp(...
  procedure OnMouseMove(...
  procedure DrawKran;
end;

И это еще не все! В каждом экземпляре создавалось свое контекстное меню для работы с этим объектом и в зависимости от режима отображения (в редакторе нужен для непонятно чего) это меню менялось на лету.

Наследование от TImage конечно хорошо, но одно из требуемых нововведений – возможность распечатать как чертеж (со всеми вытекающими последствиями)

О базе данных можно сказать еще пару теплых слов. У реальных объектов есть куча параметров, так вот автор сей программы решил себе сократить труд – заменил всю кипу параметров на два: длинна и ширина. Да еще и картинки, изображающие данные объекты, в виде растровых файлов, должны лежать в каталоге с программой. А в коде доступа к базе видны долгие страдания (по полученным данным — 4 месяца), т.к. в юнитах висит модуль «dbf», компонент TDbf предназначен для избавления приложения от пут BDE, но автор, видимо не разобрался с этим добром и решил все сварганить с помощью BDE (А модуль так и не убрал).

Чтото мне подсказывает, что мне прийдется переписывать программу с нуля.

26 Март 2009

Комментарии

На PHP-GTK :)

#lol2Fast4U · 27 Март 2009, 18:35 · Reply

PHP-GTK это сурово, небось.

#Werdn · 27 Март 2009, 21:17 · Reply

Это просто :)

#lol2Fast4U · 2 Апрель 2009, 15:46 · Reply
Комментирование этой статьи закрыто.