Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

замена стандартных модулей на Kol   Найти похожие ветки 

 
Yura   (2004-01-05 16:49) [0]

В приложении (консольном)используюся модули: Windows, SysUtils, Classes.
Установил все из архивов kol и mck. В отдельную папку распакован sysdcuD6.zip и, как там написано, прописал путь на директорию, в которой положил этот набор файлов, в списке путей проекта ( Project/Options/Directories/Conditionals/Search path... ).
И ничего не получилось. При запуске пишет, что не может найти Classes.pas. Если указать имеющийся "стандартый", то затем просит указать путь и к SysUtils.pas. Ну и все остается как было (размер еxe).
Подскажите, что нужно было сделать? Хотелось бы все-таки доделать...


 
SPeller ©   (2004-01-05 18:09) [1]

Замена системных модулей предназначена для уменьшения размера KOL-проектов, а не VCM-проектов.


 
Yura   (2004-01-06 09:30) [2]

Так вот и надо бы сделать Kol-проект из этого приложения. То есть - переделать существующий. Простой заменой модулей это не сделаешь. А как же использовать именно такие модули (из архива sysdcuD6.zip или kol.zip)? Наверно это очень глупый вопрос, но все же прошу разъяснить.


 
SPeller ©   (2004-01-06 10:41) [3]

Переделать проект под КОЛ - это значит переписать его почти полностью. Создаёшь новый КОЛ-проект и делаешь всё с самого начала и постепенно восстанавливаешь структуру VCL-проекта. Почитай статьи о КОЛ чтобы не задавать глупых вопросов. Посмотри на этом сайти и на сайте Кладова.


 
Yura   (2004-01-06 15:30) [4]

Почитал и посмотрел. Что значит "новый Кол-проект" создать? У меня вообще-то так и есть. В "Уроке 1" это:
program Project1;
uses
 Windows,messages,KOL;

{$R *.RES}
begin
.......
end.

В остальных "Уроках" описывается работа с формой. Мне сейчас форма в приложении не нужна. У меня CGI-сценарий. Мне нужно только несколько процедур из SysUtils, Classes: работа с TString,String, чтение из файла и DateTimeToString. Но получается экзешник в 146 Кбайт. Как я понял из прочитанного, если все это взять из  Кол-библиотеки, то размер будет раза в три меньше.
Так вот, как же их взять от туда? присоединение модуля Kol (как в "Уроке") не помогает. А так же и указание в проекте пути к файлам из архива sysdcuD6.zip или SysClasses.zip.  Просит файлы *.pas. Так в чем секрет-то Кол-проекта?


 
SPeller ©   (2004-01-07 04:54) [5]

В uses не долдно быть ни одного vcl-модуля.


 
Alekc   (2004-01-07 13:19) [6]


> У меня CGI-сценарий. Мне нужно только несколько процедур
> из SysUtils, Classes: работа с TString,String, чтение из
> файла и DateTimeToString. Но получается экзешник в 146 Кбайт.

В kol.pas для большинства этих функций есть аналоги... а для замены системных модулей я тебе советую скачать уже откомпилированный вариант и, для простоты, засунуть их в папку с проектом. А SysClasses тебе, ИМХО, не нужен...


 
Avenger[NhT]   (2004-01-07 15:19) [7]

to Yura

Посмотри в кладовке мою Avl v1.04 распакуешь, пропишешь пути к папке в Lib путях и заменишь в своем проекте sysutils, classes на Avl ... Переделывать скорее всего ничего даже не придется, а размер будет как в кол...замену системных файлов, тоже можешь использовать с Avl...


 
ЮрийК ©   (2004-01-07 17:07) [8]

Avenger[NhT]  
Можно имея готовый проект и заменив файлы vcl на файлы Avl, получим компактное приложение? Правильно ли понимаю?
Немного поподробней о Avl нельзя ли прочитать? А то только линк имеем, качайте и пробуйте.


 
Avenger[NhT]   (2004-01-07 21:45) [9]

