Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Автоматически ломается KOL - проект [Delphi]


earl Grey ©   (2004-04-26 09:30:00) 

Дословно.
Работаю над проектом(уже неделю).
В какой-то момент KolTimer.Enable в Object Inspector'e ставлю False.
Перехожу в редактор. Все кирдык. В модуле формы дефайны дупятся в странном порядке. Компилятор соответсвенно таких приколов непонимает.
Чуть помучился. Плюнул. Гружусь из вчерашнего бэкапа. И просто визуально наблюдаю как в текст вставляются эти дупы! Зажусь за соседнюю машину - все впорядке. Ж%0
Собственно вопрос - как лечить или избегать такого. Понимаю что таймер тут не причем.

На всякий случай кусок пострадавшего модуля привожу:
-----------------Cut---------------------
{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
{ KOL MCK }// Do not remove this line!
{$DEFINE KOL_MCK}
unit MainFrm;

interface

{$IFDEF KOL_MCK}
{$IFDEF KOL_MCK}
uses Windows, Messages, ShellAPI, KOL {$IFNDEF KOL_MCK}, mirror, Classes, Controls, mckControls, mckObjs, Graphics {$ENDIF};
{$ELSE}
{$I uses.inc} Windows, Messages, ShellAPI, KOL{$IFNDEF KOL_MCK}, mirror, Classes,
Controls, mckControls, mckObjs, Graphics,
 mckCtrls{$ENDIF};
{$ENDIF}
{$ELSE}
{$I uses.inc}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
{$ENDIF}

type
{$IFDEF KOL_MCK}
{$I MCKfakeClasses.inc}
 {$IFDEF KOLCLASSES} TMainForm = class; PMainForm = TMainForm; {$ELSE OBJECTS} PMainForm = ^TMainForm; {$ENDIF CLASSES/OBJECTS}
 {$IFDEF KOLCLASSES}{$I TMainForm.inc}{$ELSE} TMainForm = object(TObj) {$ENDIF}
{$ELSE OBJECTS}PMainForm = ^TMainForm;
{$ENDIF CLASSES/OBJECTS}
 TMainForm = class(TForm)
{$ENDIF}
   Form: PControl;
{$ELSE not_KOL_MCK}
 {$IFDEF KOL_MCK}
 {$ENDIF KOL_MCK}
 {$I MCKfakeClasses.inc}
 {$IFDEF KOLCLASSES} TMainForm = class; PMainForm = TMainForm; {$ELSE OBJECTS} PMainForm = ^TMainForm; {$ENDIF CLASSES/OBJECTS}
 {$IFDEF KOLCLASSES}{$I TMainForm.inc}{$ELSE} TMainForm = object(TObj) {$ENDIF}
   Form: PControl;
 {$ELSE not_KOL_MCK}
 TMainForm = class(TForm)
{$ENDIF KOL_MCK}
   KOLProject1: TKOLProject;
   KOLForm1: TKOLForm;
   KOLApplet: TKOLApplet;
   RefreshTimer: TKOLTimer;
   MainMenu1: TKOLMainMenu;
   MainPopup: TKOLPopupMenu;
   ProcLV: TKOLListView;
   procedure KOLForm1N2Menu(Sender: PMenu; Item: Integer);
   procedure RefreshTimerTimer(Sender: PObj);
   procedure KOLForm1FormCreate(Sender: PObj);
   procedure KOLForm1Destroy(Sender: PObj);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 MainForm{$IFDEF KOL_MCK}: PMainForm{$ELSE}: TMainForm{$ENDIF};

{$IFDEF KOL_MCK}
procedure NewMainForm( var Result: PMainForm; AParent: PControl );
{$ENDIF}

{$IFDEF KOL_MCK}
procedure NewMainForm( var Result: PMainForm; AParent: PControl );
{$ENDIF}
-----------------Cut---------------------


Gandalf   (2004-04-29 23:10:00) [1]

1) Форматор исходников.
2) А google не гугл? :)


nester   (2004-04-29 03:07:00) [2]

