Quantcast
Channel: Tutorial - Embarcadero Community
Viewing all 503 articles
Browse latest View live

C++Builderでstd::unordered_mapを使う[JAPAN]

$
0
0

毛利です。

 

std::unordered_map

先日、「Optimized C++」書籍についてのC++勉強会に参加しました。
その時、std::unordered_mapの議論になりました。
C++Builderでは、std::unordered_mapも使用できます。
 
刈谷さんがstd::unordered_mapについて詳しくスライドを書かれています。
https://www.slideshare.net/kariya_mitsuru/ss-55842496

std::unordered_map はハッシュテーブルで実装されているので
キーの順番などを保持しない場合に有効です。

unordered_map初期化

std::unordered_map<String, TButton*> unordered_map1{
    {"Button_1", new TButton(this)},
    {"Button_2", new TButton(this)},
    {"Button_3", new TButton(this)}
};

“for"文で取得

for (auto b : unordered_map1)
{
    b.second->Name = b.first;
    b.second->Text = b.first;
    int i_{StrToInt(StringReplace(b.first, "Button_", "", TReplaceFlags() << rfReplaceAll) )};
    b.second->Position->X = 10;
    b.second->Position->Y = 10+30*i_;
    b.second->OnClick     = do_add_button;
    this->AddObject(b.second);
}

“at"で取得できます。

void __fastcall TForm1::do_add_button(TObject *Sender)
{
    TButton* b_ = static_cast<TButton*>(Sender);
    UnicodeString s_ = "new" + b_->Name;
    unordered_map1[s_] = new TButton(this);
    unordered_map1[s_]->Position->X = 200;
    unordered_map1[s_]->Position->Y = 40;
    unordered_map1[s_]->Name = s_;
    this->AddObject(unordered_map1[s_] );

}

下記の方法で追記も可能です

///
unordered_map1.emplace("Button_1", new TButton(nullptr));

 


iOSアプリの起動中にスリープさせない方法[JAPAN]

$
0
0

毛利です。

iOSでDelphi/C++Builderで開発したアプリ起動している間、スリープしたくない場合がございます。

setIdleTimerDisabled(true)にすればスリープしません。

C++BuilderでiOSアプリを作成する場合

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    _di_UIApplication app_ = TUIApplication::Wrap(TUIApplication::OCClass->sharedApplication());
    app_->setIdleTimerDisabled(true);
    Application->OnIdle = idolevent;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::idolevent(TObject* Sender_, bool &done_)
{
    Label1->Text =
        "経過時間 " + FormatDateTime("hh:nn:ss", Now()-dt1_) + "\n"
        "今の時間 " + FormatDateTime("yyyy.mm.dd hh:nn:ss", Now());
}

 

経過時間はTApplication.OnIdleで更新しています。

http://docwiki.embarcadero.com/Libraries/Tokyo/ja/FMX.Forms.TIdleEvent

 

 

Introducing the Panthera Project

The Panthera Project – Part 2 – The Presentation Layer Getting Started

Tech Tipp #3: "Delphi Starter" auf "Delphi Professional" Update

$
0
0

Frage: Ich habe zur Zeit eine Delphi Starter Edition installiert. Habe aber eins der zahllosen Angebote von Embarcadero angenommen und habe jetzt eine Seriennummer für die "Professional Edition". Wie kann ich die bestehende Installation zur Pro Edition umwandeln? Reicht es da aus, einfach die Seriennummer auszutauschen?

Antwort: Die Professional Edition hat einige Funktionen mehr, als die Starter Edition (unter anderem: Kommandozeilen-Compiler, die Quelltexte der VCL/FMX, .....). Diese werden bei einer Installation der Starter-Edition nicht auf die Platte geschrieben, so daß diese nachinstalliert werden müssen.

Hier muss man zwei verschiedene Fälle unterscheiden:

Fall 1: Von der ISO installiert

Hier muss man über die Systemsteuerung / Apps und Features gehen und die Installation über ein Upgrade ändern:

Dabei gibt man die Seriennummer der Professional Edition an und registriert diese:

Anschliessend wird man durch die Installation geführt und kann seine neuen Features auswählen:

Das dauert jetzt ein wenig und die Installation ist auf die Professional Edition aktualisiert....

Fall 2: Vom Feature-Installer / ESD installiert

(Installation von "radstudio10_2_esd.exe"; ca 163 MByte groß.... Rest wird aus dem Internet geladen)

Hier geht man folgendermaßen vor: Man geht in die IDE und ruft unter Hilfe | Lizenzmanager... den Lizenzmanager auf. (Wahlweise aus dem \Bin-Verzeichnis den "LicenseManager.exe")

Hier sieht man die normale Seriennummer der Starter-Edition (hier: bewusst ausgewaschen/ge"blurr"ed):

Hier kann man nun eine neue Lizenz eintragen ("Registrieren") und Registriert die Professional Seriennummer:

Danach schliesst man die IDE und startet diese neu!

Anschliessend hat man unter Tools | Plattformen die neuen Möglichkeiten:

Fertig!

[BuyButton Product='Delphi' Caption='Delphi Angebote ']

Interbase Generatorの使い方[JAPAN]

$
0
0

 


Interbaseはジェネレータを持っています。

generator 新規作成

create generator sq1

create generatorで"sq1"と言う名称のgeneratorが一つ完成しました。
中身は0が入っています。

generatorの番号セット

SET generator sq1 TO 1

set generator で“sq1"の中身に1をセットします。

generator呼び出し

generatorは自動インクリメントの代わりにも利用できます。

--こんなテーブルを作ったとして
create table t1(i1 int);

--インサート
insert into t1(i1) values(GEN_ID(sq1,1));

GEN_ID()関数を使うと、t1テーブルに1が追加されて"sq1"も1になります。
再度上記インサート文を入れるとt1テーブルに追記されますが2が入り"sq1"も2になります。
自動インクリメントのような動きが作れます。

他の方法として、ストアドプロシージャ + トリガーでジェネレータを自動インクリメントする方法もあります


http://docwiki.embarcadero.com/InterBase/2017/en/GEN_ID(_)

 

Installing WebBroker projects in Microsoft IIS

$
0
0
Best viewed in full screen mode (1080p)

bds.exe オプション[JAPAN]

$
0
0

 

 

RAD Studio 10.2 Tokyo bds.exe の使用例

コード 内容
bds.exe -ns RAD Studio IDE をスプラッシュ画面を表示せずに起動します。
bds.exe -sd c:\test\source -d c:\test\myprog.exe \mbox{-}td -td および、デバッガ オプション(-d exename)の後ろに指定される他のあらゆる引数は、c:\test\myprog.exe の引数として使用されます。

bds.exe 一般オプション

オプション 説明
-? IDE を起動して、IDE コマンド ライン オプションのオンライン ヘルプを表示します。
– (ハイフン 2 つ) 後続のコマンド ラインを無視します。
-ns スプラッシュ画面を表示しません。 IDE の起動時に、スプラッシュ画面を表示しないようにします。
-np ウェルカム ページを表示しません。 IDE を開始した後に、ウェルカム ページを表示しません。
-p personality 指定された RAD Studio IDE のパーソナリティを開始します。 <パーソナリティ> に指定できる値は次のとおりです。(Delphi, CBuilder)
-r regkey 代替レジストリ キー。 IDE を異なる構成で 2 つ実行できるように、代替の基本レジストリ キーを指定できます。これによって、コンポーネント開発者は、ホスト アプリケーションとして IDE を使用して、設計時にコンポーネントをデバッグできます。開発中のコンポーネント パッケージを読み込もうとして妨げられながら IDE をデバッグする必要はありません。
-cleanregistryide IDE のレジストリ エントリを消去します。 BDS の現在のユーザーのレジストリ キーと、BDS ディレクトリ内の appdata 配下のファイルを削除します。注意: BDS ディレクトリからユーザーのすべてのプロジェクトが失われることになるので、このオプションを付けて BDS を起動する前にプロジェクトをバックアップしてください。IDE のトラブルシューティングを行う場合、これは最後の手段であって、まず先に試すことではありません。

デバッガ オプション

オプション 説明
-attach:%1;%2 デバッグのアタッチを実行します。 %1 はアタッチするプロセスの ID として、%2 はそのプロセスのイベント ID として使用します。attach オプションは手動でも使用できますが、主にジャスト イン タイム デバッグに使用されます。
-d exename 指定された実行可能ファイル(exename)をデバッガに読み込みます。 exename の後ろに指定されたパラメータは、デバッグしているプログラムのパラメータとして使用され、IDE には無視されます。-d と exename の間にスペースを入れられます。

