Кто-либо сделал, испытывают с портированием D2007 + приложение TntControls к D2009?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.cashbuddy.paytmcash">

    <!-- Required Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!-- Change package name in below 2 lines of Permissions -->
    <uses-permission android:name="com.droidoxy.easymoneyrewards.permission.C2D_MESSAGE" />
    <permission android:name="com.cashbuddy.paytmcash.permission.C2D_MESSAGE" android:protectionLevel="signature" />

    <application
        android:name="com.cashbuddy.paytmcash.app.App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.cashbuddy.paytmcash.AppActivity"
            android:configChanges="keyboardHidden|orientation"
            android:label="@string/app_name"
            android:theme="@style/AppLTheme"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Registering Additional Activities -->
        <activity android:name="com.cashbuddy.paytmcash.VideosActivity" />
        <activity android:name="com.cashbuddy.paytmcash.RecoveryActivity" />
        <activity android:name="com.cashbuddy.paytmcash.RedeemActivity" />
        <activity android:name="com.cashbuddy.paytmcash.InstructionsActivity" />
        <activity android:name="com.cashbuddy.paytmcash.EarningHistoryActivity" />
        <activity android:name="com.cashbuddy.paytmcash.RedeemHistoryActivity" />
        <activity android:name="com.cashbuddy.paytmcash.AboutActivity" />
        <activity android:name="com.cashbuddy.paytmcash.ReferActivity" />
        <activity android:name="com.cashbuddy.paytmcash.ErrorActivity" />
        <activity android:name="com.cashbuddy.paytmcash.MainActivity" android:theme="@style/AppLTheme" />
        <activity android:name="com.cashbuddy.paytmcash.LoginActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" />
        <activity android:name="com.cashbuddy.paytmcash.SignupActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" />
        <activity android:name="com.cashbuddy.paytmcash.IntroActivity" android:theme="@style/AppTheme.NoActionBar" />


        <!-- The Finest Artist Activities -->
        <activity android:name="com.thefinestartist.ytpa.YouTubePlayerActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="sensor" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
        <meta-data android:name="com.thefinestartist.ytpa.YouTubePlayerActivity.ApiKey" android:value="AIzaSyAOfxiG4aV66h3XmssCEkP3qCvCqMbDGDI" />


        <!-- StartApp Components -->

        <activity
            android:name="com.startapp.android.publish.ads.list3d.List3DActivity"
            android:theme="@android:style/Theme" />
        <activity
            android:name="com.startapp.android.publish.adsCommon.activities.OverlayActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent" />
        <activity
            android:name="com.startapp.android.publish.adsCommon.activities.FullScreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme" />
        <service android:name="com.startapp.android.publish.common.metaData.PeriodicMetaDataService" />
        <service android:name="com.startapp.android.publish.common.metaData.InfoEventService" />
        <receiver android:name="com.startapp.android.publish.common.metaData.BootCompleteListener" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <!-- End of StartApp activities integration -->

        <!-- Component that firebase needs -->
        <service android:name="com.cashbuddy.paytmcash.MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name="com.cashbuddy.paytmcash.MyFirebaseInstanceIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>

        <!-- the libraries that google play service configuration need to use -->
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
        <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="[ADMOB_APP_ID]"/>
    </application>
</manifest>
5
задан Rohit Gupta 16 May 2015 в 19:54
поделиться

4 ответа

Я могу помочь с частью этого, поскольку я портирую Разработчика C++ приложение, которое использует TNT с 2007 до 2009. Переключатель к Unicode в D2009 является запоздалым и приветствуется. Однако неудачно, что переход, вероятно, легче для тех, кто имеет Не нужный unicode в прошлом и вероятно все еще не делает. Если, как я, Вы нуждались в Unicode и использовали большое управление TNT Troy Wolbrink для обеспечения его, у Вас есть скорее более сложное задание...

Хорошие новости - то, что существует новая версия TNTControls из программного обеспечения TMS, которое поддерживает D2009. Я не посмотрел на это, но ожидаю, что это - просто слой 'фасада' по собственным компонентам VCL для упрощения мобильности. Я полагал бы это, если Ваши другие библиотеки могут быть восстановлены для использования его.

Однако можно лучше возвращаться к собственным средствам управления VCL, и причиной являются строковые типы. Управление TNT всегда использовало WideString для передачи строк Unicode назад и вперед, и Вы можете сделать, чтобы WideString использовал рассеянный через Ваш собственный код. Это будет работать, но это не идеально, поскольку WideString должен действительно просто использоваться для взаимодействующего с COM, поскольку это 'переносит' тип COM BSTR. Собственные строки unicode в D2009 считаются на ссылку и должны быть значительно быстрее.

Если Вы действительно решаете заменить компоненты TNT собственными VCL, можно использовать команду "Replace Components" GExperts - или, возможно, легче, сделать поиск и замену в.DFM и.PAS файлах (который Вы ДЕЙСТВИТЕЛЬНО имеете в текстовой форме, делаете не Вас) заменять TTNT T.

4
ответ дан 18 December 2019 в 14:52
поделиться

Установка GExperts; существует "Компонент замены" дополнение IDE, которое может помочь преобразованию TTntXXX к средствам управления TXXXX. Попробуйте на этот раз, и если все в порядке просто проверка "Замена везде в проекте".

SpTbx и VirtualTrees могут только быть перекомпилированы - они оба поддержка D2009.

Если бы Вы использовали обертки WinAPI только для вызова API Unicode, то они должны работать в D2009 также.

Это оставляет Вас со средствами управления TntLX (TntLXForms, TntLXRegistry...). Так как они не поддерживаются, может быть это, хорошее время для изменения их так или иначе.

5
ответ дан 18 December 2019 в 14:52
поделиться

Я рекомендую следующие ресурсы:

Глава 3 Руководства Delphi Marco Cantu 2009 года (Портирующий на unicode) http://www.marcocantu.com/dh2009/

Статьи Nick Hodges (Delphi в Мире Unicode) http://blogs.codegear.com/nickhodges/2008/11/20/39149

3
ответ дан 18 December 2019 в 14:52
поделиться

Я думаю так или иначе, что это будет большой работой. Вероятно, больше, чем если бы Вы не сделали всей работы для создания этого unicode совместимый прежде. Я лично забыл бы о средствах управления Unicode TM и вернулся бы к vcl. Это будет экономить больше усилий в будущем. (ничто против тех средств управления, заметьте.)

Также помните, что строка D2009, не то же самое как Widestring D2007, который Вы, несомненно, использовали в своем приложении. Так все экземпляры Widestring, который Вы так старательно изменили от строки (который был AnsiString), потребность возвратиться снова для строкового представления (который является теперь unicodestring).

1
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: