Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Меню под WinCE - это баг?   Найти похожие ветки 

 
igg ©   (2009-06-01 01:10) [0]

Проект для тестирования меню под WinCE. Выбросил всё лишнее, выглядит он так:


program Test;
{$mode delphi}
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 приводит к появлению надписи "ОК", а нажатие на пустую менюшку - закрывает программу.

Это баг? Как с ним бороться?


 
igg ©   (2009-06-01 13:08) [1]

Бьюсь второй день - всё без толку. Отображается меню со сдвигом, а отрабатывает без сдвига, причем только на 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? Как может работать неправильно столь простая конструкция?

Как может остаться незамеченной такая ошибка?
Неужели опять какой-нибудь ключ компилятора забыл?


 
mdw ©   (2009-06-02 11:03) [2]

Честно говоря, ни разу не использовал маинменю в winCe, обычно пользуюсь тулбаром. Возможно что ошибка есть. Попробуйте версию 2.88.  v2.80 вообще, насколько помню, довольно глючная была и под Delphi.


 
igg ©   (2009-06-02 12:36) [3]

Так насколько я понял, kol-ce 2.80.3 - это последняя портированная для CE версия. Просто 2.88 вряд ли пойдет, зачем-то же делали порт kol-ce...

А меню - это очень нужная вещь. Под WM5, WM6 тулбара нет, остается только меню из двух пунктов, назначаемое на две софт-клавиши. Без него полноценное приложение для КПК/коммуникатора не сделать.

Имеет ли смысл пытаться писать под WM5/6 на FPC с использованием непортированной KOL, или это бессмысленно?


 
mdw ©   (2009-06-02 13:05) [4]

На SVN есть  2.88.


 
mdw ©   (2009-06-02 13:06) [5]

В смысле для WinCE. последняя ревизия 297.


 
mdw ©   (2009-06-02 13:16) [6]


> А меню - это очень нужная вещь. Под WM5, WM6 тулбара нет,
>  остается только меню из двух пунктов, назначаемое на две
> софт-клавиши.


Есть. Просто реализовано как меню.  Я специально делал компонент KOLMenuToolbarCE для отображения в виде тулбара. В WM6 не тестировал (нет у меня), но в WM5 работает нормально, + добавил срабатывание кнопки при удержании (типа как в фотошопе).


 
igg ©   (2009-06-02 17:01) [7]

Под WM5/6 тоже можно сделать тулбар, и он будет отображаться как тулбар - это режим совместимости. Можно и меню из 6 пунктов сделать вместо двух. Выглядеть будет так же, как выглядело под WM2003 и более ранними. Но потеряется возможность использовать софт-кнопки для вызова выпадающих меню.

Точнее, можно, в принципе, их перехватить и заставить вызывать соответствующие пункты меню.... Но зачем? Теряется самое главное - привычный вид всех современных приложений. Пользователь WM5/6 привык, что внизу у него меню, выглядит оно вот так, в виде надписей над левой и правой софт-клавишами, и для его использования нужно нажимать эти самые софт-клавиши. Не стоит без существенных на то оснований отступать от принятых и привычных пользователю канонов.

Потому мне и хочется, чтобы работало родное меню.

Как качать с SVN - не спрашиваю, это уже не сюда, наверное, а к "Начинающим", поищу там faq какой-нибудь. Спасибо за наводку.


 
mdw   (2009-06-02 23:59) [8]


> Как качать с SVN - не спрашиваю, это уже не сюда, наверное,
>  а к "Начинающим", поищу там faq какой-нибудь. Спасибо за
> наводку.

Да могу просто выложить, проблем то...


 
Yury Sidorov   (2009-06-03 11:46) [9]

Возможно проблемы из-за fpc-2.3.1
С fpc 2.2.4 все прекрасно работает, в том числе и твой пример.


 
igg ©   (2009-06-03 14:33) [10]

Yury Sidorov:
Интересно, у меня есть Lazarus 0.9.26.2 с fpc 2.2.2, попробую на нем.

mdw:
Конечно, было бы очень удобно. Буду благодарен.


 
igg ©   (2009-06-03 15:56) [11]

Yury Sidorov:
Скачал, попробовал на 2.2.4 - действительно, всё правильно работает. Действительно, виновата версия 2.3.1. Спасибо большое за помощь.


 
mdw ©   (2009-06-03 16:06) [12]

Вот ссылка kolnmck.kolmck.net/files/kolce/288/KOL-ce-301.7z


 
igg ©   (2009-06-03 22:00) [13]

mdw, спасибо, скачал.



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.155 c
2-1342471082
Vvasja
2012-07-17 00:38
2013.03.22
Не могу настроить InterBase


15-1339518297
Artem
2012-06-12 20:24
2013.03.22
Что лучше Android или Windows Mobile?


15-1329149862
Alex555
2012-02-13 20:17
2013.03.22
Можно ли как-то посмотреть вот это видео


2-1330616538
>|<
2012-03-01 19:42
2013.03.22
Ошибка перемещения файла


15-1344643133
wl
2012-08-11 03:58
2013.03.22
творение? потом...