Конференция "KOL" » MCK теперь и для Lazarus
 
  • Yury Sidorov (07.03.07 00:49) [0]
    Параллельно с портированием KOL под WinCE, я портирую и MCK для Lazarus.
    MCK уже практически работает полностью.

    Взять можно из svn со страницы проекта:
    http://sourceforge.net/projects/kol-ce/

    KOL компилится и работает как для Win32, так и для WinCE. Т.е. теперь есть полный дельфонезависимый набор KOL/MCK.

    Для компиляции нужно использовать FPC 2.2.
    Для тех, кто не в курсе, уже появилась ветка FPC 2.2 и скоро будет первая бета.
    Взять сорцы можно через svn:
    http://svn.freepascal.org/svn/fpc/branches/fixes_2_2
  • MTsv DN © (20.03.07 14:22) [1]

    > Взять можно из svn со страницы проекта:
    > http://sourceforge.net/projects/kol-ce/
    >
    > KOL компилится и работает как для Win32, так и для WinCE.
    >  Т.е. теперь есть полный дельфонезависимый набор KOL/MCK.
    >
    >
    > Для компиляции нужно использовать FPC 2.2.
    > Для тех, кто не в курсе, уже появилась ветка FPC 2.2 и скоро
    > будет первая бета.
    > Взять сорцы можно через svn:
    > http://svn.freepascal.org/svn/fpc/branches/fixes_2_2

    А можно попросить архивом выложить, чтобы по SVN не лазить. Просто мне качают "по заказу", а там по SVN точно лазить не станут, там только линки прямые нужны...
  • MTsv DN © (20.03.07 14:28) [2]
    И KOLnMCK и FP2.2 - естесссна...
  • ANTPro © (20.03.07 15:43) [3]
    > [2] MTsv DN ©   (20.03.07 14:28)

    KOLCE rev.51

    http://www.antprog.narod.ru/kolce.7z [487 КБ]
  • Sagrer (29.04.07 12:56) [4]
    Сорь за тупой вопрос, но:

    1) А на основе какой версии KOL&MCK это сделано?
    2) И почему не скооперироваться с самим автором KOL ?

    З.Ы. на стабильном Lazarus под win32 - которая идет в инсталлере с оффсайта и в которой fpc 2.0.4 - оно точно не пойдет?
  • Yury Sidorov (01.05.07 11:02) [5]
    1) Сделано на основе версии 2.50 (руки не доходят обновить до текущей).
    2) Скооперироваться можно будет позже, когда моя ветка будет 100% стабильно работать.
    3) Можно брать снапшот Lazarus, но он должен быть основан на FPC 2.1 и выше. Такие снапшоты есть.
  • MTsv DN © (08.05.07 19:34) [6]
    2 Yury Sidorov
    В общем, скачал я Lazarus-0.9.23-fpc-2.1.3-20070506-win32.exe, 59 ревизию KOLCE и все установил... KOLnМСК установился без проблем и заработал...однако... Я, конечно, знал, что exe-шник будет больше, чем при использовании Delphi...но размер в 1МБ меня разочаровал, может я что-то не так делаю...подскажите...
  • Miklya (08.05.07 21:23) [7]
    пустая форма без Kol там вообще 6 мб весит, но есть спец прога strip, которая уменьшит размер, но все равно до дельфовых далеко.
  • MTsv DN © (08.05.07 22:36) [8]
    Ну, про обрезание релоков и перестройку секция, я в курсе... Однако, как оказалось дело немного в другом...

    Чистая форма с использованием MCK получилась 1014831 байт. Далее делаем так , запускаем PEExplorer и удаляем две секции ".stab" и ".stabstr", файл сразу "худеет" до 83505 байт. А затем уже вполне можно strip'ом и секции перестроить и релоки с оверлеями удалить...в итоге, минимально получил 49186 байт. Что вполне соответствует KOL'овским размерам, если учесть, что используется PAS_VERSION.
  • MTsv DN © (08.05.07 22:41) [9]
    Как заключение:
    Останется дождаться поддержки:
    *******************************************************
    Known issus
    ===========

    * The following components are not supported: RichEdit, OpenDirDialog, JustOne, TrayIcon.
    * Only gsVertical, gsHorizontal gradient panel styles are supported.
    *******************************************************
    и перегонки версии 2.59 (будет время может сам займусь этим)...
  • homm © (09.05.07 00:18) [10]
    > Ну, про обрезание релоков и перестройку секция, я в курсе...

    ИМХО «strip» как раз на лазаря и заточена и как раз вот эти сами «.stab» и «.stabstr» кромсаетю
  • Miklya (09.05.07 00:19) [11]
    <<Ну, про обрезание релоков и перестройку секция, я в курсе... Однако, как оказалось дело немного в другом...

    Если вы имеете ввиду stripreloc by Jordan Russell, то я не про него, а про strip, она вроде вместе с лазарусом идет.
  • Yury Sidorov (09.05.07 23:53) [12]
    MTsv DN: Known issues относятся к WinCE. Для Win32 работает все.
  • Yury Sidorov (09.05.07 23:57) [13]
    Чтобы экзешник получался правильного размера сразу нужно в опциях компилятора поставить птичку "Strip Symbols From Executable (-Xs)".
  • MTsv DN © (10.05.07 09:13) [14]
    2 Yury Sidorov
    Респект, за пояснения...

    Будет время займусь переделкой 2.60, если конечно ты не начал уже...
  • Yury Sidorov (10.05.07 16:48) [15]
    Переделку 2.60 делать не нужно. Нужно обновить то что есть до версии 2.60. Думаю на днях сделаю.
  • Yury Sidorov (12.05.07 15:19) [16]
    Просинхронизировал KOL-CE до версии 2.60.
  • Solo © (13.05.07 14:08) [17]
    Здравствуйте. Наконец-то появился КОЛ для Lazarus!
    Вот бы узнать, где последний скачать
  • L`Autour © (14.05.07 06:40) [18]
  • Solo © (14.05.07 18:16) [19]
    -Куда идешь?
    -Укол делать.
    -А-а-а, в больницу?
    -Нет, в попу.

    Я вообще-то спрашивал, где последний релиз KOL для Лазаруса, а не где сам Лазарус :с)
  • MTsv DN © (14.05.07 19:39) [20]
    > Я вообще-то спрашивал, где последний релиз KOL для Лазаруса,
    >  а не где сам Лазарус :с)

    Только на SVN. См. [0]
  • L`Autour © (15.05.07 06:36) [21]
    тогда слово 'последний' было лишним :) (оно ссылалось на последнее существительное, т.е. Lazarus)
  • MTsv DN © (15.05.07 20:19) [22]
    2 Yury Sidorov
    Супер... Ну, теперь осталось написать "статейку" о переводе компонентов в Лазарус и прогу для конвертации проектов из Дельфи (внутренние средства Лазарус не катят :( )
  • Yury Sidorov (15.05.07 23:09) [23]
    Сторонние зеркальные компоненты скорее всего будут работать в Лазарусе без всяких модификаций.

    Перевод Дельфового проекта нужно попробовать. Скорее всего нужно будет кое-что подправить для этого...
  • AndreyRus (16.05.07 01:44) [24]
    А какой, по большому, смысл в Лазарусе?
  • L`Autour © (16.05.07 06:17) [25]
    Кроссплатформенность и freeware (для тех кому принципиально нельзя использовать пиратскую копию Delphi)
  • Solo © (16.05.07 10:00) [26]
    В лазарусе большой смысл: я держу урезанную 70-мбтную Delphi-десятку, на которую компоненты не посадишь. Получается, для КОЛ надо еще и семерку держать, а это нудно. А без КОЛА плохо. И параллельно держу лазарус. В нем компонентов совсем мало, и поэтому туда очень удобно сажать комплекс КОЛ-компонентов :с)
  • solo © (16.05.07 10:03) [27]
    Черт, да где ж он там есть-то, на SVN-то?
  • MTsv DN © (16.05.07 12:00) [28]
    > Черт, да где ж он там есть-то, на SVN-то?
    https://kol-ce.svn.sourceforge.net/svnroot/kol-ce

    Мне осталось тока с "черепашкой" разобраться 8)

    > Сторонние зеркальные компоненты скорее всего будут работать в Лазарусе без всяких модификаций.
    Так ведь там надо вроде сам Лазарус пересобирать, для добавления в палитру...или нет???

    > А какой, по большому, смысл в Лазарусе?
    Лично для меня, как уже было упомянуто, это Фриварность и Опенсурсность...и то что проект "скорее жив" по сравнению с Дельфи... Лично мне кажется, что Borland/CodeGear с жиру бесятся в последних версиях Дельфи...
  • MTsv DN © (16.05.07 12:03) [29]
    > Мне осталось тока с "черепашкой" разобраться 8)
    Кстати, а это нормально, что у меня скорость на SVN ва-а-аще "никакая"?
  • AndreyRus (16.05.07 12:41) [30]
    > Кроссплатформенность и freeware
    Сомнительное преимущество по сравнению с багами.

    > Лично мне кажется, что Borland/CodeGear с жиру
    > бесятся в последних версиях Дельфи...
    C жиру они стали беситься гораздо раньше - VCL.
  • L`Autour © (16.05.07 13:00) [31]
    >Сомнительное преимущество по сравнению с багами.
    Так ведь еще и не финал-релиз
  • Yury Sidorov (16.05.07 13:27) [32]
    А какой, по большому, смысл в Лазарусе?

    Я затеял перевод МСК под Лазарус ради возможности нормально писать проги под PocketPC на KOL с использованием FPC.
    Здесь альтернативы в лице Дельфей нет...

    А то, что можно использовать KOL&MCK в Лазарусе для разработки и Win32 приложений - это, так сказать, приятный бонус для KOL сообщества :)

    Кстати, можно и порт KOL под Win64 сделать. Тут тоже Дельфи пролетает...
  • Yury Sidorov (16.05.07 13:30) [33]
    > > Сторонние зеркальные компоненты скорее всего будут работать в Лазарусе без всяких модификаций.
    > Так ведь там надо вроде сам Лазарус пересобирать, для добавления в палитру...или нет???

    Это ж делается автоматом. Открываешь пакет с компонентами, жмешь инсталл и все что надо пересобирается и Лазарус автоматом перезапускается. После чего видишь компоненты на палитре.

    Для сторонних МСК компонентов просто надо создать новый пакет и туда их подобавлять.
  • AndreyRus (16.05.07 14:10) [34]

    > А то, что можно использовать KOL&MCK в Лазарусе для разработки
    > и Win32 приложений - это, так сказать, приятный бонус для
    > KOL сообщества :)

    Это конечно радует, но вот только какой в этом смысл - увеличиться размер программы и количество багов.
  • Yury Sidorov (16.05.07 14:48) [35]
    Это конечно радует, но вот только какой в этом смысл - увеличиться размер программы и количество багов.

    Смысла особого нет, т.к. понятие "лицензионная чистота" в наших краях еще пока не распространено :)
  • AndreyRus (16.05.07 14:52) [36]

    > Смысла особого нет, т.к. понятие "лицензионная чистота"
    > в наших краях еще пока не распространено :)

    Да и не только в наших:)
    Мне вообще кажется, что никто не спрашивает у разработчиков серийные номера компиляторов.
  • ANTPro © (16.05.07 15:43) [37]
    http://svn.freepascal.org/svn/fpc/branches/fixes_2_2
    ---
    Только этот линк на SVN? Не хочет качаться :(
    Может еще где-нибуть есть зеркало?
  • Yury Sidorov (16.05.07 17:34) [38]
    На днях будет официально анонсирована бета FPC 2.2.
    Уже сейчас ее можно качнуть отсюда:
    ftp://ftp.freepascal.org/pub/fpc/beta/2.1.4
  • Solo © (18.05.07 16:57) [39]
    >:( Где
    Его
    Там
    СКАЧИВАТЬ??? Вот движок, блин, хрен поймешь. Где там архив с КОЛОМ для Лазаруса?
    No File Packages Defined
  • MTsv DN © (18.05.07 19:39) [40]
    > >:( Где
    > Его
    > Там
    > СКАЧИВАТЬ??? Вот движок, блин, хрен поймешь. Где там архив
    > с КОЛОМ для Лазаруса?
    > No File Packages Defined

    http://www.hu.freepascal.org/lazarus/ - качаешь последний SnapShot для Лазаруса, а потом по SVN: https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk - последний KOL-CE. Мож попозже вывешу архивом на http://www.kolnmck.ru/
  • MTsv DN © (18.05.07 20:16) [41]
    > Мож попозже вывешу архивом на http://www.kolnmck.ru/
    Вывесил...
  • MTsv DN © (18.05.07 20:53) [42]
    Перезалил KOL-CE. Rev.69 - "последняя"...
  • MTsv DN © (20.05.07 15:55) [43]
    Добавление
    Отдельный раздел пока не создан
    KOLCE-UpDown, KOLCE-DirTreeView, KOLCE-SATabs - "переделка" компонентов под Lazarus.(Переделал те компоненты, что используются у меня в проектах)

    http://www.kolnmck.ru
  • Vladimir Kladov (20.05.07 19:12) [44]
    А пора бы. И со ссылкой, на которую можно направить народ, не бывающий на этом форуме. В частности, не читающий по-русски.
  • MTsv DN © (20.05.07 19:12) [45]
    2 Yury Sidorov
    Юрий, Думаю надо как-то связаться (по АСЬке или мылу), а то рабочие вопросы на форуме обсуждать, как-то не то... А пока:
    1. Перевод визуальных компонентов действительно оказалось несложной задачей...
    2. А вот с переводом проекта Delphi -> Lazarus оказалось посложнее...но тоже в большинстве стандартизировано...тем более, что конвертор присутствует в Лазарус. Однако ручками "поработать" тоже пришлось немало. В итоге...естесссссно, проект пока нерабочий, причин несколько:
    а) Строчка в Unit1_1.inc:
    Applet := Result.Form

    выдает ошибку типов TKOLApplet и PControl.
    б) Установка в inc-файле
    .SetAlign(...)

    ...как
    ta...

    , так и
    ca...

    , и
    va...

    тоже выдает ошибку типов.
    но это бы ладно...можно вручную отредактировать (хотя каждый раз неудобно), а вот:
    в) Использование ImageList с добавлением картинок выдает ошибку "Error while compiling" и все...
    Также не работает USE_NAMES и USE_MH_TOOLTIPS.

    Посмотрю, что смогу сам...хотя знаний по FPC\Lazarus пока мало...
  • homm © (20.05.07 19:16) [46]
    > "переделка" компонентов под Lazarus.(Переделал те компоненты,
    > что используются у меня в проектах)

    Я пробовал в свое время под лазарем Граши компилировать (не МСК конечно), помоему там всего парочка исправлений понадобилась, и то с 64-х разрадными числами при работе с ProgressBar, вот только включил я эти изменения в пакет или нет уже и не вспомню :)
  • MTsv DN © (20.05.07 19:16) [47]
    > А пора бы.
    Сделаю, Владимир... Просто со временем пока напряг...
  • MTsv DN © (20.05.07 19:18) [48]
    > Я пробовал в свое время под лазарем Граши компилировать
    > (не МСК конечно), помоему там всего парочка исправлений
    > понадобилась, и то с 64-х разрадными числами при работе
    > с ProgressBar, вот только включил я эти изменения в пакет
    > или нет уже и не вспомню :)

    Ща гляну...
  • MTsv DN © (20.05.07 20:22) [49]

    > Ща гляну...

    В общем-то "перегоняется". Вылетает одна единственная ошибка в tinyPng:
    LoadPalette
    ...
           lea edi, TBITMAPINFO(edi).bmiColors


    не понимает что такое TBITMAPINFO(edi).bmiColors.
  • homm © (20.05.07 20:58) [50]
    Наверое можно как-то смещение вручную задать. Наверное именно по той-же причине и не работает ASM версия самого КОЛ.

    У меня кстати здесь еше экзешник лежит, еще с тех времен, «demoproject88.exe», дема из дистрибутива контроллов. Он вылетает при попытке нажать на кнопку «Transparent». Может это была ошибка компилятора, которую исправили. Если будет желание поставить клеше «Ready for Lazarus», надо еше этот глюк посмотреть (может правда он сам пропал в новых версиях).
  • Solo © (21.05.07 08:45) [51]
    > Мож попозже вывешу архивом на http://www.kolnmck.ru/
    Вывесил...

    Ну вот. Ну ведь можем же, когда захотим :с) А то не смотря что я и по-русски, и по укр., и по англ, и на pascale тоже мало-мало... А найти не мог.
  • MTsv DN © (21.05.07 08:56) [52]
    > Ну вот. Ну ведь можем же, когда захотим
    Надо будет раздел отдельный сделать...эх, еще бы пару часов к суткам...
  • MTsv DN © (21.05.07 12:40) [53]
    Всем привет...

    > А вот с переводом проекта Delphi -> Lazarus оказалось посложнее. ..но тоже в большинстве стандартизировано...тем более, что конвертор присутствует в Лазарус. Однако ручками "поработать" тоже пришлось немало. В итоге...естесссссно, проект пока нерабочий
    Оказалось не просто посложнее, а полная....... И дело даже не в том, чтобы "перегнать" проект (там действительно используешь конвертер строк UNICODE->ANSI, потом конвертер Лазарус, немного редактируешь "шапку" pas-файлов и в принципе все), а в том, чтобы он после этого заработал как надо... Скомпилировать конвертированный проект получилось...но вот работает он не так как я привык...и причем видимых ошибок я не нашел...

    Теперь о том, как разобрался с ошибками:
    > а) Строчка в Unit1_1.inc: Applet := Result.Form выдает ошибку
    > типов TKOLApplet и PControl.

    Здесь причину ошибки так и не понял, т.к. если проект делать сразу в Лазарусе, то эта строчка "прокатывает на ура"...а для решения достаточно бросить KOLApplet на форму.

    > б) Установка в inc-файле .SetAlign(...) ...как ta..., так и ca..., и va... тоже выдает ошибку типов...но это бы ладно...можно вручную отредактировать (хотя каждый раз неудобно),
    Здесь пришлось править mirror.pas и пересобирать проект...

    а вот:
    > в) Использование ImageList с добавлением картинок выдает ошибку "Error while linking" и все...
    Причиной послужило "кривая" сборка res-файла. Пересохранение в Restorator'е решает проблему...

    > Также не работает USE_NAMES
    Здесь пришлось просто избавиться от самого use_names ("кривое" решение, но что-то посложнее выдумывать было лень)

    и USE_MH_TOOLTIPS.
    Не разбирался...
  • MTsv DN © (21.05.07 12:46) [54]
    ВЫВОД (сделал для себя):
    1. KOLnMCK под Лазарус работает и практически завершен...
    2. "Перегонка" компонентов, практически стандартная процедура, за редкими исключениями...
    3. "Перегонка" большого проекта (а может и маленького) весьма трудоемкая задача и в итоге может получиться, совершенно не то, что ожидалось...
  • Yury Sidorov (21.05.07 15:34) [55]
    Юрий, Думаю надо как-то связаться (по АСЬке или мылу), а то рабочие вопросы на форуме обсуждать, как-то не то...

    На почту пиши.
    Баги лучше всего регистрировать в багтрекере на sourceforge. А то забудутся :) Только что специально создал там "Русский баг трекер".

    Перегонку проекта попробую.

    > б) Установка в inc-файле .SetAlign(...) ...как ta..., так и ca..., и va... тоже выдает ошибку типов...но это бы ладно...можно вручную отредактировать (хотя каждый раз неудобно),
    Здесь пришлось править mirror.pas и пересобирать проект...


    А вот здесь по подробнее можно?

    Скомпилировать конвертированный проект получилось...но вот работает он не так как я привык...и причем видимых ошибок я не нашел...

    И здесь тоже интересны подробности.
  • MTsv DN © (21.05.07 18:35) [56]

    > На почту пиши.
    > Баги лучше всего регистрировать в багтрекере на sourceforge.
    >  А то забудутся :) Только что специально создал там "Русский
    > баг трекер".

    Лады


    > > б) Установка в inc-файле .SetAlign(...) ...как ta...,
    > так и ca..., и va... тоже выдает ошибку типов...но это бы
    > ладно...можно вручную отредактировать (хотя каждый раз неудобно),
    >
    > Здесь пришлось править mirror.pas и пересобирать проект.
    > ..
    >
    > А вот здесь по подробнее можно?

    "Пербдел" я... Это из-за "криво"-отредактированной "шапки" вылазило...


    > Скомпилировать конвертированный проект получилось...но вот
    > работает он не так как я привык...и причем видимых ошибок
    > я не нашел...
    >
    > И здесь тоже интересны подробности.

    А вот здесь мне тоже интересно... У меня проект даже до FormCreate не доходит, где-то вылетает... Трейсить по F8 пробовал, первая ошибка сразу же в "fpc_InitializeUnits". Вылетает окно "Project raised exception class 'External: SIGSEGV'", а за ним подряд еще 2: "Выполнение приостановлено. Адрес: 00000002, Проседура: ???, Файл:" и дальше ШИКАРНАЯ ФРАЗА: "Когда-нибудь здесь появится окно ассемблера..." 8)
  • MTsv DN © (21.05.07 18:45) [57]
    > А вот здесь мне тоже интересно... У меня проект даже до
    > FormCreate не доходит, где-то вылетает... Трейсить по F8
    > пробовал, первая ошибка сразу же в "fpc_InitializeUnits".
    >  Вылетает окно "Project raised exception class 'External:
    >  SIGSEGV'", а за ним подряд еще 2: "Выполнение приостановлено.
    >  Адрес: 00000002, Проседура: ???, Файл:" и дальше ШИКАРНАЯ
    > ФРАЗА: "Когда-нибудь здесь появится окно ассемблера..."
    > 8)

    Дальше трейсер останавливается сам в процедуре:
    procedure MMTimerCallback(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD);
             stdcall;
    var MMTimer: PMMTimer;
    begin
     MMTimer := Pointer( dwUser );
     if Assigned( MMTimer.FOnTimer ) then
       MMTimer.fOnTimer( MMTimer ); <- ЗДЕСЬ
    end;


    Причем тайтеры у меня
    Enabled := false

    ; И через некоторое число F8: "Отладка остановлена".

    Если запускать сам ехе-шник, то прорисовывается Главное окно, вылетает сообщение об ошибке в строке KOL.PAS №43528="MMTimer.fOnTimer( MMTimer );", жмешь на OK и..."пишите письма"...
  • MTsv DN © (21.05.07 18:55) [58]
    И еще вопрос... Как использовать err.pas???
  • MTsv DN © (21.05.07 19:20) [59]
    > И еще вопрос... Как использовать err.pas???
    Сам подправил...

    Вот еще что. Некоторые свойства не сохраняются. Например Visible...
  • Yury Sidorov (21.05.07 20:42) [60]
    Только что обнаружился баг в компиляторе, без правки которого МСК приложения работать не будут. Вследствие его и валится проект.

    Обьяснять суть бага долго. Щас пытаюсь найти как его пофиксить. Если сам не смогу буду обращаться непосредственно к главным разработчикам компилятора...

    Про несохранение свойств в багтрекер, пожалуйста.
  • MTsv DN © (22.05.07 12:42) [61]
    > Про несохранение свойств в багтрекер, пожалуйста.
    Сделано. И не только про "несохранение"...
  • Yury Sidorov (25.05.07 11:09) [62]
    Баг в компиляторе исправлен в свн.
    Также пофиксил несколько багов в кол/мск.
    MTsv DN попробуй скомпилить свой большой проект использую компилятор из fixes_2_2. По идее теперь он должен запуститься :)
  • MTsv DN © (29.05.07 12:00) [63]

    > Баг в компиляторе исправлен в свн.
    > Также пофиксил несколько багов в кол/мск.
    > MTsv DN попробуй скомпилить свой большой проект использую
    > компилятор из fixes_2_2. По идее теперь он должен запуститься
    > :)

    Юр, я б с удовольствием, тока мне SVN по ЖПРСу качать, очень напряжно... Если я снаршот Lazarus-0.9.23-fpc-2.1.5-20070529-win32.exe качну намана будет?..
  • MTsv DN © (29.05.07 12:22) [64]
    И еще вопрос:
    Как корректно работать с исключениями? err.pas подключаю, сразу ошибки валятся...
  • MTsv DN © (29.05.07 12:59) [65]
    Обновление на http://www.kolnmck.ru/
  • Yury Sidorov (29.05.07 13:31) [66]

    > Юр, я б с удовольствием, тока мне SVN по ЖПРСу качать, очень
    > напряжно... Если я снаршот Lazarus-0.9.23-fpc-2.1.5-20070529-
    > win32.exe качну намана будет?..

    Можно и снапшот.


    > И еще вопрос:
    > Как корректно работать с исключениями? err.pas подключаю,
    >  сразу ошибки валятся...


    Подозреваю, err.pas нужно немного переделывать, т.к. внутренняя работа с исключениями в FPC совсем по другому сделана чем в дельфях.
    Гляну на это.

    Тут всплыл еще старый глючек - FPC неправильно линкует несколько ресурсных файлов. В итогое в экзешнике виден только один (первый) ресурсный файл.

    Щас правлю это дело. Подозреваю, что разрешат исправить только в ветке 2.3, т.к. это большое исправления и может нарушить стабильность ветки 2.2...
  • MTsv DN © (31.05.07 10:04) [67]
    Новости от 31.05.2007
    Добавление
    KOLCE-GRush - "переделка" компонентов GRush от homm под Lazarus. (Возможны ошибки при работе с ImageCollection, вернее с загрузкой изображений, поскольку одну строчку в LoadPalette пришлось закомментировать)

    2 homm
    Может посмотришь, как заменить строку:
    lea edi, TBITMAPINFO(edi).bmiColors


    чтоб и FPC ее понимал...
  • homm © (31.05.07 10:14) [68]
    > 2 homm
    > Может посмотришь, как заменить строку:
    > lea edi, TBITMAPINFO(edi).bmiColors
    > чтоб и FPC ее понимал...

    Я думаю у Владимира больший опыт переделки кода под лазурус, может он скажет что в такиз случаех делает? (а такиз млучаев в KOL полно, вроде).
    Могу посоветовать в отладчике сделать точку останова (даже под дельфи) и посмотреть, что там реально генерируеться.
  • Yury Sidorov (31.05.07 19:08) [69]
    Желательно написать PAS версию этой процедуры и для FPC ее включить.
  • homm © (31.05.07 19:59) [70]
    > 2 homm
    > Может посмотришь, как заменить строку:
    > lea edi, TBITMAPINFO(edi).bmiColors
    > чтоб и FPC ее понимал...

    Замени на
    lea edi, [edi+$28]


    через IFDEF
  • MTsv DN © (31.05.07 21:36) [71]
    > Замени на
    > lea edi, [edi+$28]
    > через IFDEF

    Изменил и перезалил на сервер. Однако проблемы с использованием ImageCollection в IDE это не исправило...
  • Zoom Evstrahiev © (03.06.07 19:58) [72]
    Привет!

    У меня такая проблема.
    Lazarus-0.9.23-fpc-2.1.5-20070531-cross-arm-wince-win32 +
    Lazarus-0.9.23-fpc-2.1.5-20070603-win32

    Поставил kol+mck

    Сначала были баги, но потом вроде разобрался, всё компилится под win32.
    Размер пустой формы 986 кб без стрипа и сжатия.

    Как только выставляю в опциях проекта сборку для wince - лезут ошибки.
    Сначала одна - про рич. Вытавляю в коле   {$DEFINE NOT_USE_RICHEDIT}
    - лезет тьма ошибок типа "got PChar, expected PWideChar".

    PS: очень давно не проверял, как тут у сообщества дела - не было необходимости программировать, и каково же мое удивление, что когда появился интерес в фрипаскале для pda, а тут уже все есть! Ребята, всем кто работает над этой прекрасной библиотекой уже столько времени, огромное спасибо!
  • Yury Sidorov (03.06.07 21:44) [73]
    Чтобы компилировалось для покета нужно сразу после установки МСК открыть свойства пакета и поставить птичку "никогда не пересобирать" иначе Лазарус будет пытаться компилить пакет МСК под покет, что естественно работать не будет.

    P.S. Для начала попробуй скомпилить пустой проект (без использования KOL) под покет, чтобы убедиться, что все правильно настроено, а затем уже и KOL пробовать. Т.к. ричедет должен автоматом отрубаться при компиляции под покет...
  • MTsv DN © (03.06.07 22:03) [74]
    Я дико извиняюсь за, может быть, "глупый" вопрос, но как определить "Conditional defines" в Лазарусе???
  • MTsv DN © (03.06.07 22:11) [75]
    > Я дико извиняюсь за, может быть, "глупый" вопрос, но как определить "Conditional defines" в Лазарусе???
    Сам нашел. Если кому интересно "Проект -> Опции компилятора -> Другое -> Параметры пользователя" и заполнять кажое определение "-dВАШЕ_ДЕФАЙН"
  • Zoom Evstrahiev © (03.06.07 23:45) [76]
    Итак, всё сделал как сказано.
    Установил пакет, пометил не пересобирать.
    Создал проект без kol для win32 - работает.
    Перекомпилил для WinCE - ок.
    Переделал его в kol (как всегда: бросил KolProject, прописал projectDest, бросил KolForm, сохранил, октрыл сгенерированный проект).
    Собираю - лезут ошибки.
    Первая в функции Find_First в месте
    ( @ F )^ );


    C:\lazarus\kolce_svn\kol\KOL.pas(20635,14) Error: Call by var for arg no. 2 has to match exactly: Got "WIN32_FIND_DATAW" expected "WIN32_FIND_DATA"
    Чуть ниже такая же ошибка. Дальше ещё. Вот все:
    KOL.pas(20775,71) Error: Illegal expression
    KOL.pas(20775,19) Error: Identifier not found "SetErrorMode"
    KOL.pas(20773,46) Error: Constant and CASE types do not match
    KOL.pas(20773,31) Error: Constant and CASE types do not match
    KOL.pas(20773,18) Error: Constant and CASE types do not match
    KOL.pas(20772,20) Error: Identifier not found "GetDriveType"
    KOL.pas(20642,16) Error: Call by var for arg no. 2 has to match exactly: Got "WIN32_FIND_DATAW" expected "WIN32_FIND_DATA"
    KOL.pas(20635,14) Error: Call by var for arg no. 2 has to match exactly: Got "WIN32_FIND_DATAW" expected "WIN32_FIND_DATA"
  • Yury Sidorov (04.06.07 16:02) [77]
    Оказывается я забыл проверить компиляцию под покет после обновления до версии 2.63. :)

    Теперь поправил это дело, но для компиляции под покет нужно использовать свежий FPC 2.1.5 или 2.3.1 из svn, т.к. я там поправил определение WIN32_FIND_DATA...
  • Zoom Evstrahiev © (04.06.07 16:12) [78]
    Э-э... Начинаю путаться. Что качать, ставить, и откуда. И лучше весь комплект (fpc+lazarus+crossbuild+kol).
  • MTsv DN © (04.06.07 18:38) [79]
    2 Yury Sidorov
    Я тебе на мыло инфу скинул...посмотри...
  • Yury Sidorov (04.06.07 21:33) [80]

    > Э-э... Начинаю путаться. Что качать, ставить, и откуда.
    > И лучше весь комплект (fpc+lazarus+crossbuild+kol).

    Можешь руками поправить WIN32_FIND_DATAW на WIN32_FIND_DATA в 2х местах где ошибки и закоментарить строчки с GetDriveType и SetErrorMode.
  • MTsv DN © (06.06.07 08:44) [81]
    Обновление на http://www.kolnmck.ru/ (KOLnMCK-CE Rev.92 от 06.06.2007)
  • Yury Sidorov (06.06.07 11:18) [82]

    > Обновление на http://www.kolnmck.ru/ (KOLnMCK-CE Rev.92
    > от 06.06.2007)

    В описании на сайте допиши, что KOLnMCK-CE предназначен для создания програм как для WinCE (PocketPC) так и Win32.
  • MTsv DN © (06.06.07 12:07) [83]
    OK
  • D[u]fa © (06.06.07 18:09) [84]
    >WinCE (PocketPC)

    хм.. даже так, купить кпк что ли %)
  • Zoom Evstrahiev © (06.06.07 20:14) [85]
    Обновил, установил, подправил WIN32_FIND_DATAW на WIN32_FIND_DATA.
    Такая ошибка:

    Compiling resource C:\lazarus\kolce\kol\KOL-CE.rc
    c:\lazarus\fpc\2.1.5\bin\i386-win32\arm-wince-windres.exe: no resources
    C:\lazarus\kolce\kol\KOL.pas(55578) Error: Error while linking
    Fatal: Compilation aborted
  • Yury Sidorov (09.06.07 02:34) [86]
    Нужно включить опцию компилятора -va
    Затем скопировать все сообщения "all and hidden" в клипбоард и вставить в блокнот. По тексту смотреть чем вызвана ошибка.
  • mdw © (20.07.07 16:01) [87]
    Немного не по теме, но подскажите где в Lazarus можно глобально указать пути к библиотекам и inc-файлам. Аналогично делфи Tools|Environment Options|Library -> Library path. А то прописывать каждый раз в опциях проекта геморойно, а как глобально задать не пойму.
  • mdw © (24.07.07 20:52) [88]
    Попробовал KOL-CE + Лазарус. Впечатления вполне, даже адаптировал несколько компонент... Но неожиданно столкнулся с такой проблемой. Не могу вывести ни слова на русском. Подскажите, пожалуйста в что я делаю не так и вообще возможно ли использовование русского на данный момент?
    Использую:
    Lazarus-0.9.23-fpc-2.1.5-20070719-win32 + Lazarus-0.9.23-fpc-2.1.5-20070704-cross-arm-wince-win32
    KOL-CE сегодня скачал r.129
    Опции компилятора: -dUNICODE_CTRLS -dKOL_MCK

    Пробовал просто проект делать под СЕ, все нормально русский есть, а вот с кол не выходит... Подскажите пожалуйста где туплю?
  • Yury Sidorov (24.07.07 21:51) [89]
    Действительно, на данный момент есть проблема с русскими буквами при использовании UNICODE_CTRLS.

    Варианты решения:
    1. Использовать resourcestring для всего текста (Localizy:=True).
    2. Не использовать UNICODE_CTRLS.
  • SiNiK © (24.07.07 22:08) [90]
    Выложите плиз полный, нужный архив для компиляции KolCE... Заранее спасибо
  • mdw © (25.07.07 10:12) [91]

    > Действительно, на данный момент есть проблема с русскими
    > буквами при использовании UNICODE_CTRLS.Варианты решения:
    > 1. Использовать resourcestring для всего текста (Localizy:
    > =True).
    2. Не использовать UNICODE_CTRLS.

    Да, resourcestring помогает. Но ведь нужно еще и динамический текст выводить...
    А вот НЕ использовать UNICODE_CTRLS не помогает, собственно, я и подключал только из-за проблем с русским, думал поможет... Кстати а в чем причина такого поведения, почему resourcestring работает, а просто строчки нет?
  • mdw © (25.07.07 10:12) [92]

    > Выложите плиз полный, нужный архив для компиляции KolCE.
    > .. Заранее спасибо

    Так лежит же на http://www.kolnmck.ru/
  • mdw © (25.07.07 18:17) [93]
    После нескольких дней изучения появилось некоторые мысли. Касается только WinCE, под Win32 вроде нормально все.
    1. Небольшое исправление в MCK. Модуль mckObjs.pas. Предлагаю изменить:
    uses Windows, Messages, KOL, Classes, Forms, Controls, Dialogs, extctrls,
        stdctrls, comctrls, SysUtils, Graphics, mirror, {$IFNDEF WINCE}ShellAPI,{$ENDIF WINCE}....
    Иначе при генерации события OnTimer для Timer'а возникает ошибка не найден  ShellAPI, и соответственно событие не генерится.
    2. Zoom Evstrahiev уже писал про ошибку связанную с KOL-CE.rc. У меня тоже самое, победить так и не смог, пока закоментировал строку {$R KOL-CE.rc}. Вот что пишет компилятор:
    [1.234] Searching file C:\LANGUAGE\lazarus\KOL\kol\KOL-CE.rc... found
    windres... not found
    windres... not found
    windres... found
    [1.234] Compiling resource C:\LANGUAGE\lazarus\KOL\kol\KOL-CE.rc
    windres" with "--include C:\LANGUAGE\lazarus\fpc\2.1.5\bin\i386-win32\ -O res -o C:\LANGUAGE\lazarus\KOL\kol\KOL-CE.res C:\LANGUAGE\lazarus\KOL\kol\KOL-CE.rc --i
    windres: no resources
    [1.281] Error while linking
    [1.281] There were 1 errors compiling module, stopping
    [1.344] Compilation aborted
    Error: C:\LANGUAGE\lazarus\fpc\2.1.5\bin\i386-win32\ppcrossarm.exe returned an error exitcode (normal if you did not specify a source file to be compiled)

    3. Еще раз вернусь к проблеме с русским (и не только) текстом.
    В общем посмотрел что получается, изложу коротенько, дабы если кому интересно будет не ковыряться еще раз. В СЕ При присваивании, например, Button1.Caption:= 'йй'; Должно присваиваться: #9#4#9#4#0#0 (39 04 39 04 00 00). Реально же присваивается 'й'#0'й'#0#0#0 (E9 00 E9 00 00 00). Т.е. вместо преобразования строки в unicode происходит дополнение каждого символа вторым нулевым байтом.

    Пока что я слепил вот такую функцию:
    function Ansi2Wide(S: AnsiString): WideString;
    begin    
     Result:= S;
    end;
    и конструкция типа:
       Button1.Caption:= Ansi2Wide('йй');
    успешно работает.
    Но это не есть хорошо. Преобразование выполнять нужно на уровне компилятора что ли?
  • Yury Sidorov (25.07.07 23:17) [94]

    > Да, resourcestring помогает. Но ведь нужно еще и динамический
    > текст выводить...
    > А вот НЕ использовать UNICODE_CTRLS не помогает, собственно,
    >  я и подключал только из-за проблем с русским, думал поможет.
    > .. Кстати а в чем причина такого поведения, почему resourcestring
    > работает, а просто строчки нет?


    Для wince UNICODE_CTRLS включены всегда и выключить нельзя. Я имел в виду при компиляции под win32 не использование UNICODE_CTRLS помогает.
    Динамический текст в принципе можно тоже через resourcestring делать.

    Причина проблемы в том, что FPC 2.1.5 (и ранние версии) не понимает кодировку 1251 при переводе из ANSI в WIDE. Поддержка кодировки 1251 есть в 2.3.1, но 2.1.5 уже давно закрыт для добавления новых фичей...
    resourcestring в FPC хранятся в ANSI кодировке и преобразование в WIDE происходит уже во время работы программы.

    Можно было бы набирать текст программы в utf-8, но редактор Lazarus не понимает utf-8.
  • Yury Sidorov (25.07.07 23:28) [95]
    1. Проблему с ShellAPI исправил.
    2. Насчет windres. Вообще-то должен вызываться arm-wince-windres.exe
  • mdw © (26.07.07 14:44) [96]

    >  Поддержка кодировки 1251 есть в 2.3.1, но 2.1.5 уже давно
    > закрыт для добавления новых фичей...

    т.е. стоит просто подождать новой версии?
  • Yury Sidorov (26.07.07 16:42) [97]
    В релизе 2.2 поддержки ср1251 не будет. Думаю будет в 2.2.2. Так что это дело не ближайшего будущего.

    Сейчас можно пользоваться нестабильной версией 2.3.1 если очень нужно...
  • Yury Sidorov (26.07.07 17:12) [98]
    Насчет ошибки при компиляции ресурсов. windres не любит путей с пробелами. Поэтому нужно чтобы не было пробелов во всех путях.
  • mdw © (26.07.07 19:37) [99]
    Да у меня пробелов и нет. А если чем нибудь другим компильнуть этот файл и уже компилированный цепануть, покатит?
  • Yury Sidorov (26.07.07 19:45) [100]
    Да windres-ом он должен без проблем компилиться.
    Попробуй запустить:
    arm-wince-windres KOL-CE.rc KOL-CE.res
  • mdw © (27.07.07 16:42) [101]
    Еще несколько компонентов под Lazarus + WinCE.
    http://www.kolnmck.ru/files/components/controls/kolmdvcontrols.7z
  • YuriyM © (08.02.08 16:44) [102]

    > Да windres-ом он должен без проблем компилиться.
    > Попробуй запустить:
    > arm-wince-windres KOL-CE.rc KOL-CE.res


    Установлен Lazarus 0.9.24beta, при попытке компиляции выдается следующее:
    C:\lazarus\fpc\2.2.0\bin\i386-win32>arm-wince-windres KOL-CE.rc KOL-CE.res
    "arm-wince-gcc" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    arm-wince-windres: no resources

    Как поправить?
  • mdw © (08.02.08 18:35) [103]
    Или ручками компильнуть, или прописать в путях (свойства "Моего компьютера") путь к arm-wince-windres. Мне помогло.
  • YuriyM © (09.02.08 00:40) [104]

    > Или ручками компильнуть, или прописать в путях (свойства
    > "Моего компьютера") путь к arm-wince-windres. Мне помогло.
    >

    Куда уж больше, файл KOL-CE.rc положил в каталог с arm-wince-windres.exe и через батник дал команду arm-wince-windres KOL-CE.rc KOL-CE.res, а результат постом выше.
  • mdw © (10.02.08 14:45) [105]
    Насколько знаю, можно и windres.exe или даже делфийским, а в Kol.pas заменить KOL-CE.rc на KOL-CE.res. Я так и работал, пока не прописал путь к папке с arm-wince-windres, мне это помогло.
  • MageSlayer © (13.02.08 22:23) [106]
    YuriyM

    Все вы правы, только во время запуска arm-wince-windres, он запускает файл gcc.exe, он как правило находится где-нибудь в путях к mingw, тот в свою очередь запускает cpp.exe (опять же из поставки mingw) и т.д.

    Короче, мораль басни - надо указывать путь к C:\lazarus\fpc\2.2.0\bin\i386-win32 _ПЕРЕД_ любым путем уже содержащим gcc.exe, cpp.exe и т.д.
  • Turbidit (16.02.08 01:48) [107]
    Помогите разобраться с траблой:

    Стоит lazarus 0.24, kol_mck_ce 222. Проект нормально собирается и exe-файл весит около 100кб, что меня вполне устраивает. Но стоит добавить на форму компонент kolupdown как тутже размер увеличивается до 2мб. И никак не пойму почему. strip не помогает. Опции компиляции такие:

    <?xml version="1.0"?>
    <CONFIG>
     <Compiler Value="c:\lazarus\fpc\2.2.0\bin\i386-win32\fpc.exe" Date="930002333"/>
     <Params Value=" -S2cdi -CX -Og1p2 -TWin32 -Pi386 -Xs -XX -WG -vewnhi -l -FiC:\lazarus\lib\kol\ -FuC:\lazarus\lib\kolce_updown\ -FuC:\lazarus\lib\mck\lib\i386-win32\ -FuC:\lazarus\lib\kol\ -Fuc:\lazarus\ideintf\units\i386-win32\ -Fuc:\lazarus\lcl\units\i386-win32\ -Fuc:\lazarus\lcl\units\i386-win32\win32\ -Fuc:\lazarus\components\codetools\units\i386-win32\ -Fuc:\lazarus\packager\units\i386-win32\ -Fu. -olconfig.exe -dLCL -dLCLwin32 lconfig.lpr"/>
    </CONFIG>

  • Yury Sidorov (16.02.08 12:23) [108]
    Скорее всего нужно выкинуть ссылку на пакет kolupdown из uses в главном модуле проекта.
  • Turbidit (16.02.08 13:03) [109]
    Yury Sidorov, спасибо, помогло.
  • Pablo (12.06.08 20:28) [110]
    Помогите разобраться:
    скачал вот дерево 2.3 (ночной билд). Где же взять под нее кросс-компилер? (ссылку)
    Заранее спасибо
  • имя (26.12.08 14:59) [111]
    Удалено модератором
  • swa1 (16.01.09 23:03) [112]
    А где сам kolnmck.ru
  • имя (01.03.09 08:25) [113]
    Удалено модератором
 
Конференция "KOL" » MCK теперь и для Lazarus
Есть новые Нет новых   [134431   +15][b:0.001][p:0.003]