Если проект не визуальный то менять кроме uses скорее всего ничего не придется...
В комплекте поставляются около 25 примеров (причем все c ехешниками ;) при размере фрхива 600кил)....вам этого мало? ;)
Я бы конешно был бы рад написать документацию, но времени совсем нет :(


 
Yura   (2004-01-08 14:46) [10]

Огромное спасибо всем, кто откликнулся! Особенно Avenger[NhT] и Alekc. Попробовал реализовать оба варианта. Все удались. Но, конечно, с Avl v1.04  мне понравился больше.
Не смог ответить сразу - были проблемы с Интернет.


 
Avenger[NhT]   (2004-01-08 15:07) [11]

to Yura
 Если не трудно сообщите размеры программы до перевода и после     для каждой библиотеки...


 
ЮрийК ©   (2004-01-08 15:12) [12]

Avenger[NhT]
"Если проект не визуальный то менять кроме uses скорее всего ничего не придется..."
А если визуальный? Кратко можете что-то сказать про то, что нужно сделать?
Я попробовал в достаточно простом проекте в uses поставить Avl вместо указанных ранее. Дельфи автоматически начинает добавлять модули Dialogs, StdCtrls, Classes, Controls. Это нормально, эти модули не очень влияют на размер?
Но самая проблема, что появляется сообщение ошибки на строку
"Application.CreateForm(TForm1, Form1);"
"[Error] Coding.dpr(11): Incompatible types: "TComponentClass" and "Class reference"."
Поясните, что с этим делать нужно? Какая-то другая строка должна быть?


 
ЮрийК ©   (2004-01-08 15:16) [13]

Дополнение: вот что в главном модуле было сделано на VCL.

"type
 TForm1 = class(TForm)
   OD: TOpenDialog;
   Button1: TButton;
   Memo1: TMemo;
   Button2: TButton;
   Button3: TButton;
   SD: TSaveDialog;
   Button4: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;"


 
Avenger[NhT]   (2004-01-08 15:31) [14]

to ЮрийК
 Чтоб сделать из Vcl - Avl надо из модуля удалить {$R *.dfm}
сохранить проект, открыть заново, теперь не будет появлятся форма и не будут появлятся модули Dialogs, StdCtrls, Classes, Controls

В uses оставляй Windows, Messages, Avl;

D dpr ставь вместо Forms - Avl
ко между begin и end замени на
 Form1 := TForm1.Create(nil, "форма1");
 Form1.Button1 := TButton.Create(Form1, "кнопка1");
 Form1.Button1.OnClick := Form1.Button1Click;

ну и так далее
 TOpenDialog лучше не использовать, он потежелее чем функция OpenSaveDialog();


 
Avenger[NhT]   (2004-01-08 15:33) [15]

Если нужны дополнительные компоненты, то качайте с форума на www.nht-team.org/forum/ там есть сворачивание в трей, md5, TICqClient, TNMPing еще че-то уже не помню...


 
ЮрийК ©   (2004-01-08 16:32) [16]

Application.Initialize, Application.Run отсутствуют, не нужны?


 
ЮрийК ©   (2004-01-08 17:00) [17]

Мастера перевода Vcl -> Avl никто не пробовал написать, тогда бы было супер.
Тоже самое можно было бы спросить про мастер Vcl -> Kol. Может кому интересно это и время позволяет?


 
Yura   (2004-01-08 17:21) [18]

To Avenger[NhT]
Размер экзешника стал 18 Кбайт (был 146).
Но вот в другом приложении почему-то на процедуре WriteLn; заканчивает работу (без сообщения об ошибке). Программка сама по себе короткая. Вышлю на Ваш адрес, если будет время и желание - гляньте. Я не смог понять в чем причина.


 
savva ©   (2004-01-08 18:17) [19]

> Yura   (08.01.04 17:21) [18]
> To Avenger[NhT]
> Размер экзешника стал 18 Кбайт (был 146).
> Но вот в другом приложении почему-то на процедуре WriteLn;
> заканчивает работу (без сообщения об ошибке).
Если речь идет про KOL, и была замена системных модулей, то перед вызовом процедур Reаdln|Writeln и т.д. сделай 1 вызов UseInputOutput...
http://kol.mastak.ru/FAQ.htm#18


 
Yura   (2004-01-09 10:31) [20]

Вообще-то я пробовал с модулем Avl. Там такой процедуры нет.
В Kol.pas между прочим, тоже не нашел.


 
Yura   (2004-01-09 10:43) [21]

Т.е. я хотел сказать, если указать в Uses Windows, Messages, Kol, то на вызове процедуры UseInputOutput спотыкается.


 
Yura   (2004-01-09 11:37) [22]

По своему вопросу [18] (обращался к Avenger[NhT]) - вопрос решен. WriteLn; заменил на Writeln(""); и все работает (c Avl).
Экзешник стал 25 Кбайт. Но это все равно меньше чем 146 кбайт со стандартными библиотеками.
А может все это просто из-за того, что перезагрузился, после того, как последний раз пути перезаписал для Avl и Kol


 
Avenger[NhT] ©   (2004-01-09 12:52) [23]

А ты использовал замену системных DCU?


 
Yura   (2004-01-09 14:47) [24]

Не совсем уверен что я использовал (замену или нет)...
В одном варианте у меня в Uses указан только Avl. И пути в Tools/Environment../Library/Library Path указал к файлам этого модуля. - экзешник 25 кбайт.
В другом (обычном)- в Uses указаны Windows, Classes, SysUtils. При этом все лишние пути перед компиляцией удалял - 146 кбайт. Потом оставил только SysUtils. Остальное было лишним. Получилось 52 кбайта.
И в третьем - файлы из архива sysdcuD6.zip. Сначала в отдельную папку выгружа, пути к ней прописывал, потом, по совету Alekc   (07.01.04 13:19) [6] выгрузил в папку с проектом и в Uses указал SysUtuls, Kol. Соответственно добавил пути к Kol (на первое место сверху). Но в этом варианте на WriteLn вылетает, и на UseInputOutput ругается (пробовал по рекомендации savva ©   (08.01.04 18:17) [19]). Переделывал несколько раз, по-разному. И один раз все-же прошло нормально. Но сейчас не уверен в чистоте того эксперемента.
Короче, вариант с Avl оказался у меня самым удачным! Может в остальных я что-то не так делал...


 
Gandalf ©   (2004-01-10 19:00) [25]

Vcl->KOL есть, вернее  VCL->MCK, на этом сайте KOLovrat зовется. Не фонтан но формы легко конвертит, а это самый рутинный этап береброски.


 
ЮрийК ©   (2004-01-11 17:12) [26]

!Vcl->KOL есть, вернее  VCL->MCK, на этом сайте KOLovrat зовется."
Не совсем удачное название. Если бы назвали Vcl2KOL или VclToKOL, было бы удачней, на мой взгляд.


 
Gandalf ©   (2004-01-14 19:31) [27]

Какое есть :)


 
ЮрийК ©   (2004-01-15 14:25) [28]

