Haruyuki Mohri

毛利春幸のブログです。

Delphi reintroduce指令

Delphi Reintroduce reintroduce 指令を付けると、既に宣言されている仮想メソッドが隠蔽されるというコンパイラ警告が表示されなくなります。以下に例を示します。 [dcc32 警告] Unit1.pas(11): W1010 メソッド 'Create' で基底型 'TComponent' の仮想メソ…

URLエンコード TURLEncoding

System.NetEncoding.TURLEncoding C++BuilderでURL エンコード 形式でデータをエンコードおよびデコードするメソッドを提供 TURLEncoding は、スペース(プラス記号 + として)と、次の予約された URL エンコード文字のみをサポートします ;:&=+,/?%#[]。 TU…

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

Interbase ODBCドライバダウンロード 28975 Embarcadero InterBase ODBC Driver for Windows, 32-bit and 64-bit 上記からダウンロードできます。 「odbcibinstall.exe」で保存します。 Interbase ODBCドライバインストール odbcibinstall.exeを起動します。…

TIdURI::PathEncode()を使わずエンコーディング

Embarcadero C++Builderは TIdURIにPathEncode()や、URLEncode()など機能があります。 std::ostringstream と GetBytes()を使って同じような実装をしてみました。 #include <sstream> #include <array> #include <functional> const std::string path_encoding(UnicodeString input_, TEn</functional></array></sstream>…

Interbase Generator 応用1

generator一覧を取得 generatorは “RDB$GENERATORS"ここに入っています。 select * from RDB$GENERATORS; この方法でgenerator一覧の取得が可能です。 1つのgeneratorデータを取得 “gen_id([ジェネレータ名],0)"で取得できますが上記のRDB$GENERATORSを使っ…

ANDROID_IDと、identifierForVendorを取得

C++Builderを使用してANDROID_IDとidentifierForVendor(IDFV)を取得を試す。 ID Description ANDROID_ID ANDROID_IDは、Android端末の初期化時にランダムに生成された文字列です。 identifierForVendor(IDFV) identifierForVendor(IDFV)は、iOS UDIDの…

RAD Studio bds.exe オプション

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

Interbase Generator作成と更新

Interbase Generatorの使い方 Interbaseはジェネレータを持っています。 generator 新規作成 create generator sq1 これで"sq1"と言う名称のgeneratorが一つ完成しました。 中身は0が入っています。 generatorの番号セット SET generator sq1 TO 1 “sq1"の中…

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

