![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Could not compile KOL 2.10
Dodfr © (2005-07-12 01:30:00)Hi,
I get "not enought parameters" on a lot (may be all) of Rpt() calls within mck mirrors when I try to compile last 2.10 KOL.
In fact Rpt is called only with string parameter, no color
procedure Rpt( const S: String; Color: Integer );
Is that normal or did I miss something ?
ECM (2005-07-18 16:40:00) [1]2RA вопрос не о Rpt... надо взять mckFake... из 2.07
а по поводу Rpt вот ответ Кладова из переписки со мной
epn> Здравствуйте Владимир!
epn> По-моему после доработки Rpt(...,Color) оказались пропущены исправления для
epn> файлов mckXxxEditor.inc....
epn> это проявляется при переcборке главного MCK-пакета...
epn> D7
epn> ECM mailto: ecm@ydk.com.ua
да, я уже заметил. Надо самому поправить или в процедуре Rpt сделать
второй параметр по умолчанию = WHITE как раньше, или во всех этих
.inc-файлах добавить , WHITE
RA (2005-07-18 15:21:00) [2]2Barloggg Если дернуть из 2.07, то это ни к чему не приведет.
Лучше поправить объявление функции Rpt так:
rpt(S:String; color:TColor = WHITE);
{это если у вас Delphi>=4}
Сама функция в модуле mirror.pas.
Barloggg (2005-07-18 13:55:00) [3]well... a just set comment to every line with this error... no more RPT...
it's wrong?
---------in RU
Я закоментировал все строчки с такой ошибкой и всего делов.
Хотя лучше добавлю коладд в усес. или дернуть из 2.07 этот инк файл?
Dodfr (2005-07-14 13:54:00) [4]Sniper17 : if you have same problem than me, just // the rpt() lines and also // the two actionlist in mckFakeCtrls.inc
Sniper17 (2005-07-14 11:02:00) [5]Dodfr:
How can I compile KOL2.10 then? %-)
fellix (2005-07-14 01:48:00) [6]>Dodfr
Try to do this manually. :-)
Set Project -> Options -> Linker -> Detailed and compile the project both with KOL 2.09 and 2.10. Of course, ensure that other options are identical. Then compare obtained *.map files manually or using any text file comparer, e.g., standard fc.exe or DiffLines ( http://bonanzas.rinet.ru/DiffLines.zip).
Dodfr (2005-07-14 00:45:00) [7]fellix, which tool to analyze detailed map ?
Dodfr (2005-07-13 21:50:00) [8]sorry sniper17 I can't read russian
fellix (2005-07-13 20:58:00) [9]Forget it and check the map. :-)
You can find size of every module used.
Sniper17 (2005-07-13 20:57:00) [10]так как в итоге скомпилить KOL 2.10?
Dodfr (2005-07-13 20:41:00) [11]I checked the RCDATA PACKAGEINFO resource from both EXE but they import same units.
fellix (2005-07-13 20:22:00) [12]>Dodfr
Nothing mentioned noticed on my projects. Try to analyze detailed map file.
Dodfr (2005-07-13 20:17:00) [13]talking about bytes, nobody noticed increase of it's EXE size from 2.09 to 2.10 ? I tested by recompiling in 2.09 and back again to 2.10 and 2.10 produce 30KB bigger EXE.
fellix (2005-07-13 19:40:00) [14]> ECM © (13.07.05 15:07) [16]
KOL ideology is "if something isn't used, the code isn't generated". Even if declared. (Actually, including KOLAdd into 'uses' clause adds around 70 bytes to the code.)
If you require ActionList, you need to 'unpatch' MCKFakeClasses.inc back. So adding 'KOLAdd' into every unit containing KOLForm is more universal decision.
ECM (2005-07-13 15:07:00) [15]2fellix (13.07.05 14:13) [15]
The best method is to do it automatically
Yes... But notin all MCK-projects KOLadd.pas it is really necessary. It should be added automatically only for projects with KOLAction(List).It is already realized in a mirror for KOLActionList. With use of function AdditionalUnits
see http://www.delphimaster.ru/cgi-bin/forum.pl?id=1110119068&n=10post [49]
fellix (2005-07-13 14:13:00) [16]>ECM
Yes, agree, that's ugly. Truly speaking, I also always patch MCKFakeClasses.inc. That's just another way.
The best method is to do it automatically. As for me, Vladimir Kladov, extracting KOLAdd.pas from KOL.pas, had to change
'uses Windows, Messages, ShellAPI, KOL'
to
'uses Windows, Messages, ShellAPI, KOL, KOLAdd'
in mirror.pas/TKOLForm.GeneratePAS function.
ECM (2005-07-13 13:54:00) [17]P.S.
( 8 chars) * N (units) * M (projects)
ECM (2005-07-13 13:53:00) [18]2fellix (13.07.05 13:39) [12]:
", KOLadd" ( 8 chars) * N (units)
vs
"//" * 2 = 4 chars in MCKFakeClasses.inc
??? K.I.S.S
fellix (2005-07-13 13:39:00) [19]> Dodfr
> ECM
Another way (w/o patching MCKfakeClasses.inc) is to include KOLaddin usesclause in everyproject's unit.
Example:
{$IFDEF KOL_MCK}
uses Windows, Messages, ShellAPI, KOL {$IFNDEF KOL_MCK}, mirror, Classes {$ENDIF}, KOLadd;
{$ELSE}
{$I uses.inc}
;
{$ENDIF}
ECM (2005-07-13 13:02:00) [20]Dodfr (13.07.05 12:43) [10]
...
Strange that "complete" 2.10 package have bug and sequential update do not...
Vladimir lost new version MCKfakeClasses.inc in versions > 2.07