-
Проект для тестирования меню под WinCE. Выбросил всё лишнее, выглядит он так:
program Test;
uses Windows, Messages, KOL;
procedure OnMenu(Dummy: Pointer; Sender: PMenu; Item: Integer);
begin
if Item = 0 then begin
MsgOK('OK');
end else if Item = 1 then begin
Applet.Close;
end;
end;
var MainDlg: PControl;
menu: PMenu;
begin
MainDlg := NewForm(Applet, 'Test');
menu := NewMenu(MainDlg, 0,
['OK', 'Cancel'],
TOnMenuItem(MakeMethod(nil, @OnMenu)));
Run(MainDlg);
end.
Пробую под Win32 - всё работает правильно, появляется горизонтальное меню из двух пунктов - OK и Cancel. Нажатие на ОК вызывает сообщение, нажатие на Cancel закрывает окно. Теперь компилирую то же самое под WinCE - наблюдаю странную картину. Надписи как бы сдвинулись, первый пункт меню - Cancel, второй - вообще без надписи. При этом работают они по-старому, то есть, нажатие на Cancel приводит к появлению надписи "ОК", а нажатие на пустую менюшку - закрывает программу. Это баг? Как с ним бороться?
-
Бьюсь второй день - всё без толку. Отображается меню со сдвигом, а отрабатывает без сдвига, причем только на WinCE, под Win32 - всё в порядке. Версии компилятора и библиотеки: Lazarus-0.9.27-20287-fpc-2.3.1-20090529-cross-arm-wince-win32.exe Lazarus-0.9.27-20287-fpc-2.3.1-20090529-win32.exe kol-ce-2.80.3.zip Компилирую командой fpc.exe -Twince -Parm -XX -CX -Xs -FuC:\LAZARUS\KOL\kol -Fccp1251 TEST.PAS Странно, но меню - это же основы! Неужели никто не пишет ничего под WinCE на чистом KOL? Как может работать неправильно столь простая конструкция? Как может остаться незамеченной такая ошибка? Неужели опять какой-нибудь ключ компилятора забыл?
-
Честно говоря, ни разу не использовал маинменю в winCe, обычно пользуюсь тулбаром. Возможно что ошибка есть. Попробуйте версию 2.88. v2.80 вообще, насколько помню, довольно глючная была и под Delphi.
-
Так насколько я понял, kol-ce 2.80.3 - это последняя портированная для CE версия. Просто 2.88 вряд ли пойдет, зачем-то же делали порт kol-ce...
А меню - это очень нужная вещь. Под WM5, WM6 тулбара нет, остается только меню из двух пунктов, назначаемое на две софт-клавиши. Без него полноценное приложение для КПК/коммуникатора не сделать.
Имеет ли смысл пытаться писать под WM5/6 на FPC с использованием непортированной KOL, или это бессмысленно?
-
На SVN есть 2.88.
-
В смысле для WinCE. последняя ревизия 297.
-
> А меню - это очень нужная вещь. Под WM5, WM6 тулбара нет, > остается только меню из двух пунктов, назначаемое на две > софт-клавиши.
Есть. Просто реализовано как меню. Я специально делал компонент KOLMenuToolbarCE для отображения в виде тулбара. В WM6 не тестировал (нет у меня), но в WM5 работает нормально, + добавил срабатывание кнопки при удержании (типа как в фотошопе).
-
Под WM5/6 тоже можно сделать тулбар, и он будет отображаться как тулбар - это режим совместимости. Можно и меню из 6 пунктов сделать вместо двух. Выглядеть будет так же, как выглядело под WM2003 и более ранними. Но потеряется возможность использовать софт-кнопки для вызова выпадающих меню.
Точнее, можно, в принципе, их перехватить и заставить вызывать соответствующие пункты меню.... Но зачем? Теряется самое главное - привычный вид всех современных приложений. Пользователь WM5/6 привык, что внизу у него меню, выглядит оно вот так, в виде надписей над левой и правой софт-клавишами, и для его использования нужно нажимать эти самые софт-клавиши. Не стоит без существенных на то оснований отступать от принятых и привычных пользователю канонов.
Потому мне и хочется, чтобы работало родное меню.
Как качать с SVN - не спрашиваю, это уже не сюда, наверное, а к "Начинающим", поищу там faq какой-нибудь. Спасибо за наводку.
-
> Как качать с SVN - не спрашиваю, это уже не сюда, наверное, > а к "Начинающим", поищу там faq какой-нибудь. Спасибо за > наводку.
Да могу просто выложить, проблем то...
-
Возможно проблемы из-за fpc-2.3.1 С fpc 2.2.4 все прекрасно работает, в том числе и твой пример.
-
Yury Sidorov: Интересно, у меня есть Lazarus 0.9.26.2 с fpc 2.2.2, попробую на нем.
mdw: Конечно, было бы очень удобно. Буду благодарен.
-
Yury Sidorov: Скачал, попробовал на 2.2.4 - действительно, всё правильно работает. Действительно, виновата версия 2.3.1. Спасибо большое за помощь.
-
Вот ссылка kolnmck.kolmck.net/files/kolce/288/KOL-ce-301.7z
-
mdw, спасибо, скачал.
|