setIdleTimerDisabled(true)にすればスリープしない C++BuilderでiOSアプリを作成する場合 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { _di_UIApplication app_ = TUIApplication::Wrap(TUIApplication::OCClass->sharedApplication());…

C++Builderでstd::unordered_mapを使う

std::unordered_mapを使う。 先日、「Optimized C++」書籍についてのC++勉強会に参加しました。 その時、std::unordered_mapの議論もありました。 C++Builderでは、std::unordered_mapも使用できます。 刈谷さんがstd::unordered_mapについて詳しくスライド…

Xcode Version 8.3.3 (8E3004b) + PAServer 10.0.1.30

10.2 Tokyo PAServer 10.0.1.30 10.2のHotfix1でPAServer 10.0.1.30にアップデートされています。 デバッグモードでは問題なく使えます。 ですが、Ad hocでは下記のエラーが出ます。 [PAClient Error] Error: E0776 '"/usr/bin/xcrun" -sdk iphoneos Package…

SQLite ローカル時間取得 select datetime('now') as now_

SQLiteで ローカル時間取得 select datetime('now') as now_ これだと日本時間が出ないので select datetime('now', 'localtime') as now_ ‘localtime'を指定すると日本時間で取得できる。

AngularJSとnode.js インストール

RAD Studioロードマップ(2017年5月付)に書いていますが、 10.3 以降のRAD ServerでAngularJSクライアントがサポートされます。 Angular は、JavaScriptで書かれたOpen Sourceのフロントエンド Webフレームワークです。 先日、Angular release is 4.0.され…

git 作成からbrunchも作成してmerge

リモートでリポジトリを作ると git init git add README.md git commit -m "first commit" git remote add origin [リモートURL.git] git push -u origin master リモート側(サーバ)のローカルcloneを作る場合 git clone [リモートURL] ローカルcloneからbra…

Androidでファイルの配置[assets\internal\]

C++Builder でAndroidのファイルを配置する場合 配置指定 配置場所 コード assets\internal\ u"/data/user/0/..[アプリ名]/files/[ファイル名]“ GetDocumentsPath() UnicodeString dbfile_ = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDo…

エラー(アクティブ) E1696 ソース ファイルを開けません "SDKDDKVer.h"

VC2017で Linux環境作った後、WInのコンソールプロジェクトを新たに作ると 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー(アクティブ) E1696 ソース ファイルを開けません "SDKDDKVer.h" test01 c : \vs2017\cpp_win\test01\test01\ta…

C++BuilderでDelphiのジェネリクスCollections TDictionary__2 などを使う場合

C++BuilderでDelphiのジェネリクスCollections TDictionary__2などを使う場合 How to Handle Delphi Generics in C++ - RAD Studio 上記URLにもありますが TList__1<TObject* >*こんなのを作るとilink32, ilink64エラーになります [ilink32 Error] Error: Unresolved e</tobject*>…

How to use TADOQuery* with C++Builder Console

TADOQueryを使うためのヘッダー #include <Data.DB.hpp> #include <Data.Win.ADODB.hpp> インスタンスを作成 int _tmain(int argc, _TCHAR* argv[]) { TADOQuery* a=new TADOQuery(nullptr); } 実行してもリンクエラーになります [ilink64 エラー] Error: Unresolved external 'vtable for Dat</data.win.adodb.hpp></data.db.hpp>…

bcc32c(clang) std::round()でエラー 回避するには

bcc32c(clang) std::round()でエラー bcc32cではstd:: round()下記コードでエラーが出ます(bcc64は問題なし) 10.1 Berlin Update 2でもまだ同じく直ってません several unresolved functions declared in <math.h> unsigned int float2int(float in) { unsigned int </math.h>…

Visual C++ 2015 cpprestsdkを使ってREST受信

Visual C++ 2015 cpprestsdkを使ってREST受信する マイクロソフトさんがgithubで公開しているREST SDKです github.com/Microsoft/cpprestsdk NuGetからcpprestsdkが取れます How to use the C Rest SDK NuGet package · Microsoft/cpprestsdk Wiki · GitHub …

std::wstring to byte[]

VC++2015の場合 #include "stdafx.h" #include <string> #include <iostream> #include <memory> #include <sstream> #include <locale> using Byte = char; using PByte = std::shared_ptr<Byte>; PByte WstrToChar(std::wstring& s1) { unsigned int iLength = s1.length() * 2 + 1; PByte result_{new Byte[</byte></locale></sstream></memory></iostream></string>…

Using The FireMonkey Save State(OnSaveState) , TFileStream and TBinaryReader, TBinaryWriter

The FireMonkey TForm OnSaveState events is implemented. http://docwiki.embarcadero.com/RADStudio/Berlin/en/FireMonkey_Save_State OnSaveState is a TForm of events. OnSaveState is very useful in mobile. It is, because generated at the time o…

Berlin C++11 lambdaでstd::function<>とTFunc<>両方使う方法

std::function<>とTFunc<>両方を同じ関数でセットできるようにする。 std::function<>用 #include <functional> template<typename T, bool=true > int __fastcall func2(T fn1, int i1, int i2) { return fn1(i1, i2); } TFunc<>用 template<typename T, bool=false> int __fastcall func2(_di_TFunc__3<int, int, int > fn1, int i1, int</int,></typename></typename></functional>…

Let template of TNotifyEvent<TObject* >

TNotifyEvent is without the need for templates. Because the event template unaware. typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender); OK remain now. Making a template with TNotifyEvent TNotifyEvent is set to TNoti…

10.1 Berlin WebBroker 文字列をSJISにする

10.1 Berlin WebBroker TWebResponse いつからなのかWebBrokerのTWebResponse.Contentを返すとUTF8になっている。 Response.Content := '文字列' SJISで返す簡単な方法 昔からのインターフェイスでSJISを返したい場合 {Delphiの場合} Response.ContentStream…

TJSONObject::ParseJSONValue()で文字列からTJSONArrayにする

TJSONObject::ParseJSONValue() 文字列をTJSONObjectなどに変換してくれる。 TJSONArrayにも変換可能。 JSONファイル //こんなJSONがあったとして UnicodeString us = L"[{\"Key\":\"00\",\"n\":\"会社名\"},{\"Key\":\"01\",\"n\":\"ABC社\"}]"; Delphiの場…

TNetHTTPClient, TNetHTTPRequest Post

TNetHTTPClient, TNetHTTPRequest Post dfmファイル object Form1: TForm1 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = Fals…

phpで(TSV)タブ区切りファイルを読む

入力タブ区切りファイル a \t b \t c \t d phpコード eof()) { $line_= $file_->fgetcsv("\t"); if (! empty($line_[0])) { echo $line_[0]; echo $line_[1]; echo $line_[2]; echo $line_[3] . "\n"; } } ?>

