Конференция "KOL" » KOL-CE [Lazarus, WIN-CE]
 
  • Dy1 (21.06.15 20:27) [0]
    Можно ли для компиляции под WinCE на ARMv6 использовать версии КОЛа новее 2.80.3? Если да, то как?
  • Dy1 (22.06.15 03:17) [1]
    2) дурацкая проблема - указываю {$DEFINE UNICODE_CTRLS}, но KOLString и KOLChar ансишные. Как использовать юникод?

    PS если бы не древний навигатор, к делфи не вернулся бы
  • Dy1 (24.06.15 00:22) [2]
    кол не умеет работать с широкими строками при преобразовании из 8-байтного числа. До сих пор через жопу i64 и int64. GlobalMemoryStatus валится, т.к. у меня 16 гигов озу... Короче, нахрен этот ваш кол, делфи, лазаря и прочее!
    Остаётся попытать счастья с с++ или забрасывать навигатор вообще
  • Thaddy © (25.06.15 12:03) [3]
    1. Yes, that is possible with the "unofficial" 3.22 version for 32/64 bit on the kolmck.net website.
    What you need to do is build an arm crosscompiler make all crossall crossinstal BINUTILSPREFIX=<prefix of your arm windows binutils> OS_TARGET=wince CPU_TARGET=armel

    I don't know if mck would work, but plain KOL without mck produces working wince executables.

    2. You misunderstood: when UNICODE_CTRLS is selected, kolstring is a unicodestring or widestring depending on the Delphi version. kolstring is an alias to the native string type, NOT Ansi, bit either Ansi or Unicode.

    3. I do not fully understand that question, sorry, try to explain simpler.
  • Thaddy © (25.06.15 12:05) [4]
    sorry, should be CPU_TARGET=ARMV6 in your case
  • RusSun © (25.06.15 19:44) [5]

    > ... Короче, нахрен этот ваш кол, делфи, лазаря и прочее!


    Не руби с плеча. Время. Время расставит всё на свои места.
    Если надо сделай перерыв. Сорри, если посчитают за офф тор.
  • Dy1 (25.06.15 20:24) [6]
    Thaddy, thanks, I'll try.

    lazarus-1.4.0-fpc-2.6.4-cross-arm-wince-win32.exe not support CPU_TARGET=ARMV6, max - v4.

    RusSun, после C# и VS Lazarus выглядит невероятно убогим. Как в Блокноте код пишу :(
    --
    Возможно вопрос решится позже...
    GlobalMemoryStatus(m);
    m.dwTotalPhys;


    возвращает беззнаковое целое 4 байта, эквивалентное Cardinal или LongWord.
    1) Как его преобразовать в строку?
    2) как конвертировать i64 в int64 и обратно?
  • Dy1 (26.06.15 01:36) [7]
    отвечаю сам себе:

    type
    //Во Free Pascal типы Int64 и QWord не являются порядковыми, нельзя использовать их, например, для индексных переменных в циклах
    UInt64 = QWord;//вроде бы не существует в Делфи
    UInt32 = LongWord;

    //  PMemoryStatusEx = ^MemoryStatusEx;
     MemoryStatusEx = packed record
       Length: UInt32;
       MemoryLoad: UInt32;
       TotalPhys: UInt64;
       AvailPhys: UInt64;
       TotalPageFile: UInt64;
       AvailPageFile: UInt64;
       TotalVirtual: UInt64;
       AvailVirtual: UInt64;
       AvailExtendedVirtual: UInt64;
     end;

    function GlobalMemoryStatusEx(var Buffer: MemoryStatusEx): Boolean; stdcall;{cdecl;} external kernel32 name 'GlobalMemoryStatusEx';

    var
     j: Double;
     m: MemoryStatusEx;
    begin
     FillChar(m, SizeOf(MemoryStatusEx), 0);
     m.Length := SizeOf(MemoryStatusEx);
     GlobalMemoryStatusEx(m);

     j := m.TotalPhys/1024/1024/1024;//показывет все 16 гигов



    а вот с преобразованием Int64_tStr проблемы - писать много и на практически забытом языке. Позже сделаю. Наверное...
  • Dy1 (26.06.15 23:58) [8]
    напомните пожалуйста что делать с:
    kol.pas(644,64) Fatal: Невозможно найти модуль RichEdit, используемый в KOL.
    ?
    версия неофициальная 3.22, ошибка появилась вроде как сама по себе
  • Dy1 (28.06.15 20:24) [9]
    как загрузить bitmap? В демках используются функции, которых я не нашёл в версии 2.88СЕ
  • Dy1 (28.06.15 20:47) [10]
    ага, это кол косячит, битмап берёт какой-то левый, а не свой
  • Thaddy © (25.07.15 11:24) [11]
    Try to build lazarus trunk with FPC 3.0.1 or higher (Trunk). 2.6.4 isn't maintained anymore.
    The unofficial KOL 3.22 that also supports 64 bit works also for WINCE provided you specify -dUNICODE_CTRLS and -dNOT_USE_RICHEDIT and provided you compile with any FPC higher than 2.6.4.

    WINCE doesn't support a richedit control, so you can't use it.
  • Thaddy © (25.07.15 11:43) [12]
    After you build a more recent version of FPC and Lazarus, which support more arm processors try this:


    program bm;
    {$IFDEF FPC}{$MODE DELPHI}{$H+}{$APPTYPE GUI}{$ENDIF}
    {$DEFINE UNICODE_CTRLS}
    {$DEFINE PAS_ONLY}
    {$DEFINE PUREPASCAL}
    {$DEFINE NOT_USE_RICHEDIT}
    uses
     Kol, bm1 in 'bm1.pas';
    begin
     NewForm1( Form1, nil);
     Run(Form1.form);
    end.



    unit bm1;

    interface
    uses
     Windows, Messages, Kol;
    const
    cps:KolString = 'Kol project in ' + {$IFDEF FPC}'Freepascal '{$ELSE}'Delphi '{$ENDIF} +
       {$IFDEF WIN64}'64 bits '{$ELSE}'32 bits '{$ENDIF} +
       {$IFDEF UNICODE_CTRLS}'Unicode'{$ELSE}'Ansi'{$ENDIF};
    type

    PForm1=^TForm1;
    TForm1=object(Tobj)
     Form:pControl;
     BM:PBitmap;
     Menu:PMenu;
    public
     procedure DoMenu(sender:PMenu;Index:Integer);
     procedure DoPaint(sender:PControl;DC:HDC);
    end;

    procedure NewForm1( var Result: PForm1; AParent: PControl );

    var
     Form1:pForm1;

    implementation

    procedure NewForm1( var Result: PForm1; AParent: PControl );
    begin
     New(Result,Create);
     with Result^ do
     begin
       Form:= NewForm(AParent,cps);
       Applet:=Form;
       Form.Add2AutoFree(Result);
       Menu := NewMenu(Form,0,['&File','(','&Open','-','E&xit',')'],DoMenu);
       BM := NewBitmap(0,0);
       Form.Add2AutoFree(BM);
       Form.OnPaint := DoPaint;
     end;
    end;

    { TForm1 }

    procedure TForm1.DoMenu(sender: PMenu; Index: Integer);
    begin
    case index of
    1: with NewOpenSaveDialog('Open Bitmap','',[OSFileMustExist])^ do
       try
         Form.BeginUpdate;
         Filter := 'Bitmap files|*.bmp';
         if execute then
         begin
           BM.Clear;
           BM.LoadFromFile(Filename);
         end;
       finally
         free;
         Form.EndUpdate;
         Form.Invalidate;
       end;
    3: Applet.Close;
    else
    ;
    end;
    end;

    procedure TForm1.DoPaint(sender: PControl; DC: HDC);
    begin
     BM.Draw(DC,0,0);
    end;

    end.

  • Thaddy © (25.07.15 11:46) [13]
    Feel free to adapt cps constant to include arm ;)
  • Thaddy © (25.07.15 13:53) [14]
    I am sorry, KOL needs some more fixing. I Forgot to make kernel32 equal coredll.dll' and fix some declarations in KOL_FPC'. I have that ready and put a cleaned up version online in a few hours.
 
Конференция "KOL" » KOL-CE [Lazarus, WIN-CE]
Есть новые Нет новых   [118648   +58][b:0][p:0.003]