Свершилось. Наконец-то я стал владельцем Android устройства в виде телефона Lenovo S750. И конечно же став им, решил попробовать написать свое первое приложение под новую платформу.
Итак прежде чем начать писать я столкнулся с тем, что мое устройство с 4'5 дюймовым экраном отсутствует в формах доступных устройств, я имею ввиду в выпадающем списке где выбираются для формы разрешение и внешний вид Android устройства. Ничего страшного - решил я, нарисую форму своего телефона в дизайнере мобильных устройств, заодно проставлю размеры разрешения экрана- так думал я входя в Tools - Options - Form Designer - Device Manager.
Первый блин вышел комом, несмотря на то, что Lenovo S750 имеет разрешение экрана 450*960 пикселей, форма выставленная с такими размерами в дизайнере почему то не помещалась в экран. То есть ставя кнопку например длиной 400 пикселей, часть кнопки осталась за пределами экрана. Странно, подумал я, какое же разрешение у Screen в Firemonkey на этом устройстве. И набросав простейший код, выводящий свойства Height и Width я узнал что почему то FM определяет область экрана как 360*640 пикселей. Интересная особенность FM, но делать нечего подправил в дизайнере проект под выданные FM цифры, загрузил шаблон телефона и получил вот такой вид:
Далее, попробовал сделать простейший проект по расчету кубатур досок (отголоски дачной жизни, часто ездя на базы пиломатериалов считал вручную, что не всегда было удобно)
создал такой мобильный проект, выбрав в списке устройств свою новую созданную модель.
Вообщем, запуск на живом устройстве прошел на ура.
В принципе я доволен, хотя так и не понял почему Screen выдает разрешение в 360*640 пикселей. И можно ли это поправить. Потому как реально места на экране маловато.
Итак прежде чем начать писать я столкнулся с тем, что мое устройство с 4'5 дюймовым экраном отсутствует в формах доступных устройств, я имею ввиду в выпадающем списке где выбираются для формы разрешение и внешний вид Android устройства. Ничего страшного - решил я, нарисую форму своего телефона в дизайнере мобильных устройств, заодно проставлю размеры разрешения экрана- так думал я входя в Tools - Options - Form Designer - Device Manager.
Первый блин вышел комом, несмотря на то, что Lenovo S750 имеет разрешение экрана 450*960 пикселей, форма выставленная с такими размерами в дизайнере почему то не помещалась в экран. То есть ставя кнопку например длиной 400 пикселей, часть кнопки осталась за пределами экрана. Странно, подумал я, какое же разрешение у Screen в Firemonkey на этом устройстве. И набросав простейший код, выводящий свойства Height и Width я узнал что почему то FM определяет область экрана как 360*640 пикселей. Интересная особенность FM, но делать нечего подправил в дизайнере проект под выданные FM цифры, загрузил шаблон телефона и получил вот такой вид:
создал такой мобильный проект, выбрав в списке устройств свою новую созданную модель.
Код, приводить не буду, он простейший, единственная небольшая хитрость заключалась в том, что при открытии числовой клавиатуры приложение не реагировало на клавишу Enter. Для удобства в форму я добавил обработчик который по Enter переходил на следующий контрол.
Код его простейший, может кому и прогодится:
procedure TfrmMail.FormKeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
begin
if Key = vkReturn then
begin
Key := vkTab;
KeyDown(Key, KeyChar, Shift);
end;
end;
Вообщем, запуск на живом устройстве прошел на ура.
В принципе я доволен, хотя так и не понял почему Screen выдает разрешение в 360*640 пикселей. И можно ли это поправить. Потому как реально места на экране маловато.
Не пишите десктопных приложений для смартфонов!
ОтветитьУдалитьДля мобильных приложений нужен совсем другой подход к интерфейсу со значительно меньшей плотностью контролов. То, что у вас на скриншоте, нужно было разбить на несколько закладок.
>> Torbins
ОтветитьУдалитьПочему, мне так удобнее, все в одном месте. Тем более приложение простейшее и смысл городить несколько форм, для разбивки контролов. Тут ввел данные и посчитал. Единственное что можно сделать прокрутку и увеличить контролы. Но честно - пока без надобности.
Та же фигня с разрешением :(
ОтветитьУдалитьУ мня китаец, 540х960, навскидку в инетах решения не нашёл
>>Не пишите десктопных приложений для смартфонов!
ОтветитьУдалитьИменно. LitsBox/ListView.
+ кнопка "Рассчитать" лишняя :)
как только полнота введённых данных достигнута - автоматический расчет.
Собственно, и для десктопа кнопка "рассчитать" тоже лишняя. Если интерфейс "умный".
Но автору поста - респект! А "советы" - из желания улучшить. Хочется увидеть "расчет кубатуры" второй версии с чисто-мобильным интерфейсом.
Ну и отдельный респект автору за смелость. Как-то все втихую пробуют, а показать боятся.
Готов посодействовать 3D-визуалиации досково-закрываемой поверхности.