Amazon Linux(EC2)のUTC時間を日本時間(JST)に変更

zoneinfo/Japanファイルをlocaltimeにコピーする mv /etc/localtime /etc/localtime.1 cp /usr/share/zoneinfo/Japan /etc/localtime これで再起動しなくても日本時間(JST)になりました

Ubuntu 15.10に Firebird-3.0.0をインストール

Firebird-3.0ダウンロード先 firebirdsql.org/ #Firebird-3.0.0.32483-0.amd64.tar.gzをダウンロードする wget https://sourceforge.net/projects/firebird/files/firebird-linux-amd64/3.0-Release/Firebird-3.0.0.32483-0.amd64.tar.gz Firebird-3.0.0.324…

REST response is JSON. Convert it to TSV.

JSON to TSV

Android How to get current ipaddress, submask and gateway. C++Builder

Original information site. Embarcadero Discussion Forums: Delphi XE5 - JWiFiManager Interface ... stackoverflow.com The source of stackoverflow.com, as it is hpp file conversion. Opening the option setting of the project. Status access Wi-…

iOS Custom URL Schemes

Create a custom URL schema for own iOS app. 1. Writing in info.plist. <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array> <key>CFBundleURLName</key> <string>CURLSchema</string> </dict> </array> iosdevelopertips.com qiita.com 2. C++Builder …

How to use the UIButton 10 Seattle(iOS)

It is possible to display a UIButton(iOS) in C++Builder. developer.apple.com sharedApplication()の中の、_di_NSArray __cdecl windows() windows will have in the NSArray in sharedApplication. When taking out a single object in this is UIWindo…

TAlphaColor to UIColor(iOS) Converter

UIColor is the color object for iOS. C++Builder use TAlphaColor.It must be converted. TAlphaColor to UIColor Converter. Make the function #include <iOSapi.UIKit.hpp> //This Convert from TAlphaColor to UIColor _di_UIColor AlphaColorToUIColor(TAlphaColor&& co</iosapi.uikit.hpp>…

NSMutableDictionaryを10Seattleで使う。

mojelder.hatenablog.com 前回NSMutableArrayを使ったコードでオブジェクトをNSMutableDictionaryでラップする。 void __fastcall TForm1::Button1Click(TObject *Sender) { _di_NSMutableDictionary dic = TNSMutableDictionary::Create(); dic->setObject(…

Try NSMutableArray using 10Seattle

the NSMutableArray of iOS I use in C++Builder 10Seattle. It uses the iOS in C++Builder. NSMutableArray is possible like append or remove objects. A class to a more dynamic process NSArray. include #include <Macapi.ObjectiveC.hpp> #include <Macapi.Helpers.hpp> Two of the included is</macapi.helpers.hpp></macapi.objectivec.hpp>…

C++Builder(iOS9) - Objective-Cのクラスとメソッドを呼び出す

mojelder.hatenablog.com Cocoa Touch Static Libraryの作り方(Objective-C) - (Delphi, C++Builder)Haruyuki Mohri 上記で作成した自作Cocoa Touch Static Library(libMo201601Lib.a)をC++Builderで呼び出す 少しズルい方法ですが 以前に作成したuLib_iOSCl…

Delphi(iOS) - 自作したObjective-Cのクラスとメソッドを呼び出す

Objective-Cで自作したCocoa Touch Static Library(*.a)を呼び出す mojelder.hatenablog.com 前回Cocoa Touch Static Libraryの作り方を記載致しました。 作成した*.aファイルをDelphiから呼ぶ方法です。 1.Delphi Fire Monkeyの新規プロジェクトを作成 TBut…

Cocoa Touch Static Libraryの作り方(Objective-C)

Xcode version7.2を使ってCocoa Touch Static Libraryを作る。 1.File->New->Projectで 「iOS Framework & Library」を選択する "Cocoa Touch Static Library"を選択して"Next" Product Name, Organization Name, Organization Identifierなどを入れて"Next"…

メタプログラミング File Monkey mpl::vectorを使う

boost::mpl を使ってFile MonkeyやVCLのDelphiオブジェクトをメタプログラミング実装する mpl::vector, mpl::at_c, mpl::if_cを使った。 インクルード #include <fmx.h> #pragma hdrstop #include "Unit1.h" //---------------------------------------------------</fmx.h>…

Delphi版 Box2D 2D物理演算エンジン 基礎 入門

qiita.com Delphi XE8 から Box2Dが標準で入っています。 以前までは 下記のブログのように「box2d-delphi」を組込む必要がありました。 Team Japan » C++Builder XE2 - FireMonkey 2D/HDアプリに Box2D を組み込む Team Japan » Delphi XE2 - FireMonkey 2D…

C++Builder 10 Seattleで picojson.h

picojson.hを使ってみました。 kazuho/picojson · GitHub C++BuilderなのでSystem.JSON.TJSONObjectがあるのですが.... "picojson.h"は ヘッダファイルだけなので楽です std::stringしか使えないのですがAnsiStringにコピーして UnicodeStringにしてやりゃUn…

Amazon Kindle ADB 接続 Fireタブレット 8GByte 7インチ

2015年秋にAmazon Kindle Fire 7インチのタブレット が8980円で発売されました。 Amazonプライム会員は 4980円で購入可能です。 www.amazon.co.jp (アフェリのコードは入ってません。) 先日、7インチ FireタブレットをAmazonから4980円で購入 早速ADB接続で…

10 Seattle UnicodeString To std::wstring in Android/iOS

10Seattle Android/iOS String.w_str() is WideChar* typedef UnicodeString String; WideChar is 2Byte. In the case of iOS/Android std::wstring.c_str() is 4byte wchar_t* directly copy not possible to UnicodeString from std::wstring. basic_strin…

TMesh

Reference edn.embarcadero.com edn.embarcadero.com luxidea.net luxidea.net WireFrame Tutorial www.youtube.com

Drawing a line with C++Builder 10Seattle

Drawing a line with 10Seattle FireMonkey. void __fastcall TForm1::FormPaint(TObject *Sender, TCanvas *Canvas, const TRectF &ARect) { Canvas->BeginScene(); Canvas->Clear(0xFFF0F0F0); TPointF startp = TPointF(0,this->Height/2); TPointF stopp…

C++Builder 10Seattle in bson How to use?

qiita.com I wrote how to use bson in delphi. The following json to bson Converter in C++Builder 10 Seattle. Specification of TBsonWriter has been added from 10 Seattle. So I used the TBsonWriter. void __fastcall TForm1::Button1Click(TObjec…

Implement Parallel::For() in lambda C++Builder 10 Seattle

Last time, Parallel::For() in the lambda is described as impossible. mojelder.hatenablog.com My understanding is, it was insufficient. In DelphiInterface<TProc__1 > , it is possible to cast. TParallel::For(0, 0, 1, (DelphiInterface<TProc__1<int> >)[](int i){} ); B</tproc__1<int></tproc__1>…

Implement Parallel::For() in C++Builder 10 Seattle

New project in Console application. This was parallel processing SQL insert using Parallel::For(). Database using Microsoft SQL Server 2012. Connection with TADOQuery components. C++Builder was using C++11 Win32 compiler. Lambda did not us…