Вероятно многие встречались с таким вот «партизаном» при старте или завершении приложения:


Очень информативное сообщение, сразу понятна причина ошибки, место и способ ее решения 🙂
Впрочем, если

http://alexander-bagel.blogspot.com/2014/01/217.html

Tap-Tap on Google Play

Ура! Конкурс завершён, поздравляю победителей с победой!

Обещанный нехус 7 в оригинальной футболке приехал прямо ко мне домой курьерской доставкой. Достойный приз требует достойного завершения, а именно – размещения конкурсной программы в Google Play.

Ниже я опишу, что для этого мне потребовалось сделать.

Итак, прежде чем разместить приложение в Google Play, его необходимо специальным образом подготовить. Это самое неочевидное (для меня) действие, хотя делается всё очень просто.

Открываем проект в Delphi, затем выбираем Project Options –> Provisioning. Далее выбираем цель Target: Release configuration — Android platform и тип сборки Build Type: Android Store. Далее жамкаем кнопку New Keystore… и следуем указаниям мастера (придумываем имя для файла, пароли и алиасы). Мастер сгенерит цифровую подпись, без которой Google Play не примет apk-файл, ругнувшись на то, что “Архив APK-файла не оптимизирован”. У меня выглядит это так:

image

Затем необходимо выбрать (т.е. активировать в Project Manager’е) необходимую конфигурацию сборки. Это делается в три двойных клика по выделенным на картинке ниже строкам:

image

Если не выбрать Application Store, то Google Play ругнётся, мол необходимо удалить отладочную информацию из APK-файла.

Теперь делаем Project Build XXX и сразу Project Deploy libXXX.so (где XXX – это имя проекта). После этого, APK-файл готов для размещения в Google Play и находится в каталоге …AndroidReleaseXXXbin.

 

Следующий шаг – это регистрация аккаунта разработчика в Google Play. Для этого надо перейти в Google Play Developer Console. И теперь самое неприятное – заплатить 25 USD. Честно говоря, я немного поколебался, мол “а надо ли оно мне?”, но потом подумал, что это не такая уж и большая сумма, может быть она себя и не окупит, но по бюджету не ударит.

Ну и далее всё просто, я особо описывать не будут. Потребуют: подготовленный APK-файл, иконку приложения размером 512х512 пикселей и 2 скриншота с реального устройства.

После всех этих процедур мне пообещали, что для скачивания приложение будет доступно через несколько часов. В общем, как только – так сразу, а пока – ждём-с.

 

Ссылка для скачивания (в маркете искать по словам “nikolay zverev”).

Читать на сайте автора.

4. Свойства и методы формы. Лабораторные С++ (1)

Основные свойства формы в C++Builder

Здесь мы повторим все действия с проектом, которые выполняли для Delphi. Отличие от предыдущего проекта только в написании кодов для C++.

Запустите на выполнение C++Builder XE3. Создайте новый проект, выбрав в меню File | New | VCL Forms Application – C++Builder. Появится форма нового проекта.
Положите на форму с вкладки Standard палитры инструментов Tool Palette компонент ввода текста Edit и кнопку Button. Кнопке задайте надпись (свойство Caption) Заголовок. Форма примет следующий вид.







Дважды щелкните мышью по кнопке Заголовок или, выделив мышью эту кнопку, перейдите в окне Object Inspector на вкладку Events (события) и дважды щелкните мышью справа от события OnClick (событие, возникающее при щелчке пользователем мышью по кнопке). Откроется вкладка редактирования текста Unit1и появится заготовка для обработчика события щелчка по кнопке:
void __fastcall TForm1::Button1Click(TObject *Sender)

{

}

Введите оператор, помещающий в заголовок формы текст, набранный пользователем в поле ввода Edit:
void __fastcall TForm1::Button1Click(TObject *Sender)

{

  this->Caption = Edit1->Text;

}

Ключевое слово this, означающее, что свойство относится к текущей форме, можно опустить.
Запустите программу на выполнение. Введите произвольный текст в Edit1. Щелкните по кнопке Заголовок. В заголовке формы появится набранный вами текст.
Форму можно закрыть, выбрав в системном меню формы вариант Закрыть, нажав клавиши Alt+F4, щелкнув мышью по кнопке закрытия в заголовке формы. Можно также закрыть форму программным способом, используя метод формы Close().
Положите на форму еще одну кнопку Button. Присвойте кнопке текст Закрыть. Форма примет вид, как показано на следующем рисунке.







Для этой кнопки напишите обработчик события щелчка мышью, при котором происходит закрытие формы и завершение работы программы.
void __fastcall TForm1::Button2Click(TObject *Sender)

{

  Close();

}

Поскольку закрывается главная форма программы, происходит завершение работы всего приложения. Чтобы выполнить завершение работы программы из любой формы, нужно вызвать метод Terminate() объекта Application:
Application->Terminate();

Свойство Iconпозволяет задать для формы пиктограмму, помещаемую в левый верхний угол заголовка формы. Если это свойство не задано, то у формы присутствует иконка по умолчанию.
Выделите в свойствах формы строку Icon, щелкните мышью справа от значения этого свойства по кнопке с многоточием. Появится окно изменения изображения:











Щелкните по кнопке Load. Появится диалоговое окно открытия файла. Откройте на компьютере файл с расширением ico.
Щелкните по кнопке OK. Иконка будет помещена в заголовок формы.
Чтобы удалить из формы заданную иконку и вернуть иконку по умолчанию, нужно справа от свойства формы Icon выделить мышью сам текст (Icon) и нажать клавишу Del (удалить). Для удаления иконки можно также вызвать окно изменения изображения и щелкнуть в нем по кнопке Clear(очистить).
Свойство WindowState задает вид формы при ее первоначальном запуске:

Читать на сайте автора.