IDE コマンド ライン スイッチとオプション

第34回デベロッパーキャンプスピーカー募集


 


Try to acquire ANDROID_ID and identifierForVendor(IDFV)[JAPAN]

$
0
0

Try to acquire ANDROID_ID and identifierForVendor(IDFV) using C++Builder.

ID Description
ANDROID_ID ANDROID_ID is a character string randomly generated at the time of initialization of Android terminal.
identifierForVendor(IDFV) identifierForVendor(IDFV) is an ID that can be used from iOS 6.0 as an alternative to iOS UDID. In applications with different vendors (developers), different IDs are returned.You can get the same value among multiple applications,It is not guaranteed that different values will return on different terminals.
uGetUuid.hpp
#if defined(_PLAT_IOS)
    #include <Macapi.Helpers.hpp>
    #include <iOSapi.UIKit.hpp>
#elif defined(__ANDROID__)
    #include <Androidapi.Helpers.hpp>
    #include <Androidapi.JNI.Provider.hpp>
#else
    #include <IdIPWatch.hpp>
#endif
struct TGetUUID
{
    static const UnicodeString get_uuid();
};
cpp
const UnicodeString TGetUUID::get_uuid()
{
#if defined(_PLAT_IOS)
    _di_UIDevice device_ = TUIDevice::Wrap(TUIDevice::OCClass->currentDevice());
    return NSStrToStr(device_->identifierForVendor()->UUIDString());
#elif defined(__ANDROID__)
    using namespace Androidapi::Jni::Provider;
    using namespace Androidapi::Helpers;
    return JStringToString(
        TJSettings_Secure::JavaClass->getString(
            SharedActivity()->getContentResolver(),
            TJSettings_Secure::JavaClass->ANDROID_ID
        ));
#else
#endif
}

How to use

In the button click event, return ID to Edit1->Text.

Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Edit1->Text = TGetUUID::get_uuid();
}
//---------------------------------------------------------------------------

The code written in Delphi is the following URL.

https://community.embarcadero.com/answers/device-information

 

I uploaded the JSON viewer made with C++Builder to the Windows store.

ANDROID_IDと、identifierForVendorを取得[JAPAN]

$
0
0

 


 

毛利です。

C++Builderを使用してANDROID_IDとidentifierForVendor(IDFV)を取得を試してみました。

ID Description
ANDROID_ID ANDROID_IDは、Android端末の初期化時にランダムに生成された文字列です。
identifierForVendor(IDFV) identifierForVendor(IDFV)は、iOS UDIDの代替としてiOS 6.0から使用できるIDです。 異なるベンダ(開発者)を持つアプリケーションでは、異なるIDが返されます。複数のアプリケーション間で同じ値を得ることができます。異なる端末で異なる値が返されることは保証されません。
uGetUuid.hpp
#if defined(_PLAT_IOS)
    #include <Macapi.Helpers.hpp>
    #include <iOSapi.UIKit.hpp>
#elif defined(__ANDROID__)
    #include <Androidapi.Helpers.hpp>
    #include <Androidapi.JNI.Provider.hpp>
#else
    #include <IdIPWatch.hpp>
#endif
struct TGetUUID
{
    static const UnicodeString get_uuid();
};
uGetUuid.cpp
const UnicodeString TGetUUID::get_uuid()
{
#if defined(_PLAT_IOS)
    _di_UIDevice device_ = TUIDevice::Wrap(TUIDevice::OCClass->currentDevice());
    return NSStrToStr(device_->identifierForVendor()->UUIDString());
#elif defined(__ANDROID__)
    using namespace Androidapi::Jni::Provider;
    using namespace Androidapi::Helpers;
    return JStringToString(
        TJSettings_Secure::JavaClass->getString(
            SharedActivity()->getContentResolver(),
            TJSettings_Secure::JavaClass->ANDROID_ID
        ));
#else
#endif
}

使い方

In the button click event, return ID to Edit1->Text.

Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Edit1->Text = TGetUUID::get_uuid();
}
//---------------------------------------------------------------------------

Delphiコードは、下記URL.

https://community.embarcadero.com/answers/device-information

Video: Adding InterBase 2017 ToGo to RAD Studio 10.2

$
0
0

InterBase 2017 is now available for installation directly into RAD Studio via GetIt for use in Delphi and C++Builder applications across Windows, macOS, iOS, Android and also for Linux.

While a Linux InterBase Server Edition has been available for many years with InterBase, the introduction of the new Delphi Linux compiler in 10.2 Tokyo has ensured the addition of Linux as a new platform supported by ToGo.

Adding InterBase ToGo to the RAD Studio IDE

To install ToGo, just open GetIt in the RAD Studio IDE, (Tools > GetIt Package Manager) and search for InterBase.

 

From there you can install both the InterBase 2017 Developer Edition server and also the InterBase ToGo libraries.

InterBase Server enables multiple connections to the same database either locally or over a network. InterBase ToGo is a dynamically loaded version of the InterBase engine that runs in process for local connections and data storage or to act as a client driver for a remote conenction.

License and Video

Watch the video and see how to add InterBase ToGo into your Delphi and C++Builder applications.

Click the link here for a free trial license of InterBase ToGo.

If you are new to Database Development, then check out Cary Jensen’s latest FireDAC book that uses InterBase in a lot of the examples.

The post Video: Adding InterBase 2017 ToGo to RAD Studio 10.2 appeared first on Stephen Ball's Technical Blog.

Pictures from Italian Delphi Day last week

$
0
0

Last week I was at a large Italian conference (with almost 100 Delphi developers attending) in my city. I gave a keynote on the status and future of Delphi, and there were many other sessions given by Italian Delphi developers and some international experts (including Stefan, Dmitry, and Yuriy). See the conference site www.delphiday.it for more information and the program.

I was able to meet and talk with many attendees, several of which I've known for years, but I was also happy to find some very young developers in the audience. Here there are a few pictures (some I took and some shared by Paolo Rossi and Marco Breveglieri on social media):

Nice conference. Now I have a fairly long break, I'll be back speaking in public after the summer.

The Panthera Project – Part 3 – The Presentation Layer – Daemonizing

$
0
0
Best viewed in Full Screen (1080p)

Interbase Generator 応用1[JAPAN]

$
0
0

Interbase generator一覧を取得

generatorは “RDB$GENERATORS"ここに入っています。

select * from RDB$GENERATORS;

この方法でgenerator一覧の取得が可能です。

1つのgeneratorデータを取得

gen_id([ジェネレータ名],0)"で取得できますが上記のRDB$GENERATORSを使って取得する事も可能です。 RDB$GENERATORSをselectで呼ぶ事も可能

select gen_id([ジェネレータ名],0) from RDB$DATABASE;
--もしくは
select rdb$generator_id from RDB$GENERATORS
where rdb$generator_name='[ジェネレータ名]';


オラクルの場合DUALが使えるがInterbaseはDUALがありません。
RDB$DATABASEを代用します。

generatorを設定

generatorをセットする場合

SET GENERATOR [ジェネレータ名] TO [セットしたい数字];
--updateで設定する場合
update RDB$GENERATORS set RDB$GENERATOR_ID = 0 where RDB$GENERATOR_NAME = '[ジェネレータ名]';

 


I tried encoding not using TIdURI.

$
0
0

I tried encoding without using TIdURI.
used the std::ostringstream and GetBytes() functions.

enc.cpp
#include <sstream>
#include <array>
#include <functional>
std::string path_encoding(UnicodeString input_, TEncoding* enc_)
{
    std::function<bool(char)> fun1_{[](char c__)->bool{
            std::array<char, 7> arr_={'-', '_', '.', '~', '&', '$', '!'};
            for (auto a_: arr_) {
                if (a_ == c__)
                {
                    return true;
                }
            }
            return false;
        }};
    std::ostringstream out_;

    System::TArray__1<System::Byte> b1{enc_->GetBytes(input_)};
    for (auto bt: b1)
    {
        char c_ = static_cast<char>( bt);
        if ((c_ >= '0' && c_ <= '9') || (c_ >= 'a' && c_ <= 'z') || (c_ >= 'A' && c_ <= 'Z') || fun1_(c_))
        {
            out_ << c_;
        }
        else
        {
            char s1_[4];
            snprintf(s1_, sizeof(s1_), "%%%02x", c_ & 0xff);
            out_ << s1_;
        }
    }
    return out_.str();
}

It was compared with TIdURI::PathEncode.

Unit1.cpp
#include <IdURI.hpp>
#include <assert.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    UnicodeString s_ = path_encoding(Edit1->Text,TEncoding::UTF8).c_str();
    UnicodeString s1_ = TIdURI::PathEncode(Edit1->Text, IndyTextEncoding_UTF8() );

    assert(SameText(s_.UpperCase(), s1_));

    Memo1->Lines->Append(Edit1->Text + "  =  " + s_);
}
//---------------------------------------------------------------------------

I tried some patterns. can’t try everything.

 

Interbase ODBC ドライバインストール方法[JAPAN]

$
0
0

Interbase ODBCドライバダウンロード

28975 Embarcadero InterBase ODBC Driver for Windows, 32-bit and 64-bit


上記からダウンロードできます。
odbcibinstall.exe」で保存します。

 

Interbase ODBCドライバインストー

odbcibinstall.exeを起動します。 



こんな画面が出るので「Next」

 


最後に「Finish」
インストールが完了です。

 

ODBC側でDBの設定


ODBCデータソース画面を開いてデータソース新規作成します。
Interbase ODBC Driverがある事が確認できます。 

 

Data Source 名をつけて、Database項目にInterbaseファイル名(場所)
「Test Connection」すると「Successfull」が出ます。

 

 

エクセルからInterbaseのデータを呼び出す

エクセルを新規で開き、メニューの「データ|その他データソース|Microsoft Queryから」を選択します。

 

先ほど設定したODBC Data Source名を指定します。

 

取得したいテーブルを指定します。

 

抽出条件を設定します。

 

並べ替えなどがあれば設定します。

 

最後に「エクセルにデータを返す」を選択し「完了」ボタンをクリック

 

データのインポートができました。 

 

 

Celebrating 22 Exciting Years of Innovation with Delphi

$
0
0

Delphi was released over 22 years ago in San Francisco. More than two decades later, the Delphi design philosophy remains steadfastly the same: continual innovation and increasing productivity for developers. Throughout its history, Delphi has been one of the most successful development platforms as it continues to navigate a highly competitive space, maintain its essence as a robust integrative toolset, and serve a large community of passionate developers. Deep investments have been made in the product over the years to migrate Delphi from a Windows-centric product to a multi-device development tool supporting the five most popular operating systems: Windows, macOS, iOS, Android, and Linux.

Global Reach

Delphi developers can be found in virtually every corner of the world, and this is why a city moniker designates each of the 10.x versions to celebrate the diverse global reach and significant contributions that Delphi is making today. Since VCL has been the best object-oriented library Windows API wrapping for over 20 years, Seattle was chosen first (to honor the city near Microsoft headquarters). Next, the Berlin release acknowledged the strong developer community and partner network presence that Delphi has -- not only in Germany, but throughout all of Europe. Most recently, the Tokyo release recognizes the proud and growing community in Japan.

Tokyo Release: Running on Linux

Delphi has long had amazing support for multi-tier and server-side development on Windows. The 10.2 Tokyo release extends all of that support to the Linux operating system. This includes support for WebBroker, WebServices, DataSnap, and the new EMS modules for RAD Server. This means that many of your existing RAD Server/Windows server applications will migrate quite easily over to Linux. Only a few changes are necessary in a typical migration, thanks to the cross-platform FireDAC support. FireDAC works on both Windows and Linux to give you unparalleled access to your favorite databases. 

There's more. Gather up all of your Apache or IIS modules, your REST backend services, your Windows services, or any other server-side or console application, and easily migrate those app components from Windows to Linux.

New features continue to drive strong innovation

If you've not taken a close look lately, it's time to reacquaint yourself with the newer release of Delphi and explore some truly amazing features. These are only a few:

Live Preview - Let's say that you're designing an app, and you want to see how it looks on an iOS or Android device. As you work in the Form Designer, simply click a button to see your app in the Live Preview feature of Delphi -- in proper scale and clear definition. There's no need to plug in your device, and you can easily and repeatedly preview the app in either device format as you continue your development work.

App Tethering - Maybe you've built a desktop app, and you're also building a mobile companion app. How should these apps talk to each other? App tethering makes it very easy to connect any app on any platform to an app on any other platform -- including Mac-to-Windows, Android-to-Mac, iOS-to-Windows, and so on.

Parallel Programming Library - High-level, easy usable, and quick parallelization. It's the holy grail, and it's an integral part of Delphi.

Desktop Bridge - Need to get your desktop app into the Windows Store? Simply rebuild, since the Windows Store is available as a build target (just like any other target). No need to mess with the tedium that you may have heard about in other development platforms. We build easy-to-use, straightforward systems. And Delphi is flat-out easy.

Delphi Language Evolution -- Forever Young and Growing

The Delphi language is very powerful. Yet simple, expressive, and easily readable. Excellent for a student and yet solid and robust for the most adept professionals. It is a rich  language that is ready for the future, while retaining its solid roots of the past. The language has a long history, remains dynamic in the present, and we are certain of a brilliant future ahead. Delphi is a multi-faceted language, combining the power of object-oriented programming, advanced support for generic programming, and dynamic constructs-like attributes. And yet, for those who prefer it, full support remains for conventional procedural programming. Delphi is a tool for all trades -- with a variety of compilers and development tools that fully embrace the mobile era.

How broad is the range of the Delphi language? You name it. Desktop apps, client-server applications, massive web server modules, middleware, office automation, apps for the latest phones and tablets, industrial automation systems, and Internet virtual phone networks. These are some of the many real-world uses for Delphi.

The Delphi language, also known as Object Pascal, is a modern type-checked and object-oriented language, featuring single-inheritance and an object reference model (similar to Java and C#). Over the years, the language has grown to include records with methods, operator overloading for records, class data, nested types, sealed classes, final methods, and class helpers.

Beyond the classic OOP features, the Delphi language has gained support for generic data types and collections, anonymous methods (or closures), reflection, and attributes -- along with an extremely rich RTTI and component streaming support architecture. Part of modernizing the language was its transition towards Unicode strings as native types and the use of the ARC (Automatic Reference Counting) memory model on mobile platforms.

In terms of features, the Delphi language has no reason to envy to other more popular programming languages. Delphi is happy retaining its distinctive characteristics, its readability, and its flexibility through such a wide variety of the programming paradigms it supports.

Building a Future Together

Developers are absolutely essential to the future, in which technology will be ever more integral to everything we do. The success of Delphi is largely attributable to its community of passionate developers -- a community that cherishes the elegance and simplicity of the language, but also its ability to create powerful applications with ease and speed.

To learn more about the history of Delphi and today's landscape, read our 55-page booklet at http://online.flowpaper.com/79e6075d/Delphi22Magazine/. Enjoy.

RAD Server and Enterprise Connectors

$
0
0

Connected Systems

Many years ago I was the lead developer for a software development company that was a market leader in the leisure industry. Back in the day, we were using Delphi 3 and then Delphi 5 to create the software. The software was a complete CRM that interfaced with access control systems, card readers, ran in multiple languages, and offered everything from reservation management to debt collection.

So why am I starting my post with this trip into the past? – In short, One thing that was true then is even truer today. The more customers the software won, the more systems we were asked to integrate with: From a finance point alone, customers wanted to consolidate their business accounts into Sage, QuickBooks and the like because they were the best at doing specific accounting jobs. While the software my team wrote managed a large percentage of the daily business, it was part of the mix that made up a customers technological capability/software systems. – No App is an Island!

Working with so many different systems and API’s can be a real handful, different API’s work in different ways which adds testing complexity,  and more skills and knowledge that needs to be learned. If it was working with text files, SOAP (needed to get to Delphi 6 (ok 7)  for that), sockets, or a growing number nowadays via JSON and HTTP, a lot was required to manage and maintain these connections (and develop the new ones each time they were needed).

Being at the heart of the connection!

While connecting to other systems was important, one thing that really establishes a product is what connects to it! One of the biggest boost sales ever received (while I don’t think they really appreciated it at the time) was the development of an external use API into the core system. This for the first time enabled customers to build their own extensions that worked with our software. Rather than limiting the potential for custom development, this added the desire for the customer to build their own applications that became reliant on our systems. Those that built on our frameworks became worth a lot more in the long term value that those that didn’t. But why is that important today?

RAD Server and Enterprise Connectors

This week has seen the launch of a brand new initiative from Embarcadero, who have partnered with CData to provide Enterprise connectivity to 80+ Enterprise applications.

So? I can program an API right…

Well, using FireDAC, these connections are easily added to any application as a database driver (just like connecting to InterBase or Oracle or any other SQL database).  It then manages the magic of converting all API’s into standards base SQL to work with!

That means,

live data at design time, easy configuration of connections (just like any other database) no need to learn multiple API’s… a far simpler development process!

This also means easy access to FireDAC’s core capabilities such as LocalSQL etc.

Enterprise connectors coupled with RAD Server enable developers using RAD Studio, Delphi or C++Builder to build amazing connected middle-tier systems rapidly, that are shared using modern JSON connectivity. With the ability to easily connect to so many different data sources, and make those available via JSON and YAML documentation, you can deliver a single sign-on server with amazing connectivity very rapidly. With API usage analysis built into RAD Server, management of the heart of your customer’s software systems is easy to achieve, making your products an integral part of their future.

Get RAD Server for FREE!

Right now (Until 30th June 2017), a Site license of RAD Server is available free with Architect editions of RAD Studio, Delphi and C++Builder.  To learn more about RAD Server, I suggest checking out RAD Server home page or searching RAD Server on YouTube.

Enterprise Connectors – Beta

The Enterprise connectors beta is now available to those on the latest version of RAD Studio, Delphi or C++Builder. Visit the link here to find out more about the 80+ Enterprise systems included, such as Salesforce.com, SugarCRM, Google Analytics, MailChimp, Microsoft SharePoint, Paypal and Oracle Eloqua spanning Accounting, CRM, Marketing, NoSQL, eCommerce, Social Networking and more.

The post RAD Server and Enterprise Connectors appeared first on Stephen Ball's Technical Blog.

CodeRage 2017: Aufzeichnungen der Zweiten Deutschen CodeRage

$
0
0

Die CodeRageDE (Zweite Deutsche CodeRage) war gestern ein voller Erfolg! Viele Interessante und ausgiebige Vorträge zu den Themen Delphi, C++Builder, modernes C++, TMSPassKit, FireDAC Cached Update, Linux Entwicklung mit Apache, Facebook Login mit Delphi, Neuerungen in 10.2 Tokyo, Komponentenentwicklung, und und und....

Vielen Dank an die Präsentatoren und die Klimaanlage, die es mir persönlich ermöglicht hat, den Tag mit Spaß und Freude zu überleben :-)

Die Playlist findet sich hier (alle Videos)

https://www.youtube.com/playlist?list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62

Hier die einzelnen Sessions zum Direkteinstieg:

  • Neuigkeiten im RAD Studio 10.2 Tokyo


[YoutubeButton url='https://www.youtube.com/watch?v=VpajfILeyiQ&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=1']

  • Implementation des Facebook Login-Verfahrens


    [YoutubeButton url='https://www.youtube.com/watch?v=BssmhrUpqLk&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=2']

  • Linux und Apache 


    [YoutubeButton url='https://www.youtube.com/watch?v=p1ZtLYnErmo&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=3']

  • Vorstellung von TMSPassKit


    [YoutubeButton url='https://www.youtube.com/watch?v=E5eAc-liuiQ&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=4']

  • Komponentenentwicklung


    [YoutubeButton url='https://www.youtube.com/watch?v=Xb3L3g2vtGk&index=5&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62']

  • Modernes C++ und Komponenten, ein einfacher Web- Server


    [YoutubeButton url='https://www.youtube.com/watch?v=JvWSsPjYVeE&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=6']

  • FireDAC Cached Updates


    [YoutubeButton url='https://www.youtube.com/watch?v=7sHUylaWjGo&index=7&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62']

  • Erstellen einer mobilen Anwendung (für Desktop-Entwickler)


    [YoutubeButton url='https://www.youtube.com/watch?v=WhI0BnVI4r4&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62&index=8']

  • Back to C++, Migration zurück zu C++


    [YoutubeButton url='https://www.youtube.com/watch?v=37ZKPfzsUGA&index=9&list=PLFX9xN6sUjILL2dcVDvwlTlAO-DqvgL62']

Viewing all 503 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>