![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автоматически ломается 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 проект. Лишнее в нем можешь удалить(в смысле бэкапфайлы, дцу).
Копируешь в другой каталог и открываешь из него(можешь перед этим еще и дельфу перезапустить).
Это конечно уже шаманство и пляски с бубном :), но как-то случайно такие вещи лечились именно таким образом. Пересмотр модулей ничего не давал. Может, конечно, еще что-то влияет...
Как альтернатива, пересоздать проект и добавить весь код и другие модули снова :)