На каком delphi он написан, в пятом что-то нормально сорсы не открылись, форму не желает показывать. Программу общего плана можно было бы и на VCL сделать, размер exe тут не так уж и важен.


 
ЮрийК ©   (2004-01-15 14:37) [29]

Про программу написано, ято это "утилита для автоматического перевода VCL проекта в NCK". Я понял пока, что переводятся только dfm файлы, а не целиком проект. Это так?


 
Galdalf   (2004-01-16 10:14) [30]

Да, а что ты еще хочешь? Чтобы код адаптировала? Не забывай после первого запуска ты к своей dfm - получишь все inc. Т.е. полноценный проект в плане интерфейса, за один клик - по мне это и так не мало.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.035 c
14-1084024900
Dron88
2004-05-08 18:01
2004.05.30
OpenGl


4-1081757189
Piero
2004-04-12 12:06
2004.05.30
Есть ли стандартная функция поиска файла.


8-1080055315
Ёпрст
2004-03-23 18:21
2004.05.30
Каким компонентом сделать чтобы набор картинок на форме не мигал.


14-1084447526
Tamagoci
2004-05-13 15:25
2004.05.30
Использование Thread при обновлении состояния Action ов


1-1084775194
Sergo
2004-05-17 10:26
2004.05.30
TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский