マガジン

  • Delphi

    Delphiで思い出したことを書いています。

最近の記事

湖池屋 ポテトチップス 焦がしキャラメル

    • C++ Builder 25周年記念ダウンロード

      「C++ Builder」 1997年2月発売から25年を記念して 1が無料でダウンロードできるとのことです。ISOファイルでダウンロードできるので記念に保存しておくのも良いですね。 インストールできるのはWindows 95 〜 Windows MEまでと云うことですが、ボーランドの製品はそこそこXPでも動きそうに思います。 https://cc.embarcadero.com/item/30934

      • Delphi MAC Addressを取得する方法

        DelphiでWindowsのMAC Addressを取得する方法です。使ったのはWinapi.IpHlpApi, Winapi.IpTypesです。GetAdaptersInfo()を使えばNICの情報が取得できるようです。 こんな感じのコードで取得できました。WinRTだとどうするのかな?

        • IntToHexをNode.jsで記述する

          IntToHex()は、Delphiで使われている関数でSystem.SysUtilsに入っています。この関数は、数値を16進数を表現した文字列で返してくれる便利な関数です。例えば、var s:String := IntToHex(138, 4);このように書くと変数sには、'008A'という文字列が入ります。8桁を作りたい場合は、第2引数を8と書き換えれば「IntToHex(138, 8)」変数s = '0000008A'になります。この関数をNode.jsで実装する場合下

        湖池屋 ポテトチップス 焦がしキャラメル

        マガジン

        • Delphi
          8本

        記事

          Delphi WinRT文字列 HSTRINGはハンドル

          Delphi 10.3 わたくし毛利のライセンス有効期限が後4日となりました。 わたくしの場合、仕事でDelphiを使うことが無いのでCommunity Editionです。Delphiで、WinRTでの文字列渡しを行う場合StringではなくHSTRINGという型を使います。以前、TWindowsStringを使うと簡単ですということをブログにも書いたのですが、このTWindowsStringも内部ではHSTRINGを使っています。このHSTRINGは、THandle型で

          Delphi WinRT文字列 HSTRINGはハンドル

          DelphiでWinRT DateTimeFormatterクラスを使う

          Delphi 10.3 でWinRTのDateTimeFormatterを利用する場合、Winapi.Globalizationをusesに追加する必要があります。最新のDelphiではWinRT対応されており、DateTimeFormatterクラスを使う場合TDateTimeFormatting_DateTimeFormatterを使います。これはDelphiのクラスです。このクラスのインスタンス作成するには、CreateDateTimeFormatter()を使います。

          DelphiでWinRT DateTimeFormatterクラスを使う

          Delphiで WinRT DateTime型

          Delphi 10.3は WinRT用のライブラリがある程度揃っています。コンポーネントになっているのか不明です。その中で、Delphi TDateTime型から WinRTのWindows.Foundation.DateTime型に変換するには、TDateTimeToDateTimeやDateTimeToTDateTimeがWinAPI.WinRT.Utils.pasに入っています。コード例などは下記のURLに記載致しました。

          Delphiで WinRT DateTime型

          Delphi TDateTimeで週末や月末を取得する

          TDateTime型で、週初から週末までをまとめて処理したい場合や月末(2月は何日までだっけ?)などの処理を行う場合DelphiのSystem.DateUtils.pasには{ Start/End functions }が用意されています。 その年の開始 StartOfTheYear(const AValue: TDateTime): TDateTime; 年末 EndOfTheYear(const AValue: TDateTime): TDateTime; その月の開

          Delphi TDateTimeで週末や月末を取得する

          DelphiでISO8601の日時を扱う

          最近JSONなどで、日時を表す文字列ISO8601がよく使われています。IOS8601は「2004-04-01T12:00Z」こんな日付と時間をTで区切ったフォーマットですが見かけることが増えてきました。DelphiのSystem.DateUtils.pasでも他の言語と同じくISO8601を対応した関数が用意されています。ISO8601ToDate, TryISO8601ToDate, DateToISO8601主にこの3つの関数なのですが、Delphi関数名の命名方法

          DelphiでISO8601の日時を扱う

          Delphi TDateTime型はDouble

          DelphiのDatetime型はDoubleです。System.pasには下記のように書かれています。 TDateTime = type Double; たとえば下記コードのようにTDateTimeに0を設定するとどうなるでしょうか procedure TForm1.Button1Click(Sender: TObject);var d1: TDateTime;begin d1 := 0; OutputDebugString(PChar(DateToStr(

          Delphi TDateTime型はDouble

          Delphiの型推論

          Delphiの10.3から型推論が使えるようになっていました。型推論はC++やSwiftなど今では多くの言語に採用されている機能です。以前のDelphiでは変数(var)を必ずbegin〜endの前に書く必要がありました。そのため、型はvar部分に一塊で変数宣言していました。10.3ではbegin〜end内の好きなところに何度もvar 変数が宣言できます。 例えば下記のような書き方が可能です。以前とは違い、変数を宣言するはずのprocedureとbeginの間には何も書

          Delphiの型推論

          test

          var i = 9;