2015年9月26日土曜日

A timeout occurred, the debugger will try to continue ....

Mac にて Lazarus 上でデバッグしていたんだ。
ブレークポイントで止めて、調子良くステップ実行していると、
以下のようなポップアップメッセージが表示され、
本当に邪魔だった。

「A timeout occurred, the debugger will try to continue ....」

作成しているプログラムが小さい内には、表示される回数も少ないようなんだけど、
プログラムが大きくなってくると、このメッセージが表示される回数も増えるみたい。
仕舞にはステップ毎に表示されるようになってしまった。
本当にウザいわ。

解決方法をググッてみても、それっぽい記事は見つからなかった。
結局、オプションからメッセージをOFFにすることにしたのだけど、
まあ、良いのかな?

また、快適なステップ実行ライフができるようになったし。

設定したのは、IDE から
「ツール」−「オプション」を選択。

2015年9月19日土曜日

Hash コンテナは、メモリ喰いなのね、、

最近作成したアプリで、過度にメモリを消費する状況があったんだ。
データをコンテナ管理するクラスを多数(100個位)生成していたのだけど、
レコード数は0件でも、クラスを生成するだけで、メモリが100MByte近く消費される状況だった。
最初はレコードを構成するのに、取り敢えずどのような型でも突っ込めるVariantクラスでレコード型定義しているのが、原因なのかな?と考えていたのだけど、小さなプログラムでVariantで表現したレコードクラスとStringで表現したレコードクラスを比較しても100MByteを消費する程、差は生じなかった。
そこで、自作のデータコンテナクラス内にて持っていた色々な従属情報を、使用されるタイミンで都度 Create するように順次修正しながら、メモリの使用状況を確認していったんだ。
そしたら、ある従属情報で急にメモリの使用量が減った。
その従属情報は、継承元に FPC ライブラリの contnrs.TFPObjectHashTable を使用していたのだけど、試しに TStringList で代用したクラスで再実装してみたところ、その従属情報を Create してもメモリ喰いは起きなくなった。
あれ? TFPHashXXXX 系って、データ突っ込まなくても、クラス生成だけでメモリ喰いするのかな?
と、思いながらも他にも使用していた TFPHashXXXX を取り敢えず、代替簡易クラスを作成して置換えていったら、使用メモリが激減するようになった。

作成したアプリで使用していた TFPHashXXXX 系は、以下だった。

contnrs
-----------------------------
TFPHashList
TFPStringHashTable
TFPObjectHashTable


結局今回は、文字列キーからの参照速度はさておき TStringList.Objects プロパティで、置換え可能な箇所は修正することにした。
TFPHashXXXX 系は、使用されるメモリ量が増える事を把握した上で、文字列キーで検索速度を優先したい場合に使用するようにする、と言うことなのかな。

2011年6月1日水曜日

背景色を変更できるボタン

背景色を変更できるボタンを使いたいなら、
以下のコンポーネントがイイと思う。

http://wiki.lazarus.freepascal.org/TGradButton

グラデーションを使わないのなら、
NormalBlend を 0 にすれば良いし~

2011年4月26日火曜日

Free Pascal、Lazarus に関連した日本語コミュニティを作成しました~

Free Pascal、Lazarus に関連した日本語コミュニティを作成しました。
情報交換や相談事など何でもOKです。
Free Pascal、Lazarus に関しては情報が少ないみたいですので、
誰でも気軽に参加して頂けますと幸いです。


http://groups.google.com/group/lazarusjp

2011年4月17日日曜日

ExpandPanels のデモ

ExpandPanels のデモを試そうとしたら、ColoredBox というパッケージを要求された。。
http://wiki.lazarus.freepascal.org/TMyRollOut_and_ExpandPanel

これで良いのか?試したところ、起動はできるようになったみたい。
http://www.lazarusforum.de/downloads.php?view=detail&df_id=18

2010年12月6日月曜日

日時選択コントロール

日付選択に TDateEdit を使用していたのだけど、
カレンダー表示した際の選択は、ダブルクリックにより操作になってしまうみたい、、、
これは、ちょっと嫌だな~シングルクリックがいいな~
と、TRxDateEdit の使用も考えたのだけど、こちらはカレンダーの表示が
いまいち好みではないのです。。。

そこで、ZVDateTimeControls というのを Google さんで見つけた。
http://wiki.lazarus.freepascal.org/ZVDateTimeControls_Package

ちょっと、こっちに置き換えてみます。

2010年10月25日月曜日

日本語入力IMEの修正ファイルを更新

日本語入力IMEの修正ファイルを更新しました~

SVN更新(27836) にあたり、synedit.pp のマージ修正。
https://sites.google.com/site/lazarue777/home/insutoru/nihongo-nyuuryoku-imeno-shuusei-fairu