Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

KOL-CE [Lazarus, WIN-CE]


Dy1   (21.06.15 20:27

Можно ли для компиляции под 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.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо