Programing
FireMonkeyのTBitmapクラスには、VCLで存在していたScanlineがない。 これだと1ピクセルずつ描画していくような処理をする場合に結構困る。で、どうするかというと
birdhouse.hateblo.jp以前、Delphiで複数のコンポーネントを配列にまとめて、一括処理する方法について書きましたが 今回はそのコンポーネントイベントも一括で書いてしまおうという内容です。
DelphiにはVariantという型が存在します。 これは非常に便利な型です。 コンパイル時に、型を一意に決定できないデータの操作が必要な場合に使えて、実行時に型を変更できます。
Delphiではprocedure(手続き)とfunction(関数)があります。 これらルーチンにはパラメータをもたせることができます。 例えば function plus_one(val:Integer):Integer; begin Result := val +1; end; こんな関数ですが、ここでのパラメータはInteger型のval…
Delphiで正規表現を扱う時に使うであろうTRegExクラス。 非常に便利ではあるんですが、正規表現に適切でない文字列を引数として渡すと当然ですが例外が発生します。 例外を発生させたくない場合、TRegExクラスメソッドの引数として与える前にこの文字列が適…
Delphiで複数のコンポーネントに対して、同じような処理をする場合 for文などを使って一気に処理したい、記述したいという場面は結構あると思います。ここでは私がよく使う方法を書いておきます。
STMicroを使った仕事をしていて、なんとなく書いてみたくなったのでやってみた。基本的には構造体を駆使すれば、オブジェクト指向風な書き方はできるみたい。 ただ、あくまでもオブジェクト指向”風”なんでね。
UTF-8を使って書き出したCSVファイルをExcelで開くと文字化けしてしまいました。この問題について解説します。
Raspberry PiにOpenCVを導入し、USBカメラを動かしたいわけですが この辺の手法は、他でも散々紹介されたおしてるのでこの記事では書きません。 OpenCVの導入もスルーします。すでにOpenCVも入ってるし、USBカメラから画像の取り込みくらいはできたよ! って…
pythonで、例えばある関数を1秒間隔で実行したい時、初心者が一番最初に思いつく方法として def task(): # 何らかの処理 def main(): while True: task() time.sleep(1) といった書き方がある。この書き方でも”およそ1秒毎”には処理してくれる。 だが、tas…
birdhouse.hateblo.jpこれの続きです。 前回は直線に関して導出しましたが、2次関数の場合を考えてみます。
データ配列としてというデータがあったとして、 これらのデータを1次関数の式という形で表現したいとしたときの傾きと切片はどう求めればいいのだろうか。
プログラム乗でべき乗の計算をすることは多々あると思います。 整数のべき乗は簡単です。 では、小数のべき乗はどう考えるべきでしょうか?例えばみたいなやつです。使用する言語によっては、これをサポートする関数が用意されてたりします。DelphiとかはPow…
TListViewを使っていてハマった問題。TListViewのサイズが変わると、リスト内のオブジェクト(ButtonやImageなど)のサイズが勝手に変わってしまっていた。
一つの問題です。 よくあるRaspberry PiのGPIOを制御するプログラムです。 以下のようなソースコードがあって import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(13, GPIO.OUT) while True: GPIO.output(13, True) time.sleep(1) GP…
EurekaLogで別スレッドで発生した例外を受け取る方法としては、公式Documentにいろいろと書いてあります。EurekaLog 7 Documentation
タイトル通りです。 簡単に平均値の計算をする場合、大体はこんな感じの関数を使うことになるでしょう。 function Average(data : array of Double):Double; var I : Integer; begin Result := 0; for I := 0 to Length(data) -1 do begin Result := Result …
自作クラスにレコードプロパティを実装したいという場面は結構あるはずです。 ただ、実装時にはいくつか注意しなければならないことがあります。
DelphiでWASAPIを扱うためのライブラリとしてMfPackが公開されてますが、 これにバグがあるようで、全く動かない。
数年前にFFTライブラリのためにビット反転処理を書いた。 ただ、FFTサンプル数を増やしたときに崩壊してしまっていたので、サンプル数に制限をかけてたわけですが 一思いにこの辺の処理を一新することにした。
Delphi向けの有料コンポーネントのSecureBridgeを使って、SSHログインとシェルコマンドを実行させる手順をまとめときます。開発元が公開しているマニュアルがあまりにも読みづらかったので、試行錯誤しながらなんとか動いた感じなので間違いは多々ある気もす…
TBitmapコンポーネントなどには、そのBitmap上に線を引くために ・MoveTo(x,y) ・LineTo(x,y) というメソッドが用意されてます。MoveTo(x,y)で線の始点になる座標を指定し、LineTo(x,y)で指定した座標まで直線を描きます。また、Pen.Widthプロパティで線の太…
HDD容量を取得する場合は、Windows APIにあるGetDiskFreeSpace関数を使うと各変数に色々値をぴったんこしてくれるわけですが僕、最初普通にこの「GetDiskFreeSpace関数」の方を使ってたんですね。そしたら正しい値が返ってこないというわけで。https://msdn.…
今作ってるプログラムで、ちょっとレスポンスが悪いプロシージャがあったので プロシージャ内部のどの処理が時間を食ってるのか調べることにした。何パターンかやり方があるけど、とりあえず簡単なのを。 timeGetTime関数 uses MMSystem; procedure TimeChec…
DelphiでWaveファイルを扱うためにRIFFフォーマットのファイルを読み込む必要がでてきたんで色々とメモ書き。 まず必要なものの説明。 MMSystemライブラリ マルチメディア関連のAPIが各種はいっている。 uses句にこれを追加する必要あり。 MMRESULT型 MMSyst…
Delphiやりはじめて初日ですどうも。早速躓きまくってるので色々メモ書きをガンガン残していきます。 DelphiでTImageコンポーネントを、フォームのサイズに合わせてリサイズしようとしていたのだが、どうにもうまくリサイズされない。通常のコンポーネントは…
仕事の都合上、Delphiデビューすることになりました。エディターが初期設定だとかなり見づらいので、カラーチェンジの設定をメモ書き程度に書いていきます。SublimeTextの方でカラースキーマはMonokaiを使ってるので、感覚的にはこれに近づけていく感じでい…
H8マイコンで割り込み操作を実行するためにあれこれ試行錯誤していたもののなぜか割り込みが入らない。 ネットで色々調べてみるもツールチェインがGCCだったりでKPITを使った情報が極端に少ない。てか見つからねぇ。 とりあえず動かすための手順だけ殴り書き…
なんかめんどくさいことにぶち当たったので覚書程度にまとめとく。 マイコン関係の開発環境として普段HEWとSublime Text 2を併用して使ってるんですが、HEWでUTF-8が使えないんですねぇー。 Sublime Text側で編集すると、HEWではコメントアウトした日本語部…