タグ

ブックマーク / lyna.hateblo.jp (8)

  • Delphinusパッケージマネージャの紹介。 - Swanman's Horizon

    パッケージマネージャとはなんぞや Delphiは数多くのパッケージの集合で成り立っています。パッケージには製品体に元々付属しているもの以外に企業や個人が作った追加パッケージがあり、この追加パッケージを簡単に導入できるようにするのがパッケージマネージャです。 Delphinusとはなんぞや Delphinusはパッケージマネージャのひとつで、Embarcadero公式のGetItパッケージマネージャと違い、申請不要で誰でも自作のパッケージを公開することができます。というのも、Delphinusは自前のサーバを持たず、ファイルの管理は全てGitHubに任せています。そのGitHubの検索APIを使い、特定の条件に合致したプロジェクトをパッケージとしてリストアップし、インストールできるようになっています。そのため、GitHubでソースコードを公開すれば誰でもパッケージを公開することができるとい

    Delphinusパッケージマネージャの紹介。 - Swanman's Horizon
  • ジェネリック関数を作る。 - Swanman's Horizon

    作る(作れるとは言ってない) 現在のDelphiの仕様では、ジェネリクスを使用した処理を記述しようとした場合、クラス単位、あるいはクラスに属するメソッド単位でしか使用することはできません。つまり、ジェネリック手続きやジェネリック関数は作ることができません。 先日発表されたロードマップでは、Delphi 10.3において言語仕様の拡張が明記され、今後使えるようになる可能性は少しだけ見えてきました。しかし、例えば文字列を列挙型に変換する以下のような関数は今はまだ作ることができません。 program GenericFunction; uses Unit1; type TNumber = (One, Two, Three); var num: TNumber; begin num := StrToEnum<TNumber>('Two'); end. 作る(作れないとも言ってない) しかし上記のコ

    ジェネリック関数を作る。 - Swanman's Horizon
  • Delphiプログラマを見分ける10の質問。 - 全力わはー

    16/07/20追記 真っ当な設計をしてたら出会わない挙動が多く、ネタとしてわざと難しい質問にしてるので、間違ったら恥ずかしいなんて躊躇せず、ぜひとも勢いよく突っ込んで爆発四散してください! はじめに ものすごーく前に「○○プログラマを見分ける10の質問」みたいなのが流行った時に質問を数個考えてそのまま放置してたメモを発掘したんですが、せっかくなので残りを適当に考えて10個用意してみたので我こそはという方は挑戦してみてください>< なお、質問のほとんどがネタ要素であり、知らなくても問題ない、僕の勘違いが多分に含まれる、答えがひとつじゃない、等々あると思いますが、あくまでもネタであるということを念頭にお付き合いいただき、ついでに勘違い部分に関しては正しいツッコミを入れてもらえると嬉しいです。 10の質問 「const」と「var、out」の違いを参照という観点でひとつ挙げよ。またその違いを無

    Delphiプログラマを見分ける10の質問。 - 全力わはー
  • 外部DLL関数をクラスメソッド化する。 - Swanman's Horizon

    これもAdvent Calendarネタにしようと思ってたけど、間に合わなかったので放出。 メンバーにしたい! 外部DLLから関数をインポートすると、どうしてもユニットの直下に宣言することになります。クラスのメンバーにすることはできません。 それでもしたいとなると、こういうコードを書くことになります。 interface type TWin32API = class public class function MessageBox(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; static; inline; end; implementation function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer;

    外部DLL関数をクラスメソッド化する。 - Swanman's Horizon
  • VCLアプリで新規フォームのデフォルトフォントをあらかじめ設定する。 - Swanman's Horizon

    こういうのあるならね、環境設定から弄らせろと。何のための設定だよと。 あと公式ブログも、日語の音声も字幕も一切付ける気のない全編英語の動画記事にちょろっと日語書き足して紹介するくらいなら、こういうの翻訳して載せてくれた方がみんな嬉しいと思うの>< あ、実はすでにやってて僕が気付いてないだけとかだったら全力で土下座しますんで!!(申し訳程度のブーメラン対策) やり方 なんてことは無いです。レジストリに書き加えるだけです。キーは例えばXE4なら*1以下の通り。 HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\FormDesign ここに文字列として「DefaultFont」というのを作って、値として「フォント名,サイズ」を書き込んでやればいいだけ。 9/1追記 パス間違ってたので直しました>< 注意点 スペースを区切りとして扱ってしまうような

    VCLアプリで新規フォームのデフォルトフォントをあらかじめ設定する。 - Swanman's Horizon
  • TMessageManagerってこんなの。 - Swanman's Horizon

    あっとうてきなどきゅめんとぶそく\(^o^)/ TMessageManagerとはなんぞや TMessageManagerは、FMX.Messagesユニット内にある200行足らずの小さなクラスで、FireMonkey内における簡単なメッセージング機構を提供しているようです(推測) 使い方は簡単で、 TMessageクラスを継承したメッセージクラスを作る TMessageManager.DefaultManager.SubscribeToMessageでハンドラを登録 TMessageManager.DefaultManager.SendMessageでメッセージを送る といった感じです。 1.TMessageを継承したメッセージクラスを作る TMessage自体は「TMessage = class abstract end;」だけの中身の無いクラスです。 単純にタイミングだけを伝えたい場

    TMessageManagerってこんなの。 - Swanman's Horizon
  • 関数ポインタとメソッドポインタの相互代入のおはなし。 - Swanman's Horizon

    この記事はDelphi Advent Calendar 2012の参加記事です。今日で5日目! はい、まさかの1年ぶりの更新です。 基的にここは「Delphiそのものを触るのが楽しい!」という時にしか更新する気が起きないので、 早く楽しくなるような新しい言語機能がたくさん搭載されたDelphiが出るといいなぁ(チラッ 関数・手続きとメソッドの違い 関数・手続きとメソッドは、ぱっと見ただけではクラスに属するか否かの違いしかないです。 だけど機能的には大きな違いがあって、例えば関数・手続きはイベントハンドラにできないですし、 メソッドはWin32APIなんかのコールバック関数として指定できません。 SizeOf()の結果も、関数・手続きのポインタは4バイト、メソッドポインタは8バイトです*1。 そんな違いの中のひとつとして「Self」の存在があります。 Selfという引数 「Selfはメソッ

    関数ポインタとメソッドポインタの相互代入のおはなし。 - Swanman's Horizon
  • Delphi用トゥイーンライブラリ「DTween」できました。 - Swanman's Horizon

    Twitter上でデモ動画を2つほど公開してきたけど、最低限公開できそうな感じにはなったと思うので出してみるよ! DTweenをダウンロード DTweenとは何かというと、簡単に言えば下の動画のような動きが実質一行で書けちゃうようなライブラリです。 具体的な書き方はこんな感じ。 // フォームを1000msかけて現在位置から右に100ピクセル動かす TTween.TweenTo(Form1, ['$Left', 100], 1000, TEasing.SineEaseIn).Play; // フォームを幅0高さ20の状態から幅640まで800msかけてひろげて、 // その後高さを500msかけて480に伸ばす TTween.Serial([ TTween.Tween(Form1, ['Width', 0, 'Height', 20], ['Width', 640], 800), TTwe

    Delphi用トゥイーンライブラリ「DTween」できました。 - Swanman's Horizon
  • 1