Embarcaderoが出したモバイルアプリ開発への解とは ──モバイルアプリ開発に注力する理由を教えてください。 de la Lama:今やモバイルが主流だからです。多くの企業が、「モバイルファースト戦略」を採っています。世界が劇的に変わっているのですから、ツールも変わらなければいけません。 世界中にあるクライアントの台数を見てみましょう。Windowsが10億台、Macが6500万台の規模なのに対して、モバイルは10億台、そしてWebは20億クライアントという規模です。今後も、ダイバーシティ(多様性)が強まる傾向が続くでしょう。開発者にとってもマルチデバイス対応は急務です。 ──Embarcaderoは、マルチデバイス対応について、どのような特色を打ち出そうとしているのですか。 de la Lama:私たちの狙いは、「ラピッド(迅速)なマルチデバイス開発」です。 マルチデバイス開発では
-- けっこうアタマに来ているのは、Copy/Delete/Insertで、そもそもこんな汎用的で目的が特定できない名称ではヘルプ検索すら一苦労なのだが、Copyが関数で、InsertとDeleteがプロシージャって、どういうこと?全部関数でいいじゃん!紛らわしくてしょうがない。しかも、Copyのプロシージャ版であるSubStrまであるって、どうなってんの?おまけに、DeleteとInsertの引数の順番が不統一だし…[元文字列、開始点、操作対象(文字数/文字列)]に統一しろよ! 文字コード関数 Chr(n) 文字コードnの文字 c:=Chr(9) //cはタブ文字 Ord(c) 文字cの文字コード n:=Ord('A') //nは65になる ※Ordは文字コードだけでなく、任意の列挙型変数に対して使用できる ※Sibylのhelpには「Write(Chr(#9));」というサンプルコード
program test1_no; {$APPTYPE CONSOLE} uses SysUtils; typeITest = interface procedure Print; end; TTest = class(TInterfacedObject,ITest) procedure Print; destructor Destroy; override; end; { TTest } destructor TTest.Destroy; begin Writeln('Destroy!!!!'); inherited; end; procedure TTest.Print; begin Writeln('Hello!!'); end; procedure CallPrint(Test:ITest); begin Test.Print; end; procedure Main();
bregonig.dll 2008/10/12 更新 ダウンロード bron144.lzh (198,956bytes) : 通常版(正式公開版) bron200beta10.lzh (222,035bytes) : Unicode 対応版(テスト版) bregonig.dll について bregonig.dll Ver.1.44 Copyright (C) 2006-2008 K.Takata 1.概要 Tatsuo Baba氏による正規表現ライブラリである Bregexp.dll (*1) 互換 の正規表現ライブラリです。Windows アプリでPerl 互換の正規表現が使え るようになります。 正規表現エンジンとして鬼車 (Oniguruma) (*2) を採用することにより、 オリジナルの Bregexp.dll よりも高度な正規表現を使用できるようになっ
var s: string; for s in ['a', 'b'] do ... ふと何気なくこのようなコードを書いたら構文チェックが通ったので、「あれ?これ何気に便利じゃね?」と思ったら致命的エラーとやらでコンパイルは通らず。がっかり。 でももしやと思い次のようなコードを試してみるとコンパイル成功。 var i: Integer; for i in [2..16] do ... どうやらブラケット([と])は配列コンストラクタではなく、 if value in [hoge, huga] then ... このような集合型の定義として機能してるみたい。なので必然的に扱える数は255以下に制限されるけど、逆に言えば次のようなコードが書けるということに。 for i in [2,8,9] do Writeln(i); > 2 > 8 > 9 さらにfor-in-doが列挙できるのは集合型以外
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
ソフトウェアを日本語や英語など、さまざまな言語に対応させたいことがあると思います。 DelphiにはITE(Integrated Translation Environment;統合翻訳環境)がありますが、今回は一般的なgettextを使って国際化してみます。 http://dybdahl.dk/dxgettext/ ライセンスはGPLではなくBSDライクのもののようです。 ダウンロードページからインストーラをダウンロードして実行し、指示に従ってインストールを行います。 インストールを行うと、.poと.moファイルの関連付けが行われます。 また、いくつかの翻訳作業に役に立つコマンドツールもインストールされます。 poファイルの編集ツールとしてPoedit - Gettext Translations Editorもインストールしておくと良いでしょう。 今回作成したサンプルは下記のようなディ

本来同名で複数定義することのできないプロパティを、default指定した場合に限りオーバーロードできちゃう、という小ネタ。 type TFoo = class private function GetItem(Index: Integer): string; overload; function GetItem(const Name: string): string; overload; public propertyItems[Index: Integer]: string read GetItem; default; propertyItems[const Name: string]: string read GetItem; default; end; 上のように定義しておくと、こんな風に使える。 var foo: TFoo; s: string; begin foo := TF
ジェネリックス:インデックス への移動 制約は、ジェネリック型の型パラメータに関連付けできます。制約は、ジェネリック型の構文のパラメータに渡される特定の型がサポートしなければならない項目を宣言します。 制約のあるジェネリック型の指定 制約項目には以下のものが含まれます。 0、1、または複数のインターフェイス型 0 または 1 のクラス型 予約語 "constructor"、"class"、または "record" 1 つの制約について "constructor" と "class" の両方を指定できます。 これに対し、"record" は他の予約語と組み合わせできません。 複数の制約は、積("AND")として作用します。 制約はすべての形式のジェネリック型に適用されます。ここの例ではクラス型のみを示します。 制約の宣言 制約の宣言は、通常のパラメータ リストの型宣言に類似しています。
Delphi Tips - マルチスレッドアプリケーション 概要: Delphi Tips - マルチスレッドアプリケーション Delphi 2.0J/3.1Jには、Win32でサポートされているマルチスレッドアプリケーションを簡単に作成することのできる、TThreadオブジェクトが用意されています。ここでは、Delphi 2.0J/3.1Jでのマルチスレッドの使い方を説明します。 1. TThread プログラムは、メモリ上にロードされ、ひとつの「プロセス」として実行されます。プロセスは、ひとつのスレッドから起動しますが、ひとつのプロセスから、複数のスレッドを生成することもできます。ひとつのプロセスは、ひとつの仮想アドレス空間を持ちます。 「スレッド」とは、プログラムの一部の実行単位です。スレッドは、 オペレーティングシステムがCPU時間を割り当てるときの基本単位です。ひとつのプロセスの
onig.dllの使い方 Delphi から鬼車を動的リンクで使用する方法です。鬼車の作者である K.Kosako 氏は無関係ですので、作者に迷惑をかけないようにしてください。また、技術的に間違いがある場合は修正したいので教えてください。なお、例は BDS2006 の Delphi for Win32 で作っていますが、多分 Delphi4 以降でも動くと思います。 Delphi4 では[致命的エラー] Oniguruma.pas(38): 行が長すぎます (最大 1023 文字)というエラーがでました。また、C++Builder5 でもエラーとなると報告を受けました。Delphi6、C++Builder6 以降で動くことを確認しました。オリジナルな DLL は配布されていないため、すぐ試す事ができるように VC++ 2005 Express Edition でビルドした DLL を置いと
スレッドの調整:インデックス への移動 オブジェクトに組み込みのロック機能がない場合は,クリティカルセクションを使用できます。クリティカルセクションは,一度に 1 つのスレッドだけが入れるゲートのような役割を果たします。クリティカルセクションを使用するには,System.SyncObjs.TCriticalSection のグローバルインスタンスを作成します。System.SyncObjs.TCriticalSection には,Acquire(ほかのスレッドがセクションを実行するのを防ぐ)と Release(ブロックを取り除く)の 2 つのメソッドがあります。 各クリティカルセクションは,保護する対象のグローバルメモリと関連付けられています。それらのグローバルメモリにアクセスする各スレッドは,最初に Acquire メソッドを使用して,ほかのスレッドがそれを使用していないことを確認する必
ルーチンにinline指令を指定できるようになりました。 これは、コンパイラに対して、そのルーチンを実際に呼び出す代わりに、呼び出し側にそのルーチンを含むコードを出力するよう指示します。 Delphiでは、いくつかの関数または演算子をレコード宣言内でオーバーロードできます。 TMyClass = record class operator Add(a, b: TMyClass): TMyClass; // Addition of two operands of type TMyClass class operator Subtract(a, b: TMyClass): TMyclass; // Subtraction of type TMyClass class operator Implicit(a: Integer): TMyClass; // Implicit conversion
この記事はcluster Advent Calendar 2019 24日目の記事です。 昨日はなんで屋さんによる「clusterをやったら友達が増えた話」でした。そうなんです、clusterをやると友達が増えるんです。皆さんclusterやりましょう。 お前 is 何 こんにちは、スワンマンです。クラスター株式会社でカスタマーサポートとかTwitterの中の人とかQAとかスワンマンとかを担当しております。 私がクラスターに入社した経緯などはこの辺を見ていただくとして、簡単に言うと元々clusterのヘビーユーザーでした。こんなアバターで参加したものだから、clusterにBAN機能を導入しようか本気で検討されたというのは入社後に聞いた話です。 2D勢はclusterが使えない? clusterは3Dアバターを用いてイベントを行うツールなので、2D勢の方からすると無縁のサービスに思えちゃい

CoodGearさんおよびDelphiに関することを 適当に書きます。 News Sourceのほとんどを他のブログに依存している他力本願ブログです。 Delphi2010で追加されたIOUtilsユニットを使ってファイルリスト (正確にはファイル名のリスト)を取得するだけであれば、 TDirectory.GetFilesメソッドで簡単に取得できます。 Delphi Prism(.Net版)とほぼ同じ形でかけます。 GetFilesメソッドはいくつかOverLoadの定義がありますが、 今回は、 function GetFiles(const Path: string; const SearchPattern: string; const SearchOption: TSearchOption): TStringDynArray; overload; static; を使用した簡単なサンプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く