日付選択に TDateEdit を使用していたのだけど、
カレンダー表示した際の選択は、ダブルクリックにより操作になってしまうみたい、、、
これは、ちょっと嫌だな~シングルクリックがいいな~
と、TRxDateEdit の使用も考えたのだけど、こちらはカレンダーの表示が
いまいち好みではないのです。。。
そこで、ZVDateTimeControls というのを Google さんで見つけた。
http://wiki.lazarus.freepascal.org/ZVDateTimeControls_Package
ちょっと、こっちに置き換えてみます。
オープンソースの Free Pascal Lazarus に関するブログ。 Lazarus のまとめ(備忘録)サイトも公開中♪ https://sites.google.com/site/lazarue777/
2010年12月6日月曜日
2010年10月25日月曜日
日本語入力IMEの修正ファイルを更新
日本語入力IMEの修正ファイルを更新しました~
SVN更新(27836) にあたり、synedit.pp のマージ修正。
https://sites.google.com/site/lazarue777/home/insutoru/nihongo-nyuuryoku-imeno-shuusei-fairu
SVN更新(27836) にあたり、synedit.pp のマージ修正。
https://sites.google.com/site/lazarue777/home/insutoru/nihongo-nyuuryoku-imeno-shuusei-fairu
2010年10月24日日曜日
ファイル名(パス名)関連の Tips を追加
ファイル名(パス名)関連の Tips を追加。
https://sites.google.com/site/lazarue777/home/tips/fairu-mei--pasu-mei
一日、1Tips を記載すれば、年間で365Tipsになるかな~
と、思ってもなかなか進まない。。。(笑)
https://sites.google.com/site/lazarue777/home/tips/fairu-mei--pasu-mei
一日、1Tips を記載すれば、年間で365Tipsになるかな~
と、思ってもなかなか進まない。。。(笑)
2010年10月23日土曜日
IME入力関連のソースにマージ更新
SVN更新にあたり、IME入力関連のソースにマージ更新があったので、
修正パッチを作成。
https://sites.google.com/site/lazarue777/home/insutoru/nihongo-nyuuryoku-imeno-shuusei-fairu
修正パッチを作成。
https://sites.google.com/site/lazarue777/home/insutoru/nihongo-nyuuryoku-imeno-shuusei-fairu
2010年10月16日土曜日
コマンド引数や Windows のエクスプローラーからのドラッグ&ドロップ
EggPad にて、コマンド引数や Windows のエクスプローラーからのドラッグ&ドロップを
実装してみたので、まとめサイトに Tips を追記しました。
https://sites.google.com/site/lazarue777/home/tips/kankyou-kanren
実装してみたので、まとめサイトに Tips を追記しました。
https://sites.google.com/site/lazarue777/home/tips/kankyou-kanren
2010年10月1日金曜日
モデル定義を簡単に記載できるようにしたいんだから、、、
たぶん僕は面倒くさがりです。
画面でデータを扱う際には、TDataSet をベースとした何らかのデータセットコンポーネントを
使用することが多いのですが、、、
最近では、TMemDataset がお気に入りになっています。
でも、フィールド定義がプロパティエディタのコレクション編集なのが、すっごく億劫になって来ました。
そこで、フィールド定義をもっと容易にできないか?と、、、ツールを作り始めています。
プロパティエディタでのコレクション編集は面倒なのに、
ツールを作ることにしたのは、自分でも矛盾を感じますが、、、(笑)
このツールを作ってしまえば、コレクション編集から解放されるっ!!と
自分に言い聞かせながら作っております。
画面でデータを扱う際には、TDataSet をベースとした何らかのデータセットコンポーネントを
使用することが多いのですが、、、
最近では、TMemDataset がお気に入りになっています。
でも、フィールド定義がプロパティエディタのコレクション編集なのが、すっごく億劫になって来ました。
そこで、フィールド定義をもっと容易にできないか?と、、、ツールを作り始めています。
プロパティエディタでのコレクション編集は面倒なのに、
ツールを作ることにしたのは、自分でも矛盾を感じますが、、、(笑)
このツールを作ってしまえば、コレクション編集から解放されるっ!!と
自分に言い聞かせながら作っております。
2010年9月15日水曜日
Lazarus まとめサイトにて、PowerPdf の修正版を公開
Lazarus まとめサイトをボチボチ作ろうと思い
以下のサイトを公開してみました~
https://sites.google.com/site/lazarue777/
PowerPdf にて、試しに日本語フォントの有効と文字化けの対処をしてみた
修正版をアップしてみました。
以下のページからソースをダウンロードできます。
https://sites.google.com/site/lazarue777/home/konponento-raiburari/powerpdf
以下のサイトを公開してみました~
https://sites.google.com/site/lazarue777/
PowerPdf にて、試しに日本語フォントの有効と文字化けの対処をしてみた
修正版をアップしてみました。
以下のページからソースをダウンロードできます。
https://sites.google.com/site/lazarue777/home/konponento-raiburari/powerpdf
まだ、PowerPdf を調査中。。。
PowerPdf の同じようなところでハマっている人がいました~
http://tomomori.cocolog-nifty.com/blog/2009/12/powerpdfbytetyp.html
http://tomomori.cocolog-nifty.com/blog/2009/12/powerpdfbytetyp.html
Lazarus から PowerPdf を使ってみる
Lazarus から PowerPdf を使ってみることにしました。
とりあえず、以下の順でコントロールを配置してみました。
1) TPReport
2) TPRPage
3) TPRLayoutPanel
4) TPREllipse
印刷ボタンを作成し、クリックイベントでPDF出力処理を記載。
円をPDFに出力することができました。
5) TPRLabel を配置し、Caption に「アメリカ」と入力。
PDFを出力すると見事に文字化けしました~(笑)
とりあえず、以下の順でコントロールを配置してみました。
1) TPReport
2) TPRPage
3) TPRLayoutPanel
4) TPREllipse
印刷ボタンを作成し、クリックイベントでPDF出力処理を記載。
procedure TForm1.Button1Click(Sender: TObject); begin if SaveDialog1.Execute then with PReport1 do begin FileName := SaveDialog1.FileName; BeginDoc; Print(PRPage1); EndDoc; end; end;
円をPDFに出力することができました。
5) TPRLabel を配置し、Caption に「アメリカ」と入力。
PDFを出力すると見事に文字化けしました~(笑)
2010年9月14日火曜日
2010年9月12日日曜日
PowerPDF の Lazarus 移植版をパッケージインストールしてみる♪
PowerPDF を SVN からエクスポートし、
http://wiki.lazarus.freepascal.org/PowerPDF
インストールしてみることにしました~
とりあえず、コンパイルとインストールはできたみたい♪
http://wiki.lazarus.freepascal.org/PowerPDF
インストールしてみることにしました~
とりあえず、コンパイルとインストールはできたみたい♪
TExtendedNotebook の子コントロールが変更されたのかな?
TExtendedNotebook を使用していて、SVN 更新したら、
子コントロールの TPage 読み込みでエラーになってしまった。。。
試しに TExtendedNotebook 上でページの追加の操作をしてみたら
TTabSheet で子コントロールが作成されている~
あれれ??仕様が変わった??
子コントロールの TPage 読み込みでエラーになってしまった。。。
試しに TExtendedNotebook 上でページの追加の操作をしてみたら
TTabSheet で子コントロールが作成されている~
あれれ??仕様が変わった??
2010年8月19日木曜日
interface(インターフェース)を持っている(実装されている)か?の判定
親クラスを持っているか?を判定するには、is を使用するればいいけど、
interface(インターフェース)を自分で作成して、
クラスに持っているかを判定したい場合、GetInterfaceEntry を
使用します。
as を使用したい場合には、interface に GUID を埋め込んで置く必要があります。
IDEのソース上で GUID を埋め込みするには、[Ctrlキー] + [Shiftキー] + [Gキー] を
キー入力します。
interface(インターフェース)を自分で作成して、
クラスに持っているかを判定したい場合、GetInterfaceEntry を
使用します。
as を使用したい場合には、interface に GUID を埋め込んで置く必要があります。
IDEのソース上で GUID を埋め込みするには、[Ctrlキー] + [Shiftキー] + [Gキー] を
キー入力します。
type IDWSShapeContainer = interface ['{8D26C9EF-AD7A-4A6F-B145-BBEBC2D85240}'] function IsShapeFocused():Boolean; end; TDWSBoxFlowDiagram = class(TPanel, IDWSShapeContainer) : end; procedure TDWSShape.PaintSelectFocus(ACanvas: TCanvas); var container: IDWSShapeContainer; begin // nil 以外なら持っている。nil なら持っていない if Self.Parent.GetInterfaceEntry(IDWSShapeContainer) <> nil then begin container := Self.Parent as IDWSShapeContainer; if not container.IsShapeFocused() then begin exit; end; end; : end;
2010年8月18日水曜日
Lazarus を SVN 更新したのだけど、、、
Lazarus を SVN 更新して再構築を行うと、
起動時に Failed to create handles. でエラーになってしまい起動できなくなってしまいました~
仕方ないので、
Daily Snapshots から再インストールしてみたのだけど、
結果、、同じエラーで起動ができない(悲)
普段使いの Lazarus と、SVN 更新用の Lazarus は、環境を分けているので
とりあえず、問題はないのですが、、、、気になってしまう。
問題解決されるといいな~
起動時に Failed to create handles. でエラーになってしまい起動できなくなってしまいました~
仕方ないので、
Daily Snapshots から再インストールしてみたのだけど、
結果、、同じエラーで起動ができない(悲)
普段使いの Lazarus と、SVN 更新用の Lazarus は、環境を分けているので
とりあえず、問題はないのですが、、、、気になってしまう。
問題解決されるといいな~
2010年8月16日月曜日
Font プロパティで日本語を設定したい場合
Font プロパティで日本語を設定したい場合、
CharSet を設定しますが、
SHIFTJIS_CHARSET の定義は、LCLType にあります。
CharSet を設定しますが、
FEdit1.Font.CharSet := SHIFTJIS_CHARSET;
SHIFTJIS_CHARSET の定義は、LCLType にあります。
uses LCLType;
2010年6月14日月曜日
Zeos コンポーネントでMSSQLにつないだら、UNIQUEIDENTIFIER 型が ftBlob に。。
ハマったので、備忘録。
GUIDを文字列で処理したかったのです。。。
GUIDを文字列で処理したかったのです。。。
{ TBlobField からGUIDを文字列で取得します @param field TBlobFieldを渡します @return GUIDを文字列にして返します } function DWSBlobFieldToGuidString(field: TField): String; var bf:TBlobField; guid:TGUID; ms:TMemoryStream; sz: Integer; begin Result := ''; if not (field is TBlobField) then exit; bf := field as TBlobField; sz := SizeOf(guid); if bf.BlobSize <> sz then exit; ms := nil; try ms := TMemoryStream.Create; bf.SaveToStream(ms); ms.Position := 0; ms.Read(guid, sz); finally FreeAndNil(ms); end; Result := GUIDToString(guid); end;
登録:
投稿 (Atom)