А что такое DelForEx ?


Gandalf   (2004-04-28 12:59:00) [3]

Потому и шаман ;) Незачто...


earl Grey   (2004-04-27 05:13:00) [4]

Старый шаман знает как правильно в бубен стучать. Ж%)
Даже DelForEx на моей машине увидел.
Спасибо.


Gandalf   (2004-04-26 21:21:00) [5]

СТОП! РАСКАЗЫВАЮ историю старого шамана (Gandalf) - хранителя историй братсва KOL-ца, и белого пламени Анора, итак:

Собака тут:

{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
{ KOL MCK }// Do not remove this line!
{$DEFINE KOL_MCK}

Смотрит на это строки - что там написано?

Do not remove this line!

понимаете DO NOT!

но не только REMOVE но и вообще CHANGE в люьом смыле этого слова.

теперь смотрим сюда.

{ KOL MCK } //Do not remove this line!
{$DEFINE KOL_MCK}
{ KOL MCK }// Do not remove this line!
{$DEFINE KOL_MCK}

Улавливаете разницу? разница в пробеле... он ДОЛЖЕНбыть.

Удаляй всех клонов их файла - и возвращай правильную первую строку... На этом шаманский ретуал закончен.

ЗЫ: Вот почему я не использую DelForEx в main KOL проекта.

ЗЗЫ: Покупайте наши шаманские бубны :) (Gandalf (c))


SPeller   (2004-04-26 17:57:00) [6]

Странно. Описанного глюка лично я ниразу не наблюдал.


nester   (2004-04-26 17:41:00) [7]

Ну можно и не убивать.
Но для надежности!!!!!!!!!!!


Viman   (2004-04-26 16:47:00) [8]

>nester
Зачем ресурсы-то убивать ? :)


nester   (2004-04-26 14:17:00) [9]

Попробуй так.
Закрой делфи.
В проекте убей все кроме
*.pas
*.dpr
*.dfm
Убивай даже inc'ки которые нагенерились(ну если в них ниче не добавлял) и уж тем более убивай всякие dsk'ашки и dof'ы
В общем чтобы осталось только то что непосредственно создано тобой.
Затем запускай дэлфу, она там чет матюкнется что ей чегото не хвататет и т.п. Нажми на колпрожекте перегенирить - вуаля заработает.
Ну если есть ресурсы или еще чего - придется заново втыкать.


earl Grey   (2004-04-26 10:45:00) [10]

У-у-у! Ладно, попробуем поискать. Больно уж не хочется пересобирать все заново.


Viman   (2004-04-26 10:30:00) [11]

Можешь так ещё пошаманить:
С глючной формы удалить(можно сначала свойство Locked попробовать попереключать) TKOLForm, с только что открытого из бэкапа проекта(может и с новым пройдет). Затем снова положить на форму TKOLForm, в инспекторе снова выбрать уже существующие процедуры на события. Посмотреть результат. Не помогает - поизменяй свойство build у TKOLProject. Оно конечно не измениться, но может он перестроит модули путем. Если ничего не помогает, пересобирай проект. :)
У меня как-то скобки([) из индексных свойств KOL упрямо убирал и ещё что-то. Убился я, но так и не понял почему...:(
Как глюк изчез, я и сам не понял, возможно атмосферное давление упало/поднялось, полнолуние настало... :) Или вышеописанное помогло. Не знаю. Пробуй. Может кто-то знает, скажите.


Viman   (2004-04-26 10:12:00) [12]

Бывает там такое :)
Замечал вот что - закрываешь в delphi проект. Лишнее в нем можешь удалить(в смысле бэкапфайлы, дцу).
Копируешь в другой каталог и открываешь из него(можешь перед этим еще и дельфу перезапустить).
Это конечно уже шаманство и пляски с бубном :), но как-то случайно такие вещи лечились именно таким образом. Пересмотр модулей ничего не давал. Может, конечно, еще что-то влияет...
Как альтернатива, пересоздать проект и добавить весь код и другие модули снова :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо