Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Меню под 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 вся ветка

Форум: "KOL";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.063 c
2-1339837887
Разведка
2012-06-16 13:11
2013.03.22
Как происходит уничтожение в структуре класса


2-1331111757
Очень Злой
2012-03-07 13:15
2013.03.22
Вызов метода Owner-класса


15-1352825506
>|<
2012-11-13 20:51
2013.03.22
Определение границ максимальной плотности точек


4-1251175537
mamedovvms
2009-08-25 08:45
2013.03.22
Не читает вывод из консоли


2-1338803238
rioko
2012-06-04 13:47
2013.03.22
Работа с нетипизированными файлами более 2 гигабайт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский