現状を調べてみました。
プロジェクト名 | バージョン | 概要 | 対応 | ||||||||||
Abbrevia | 5.0 | zip 等を操作します。Unicode ファイル名 (アーカイブの中の) にも対応しているようです。64bit / 一部 OS X 対応。 | |||||||||||
Async Professional | 5.00 | 通信コンポーネント群。Songbeamer 版には XE / XE2 用パッケージ有。 | |||||||||||
B-Tree Filer | 5.57a | ||||||||||||
Essentials | 1.11 | Songbeamer 版には 2009 用パッケージ有。 | |||||||||||
FlashFiler | 2.13 | ||||||||||||
Internet Professional | 1.16 beta 3 | Indy あるしなぁ... | |||||||||||
LockBox | 3.4.2 20120513 | 暗号化コンポーネント。Songbeamer 版には XE3 パッケージ有 (OS X 対応)。 | |||||||||||
OfficePartner | 1.64 beta | ||||||||||||
OnGuard | 1.14 | アプリケーションに使用期限機能や使用制限機能を付加します。Songbeamer 版有。 | |||||||||||
Orpheus | 4.08 | 120 以上のコンポーネント群。EDN にインストール記事。Songbeamer 版有。64bit 対応 | |||||||||||
ShellShock | 1.02 20110908 | TShell 系コンポーネントの高機能版といった所です。 | |||||||||||
SysTools | 4.04 20110908 | EDN にインストール記事。Songbeamer 版有。 | |||||||||||
Visual PlanIt | 1.03 | ||||||||||||
XML Partner | 2.60 20110904 | Songbeamer 版有。 |
Abbrevia と Orpheus は活発なようですね。
HDD がフッ飛んだ PC の FileMaker 8 環境をどうにかしてくれというお話。
FileMaker 8 Server は XP Professional または Windows Server 2003 にしかインストールできない。とりあえず XP はどうにかなったものの、普通に XP へ FileMaker 8 Server を入れても正しく動作しない (インストールはできるが管理ツールで接続できない。サービスを起動してもすぐに終了してしまう)。解決方法はと言うと、日付を 2008/09/22 以前にした上で FileMaker 8 Server をインストールすればいいようだ。
そして今度はクライアントの方の FileMaker 8 Pro が FileMaker 8 Server に接続できないときたもんだ。どうすればいいかと言うと、こちらも日付を 2008/09/22 以前にした上で FileMaker 8 Pro をインストールすればいいようだ。これの制限は証明書の期限に係る問題のようで、FileMaker のナレッジベースにも記述がある。FileMaker 9 には問題解決用のパッチが提供されているのだけれど、残念ながら Filemaker 7 / 8 には提供されていない。
...何このデートクラック的な解決方法は。
See Also:
貰い物。このプリンタは巷の評判通り、電源投入から印刷可能になるまでの時間がもの凄く長い。複合機並み...あるいはそれ以上。加えて、ウォームアップ時にノズル掃除を行うのか、やたらとインクの減りが早い...まぁ、インクカートリッジの容量が少ないのも一因ではあるのだろうけれど。
電源入れっぱなしで使えばさほど問題はないのだけれど、電気代やらなにやらを考えると 「それはどうなんだろう?」 と思ってしまう...家庭用には全く向いていないな。むしろ、会社でガンガン使うならアリかもしれない。けれど、純正インクカートリッジ (BCI-326+325/6MP)がアホらしい程高い (6色で5,000円弱) ので、BCI-326+325/6MP 互換インクを使って使い潰す気で扱った方がいいと思う (6色で500円程度)。ガンガン使うのなら、インク詰まりの可能性もあまりないと思われるので。
純正インクカートリッジ には IC チップが付いているので詰め替えはオススメしない。リセッターが付いていたとしても、IC チップ付きの互換インクの方がお手軽でいいように思う。断っておくけれど、互換インクを薦めているのは MG6130 の (主にインクの) コストパフォーマンスがあまりにも悪いからであって、コスパがそれ程悪くない機種や、家庭用で使う場合...特に印刷頻度が低い場合には高くても純正インクカートリッジをお勧めする。
MG6130 をイロイロ触ってみて、「まだ使えるのに何でくれるんだろ?」 という疑問が一気に氷解した (w
コスパを考えずに純正インクを買えるのなら、もちろんそうした方がいいのは当たり前。互換インクで本体を壊す事があるのも承知しているし、全く普通に使える事があるのも承知している。
純正インクとあまりにも特性のかけ離れた互換インク (を使ったカートリッジ) は詰まりやすいのだけれども、粗悪インクかどうかは実際に試してみない事には判らない。それと、上にも書いたけれど、印刷頻度が少ない場合もインク詰まりを起こしやすい...純正ですらクリーニングを行わなくてはならない場合があるのだし。
Amazon とかのレビューでは、"互換インクを Amazon で購入してもいないのに低評価を付けている" ヒトが居るので、互換インクを使いたいのなら評価がバラけている場合にはレビューを注意深く読んだ方がいいように思う。注意を付け加えておくならば、互換インクは同じ商品ページにあってもショップによって売っているものが違ったりするので、当たりを引いたのならそのショップの直販サイトがあるのかを確認し、以後はショップ指定で購入した方がいいかもしれない。
Delphi 等からタイプライブラリの取り込みを行うと、"xlほにゃらら" という利用可能なファイルフォーマットが得られます。
例えば Excel 2010 (Excel 14.0) のタイプライブラリを取り込むと以下のような定数が得られます。Delphi 付属の Excel2000.pas や ExcelXP.pas の記述よりも種類が多いのが判ると思います。
定数 | 値 | 説明 | 拡張子 |
xlAddIn | 18 | Microsoft Excel 97-2003 アドイン | .xls |
xlAddIn8 | 18 | Microsoft Excel 97-2003 アドイン | .xls |
xlCSV | 6 | CSV | .csv |
xlCSVMac | 22 | Macintosh CSV | .csv |
xlCSVMSDOS | 24 | MS-DOS CSV | .csv |
xlCSVWindows | 23 | Windows CSV | .csv |
xlCurrentPlatformText | -4158 | 現在のプラットフォームのテキスト (TSV) | .txt / .tsv |
xlDBF2 | 7 | DBF2 (dBASE II) | .dbf |
xlDBF3 | 8 | DBF3 (dBASE III) | .dbf |
xlDBF4 | 11 | DBF4 (dBASE IV) | .dbf |
xlDIF | 9 | DIF (Data Interchange Format: VisiCalc) | .dif |
xlExcel12 | 50 | Excel12 (Excel 2007 バイナリブック) | .xlsb |
xlExcel2 | 16 | Excel2 | .xls |
xlExcel2FarEast | 27 | Excel2 FarEast | .xls |
xlExcel3 | 29 | Excel3 | .xls |
xlExcel4 | 33 | Excel4 | .xls |
xlExcel4Workbook | 35 | Excel4 ブック | .xlw |
xlExcel5 | 39 | Excel5 | .xls |
xlExcel7 | 39 | Excel7 (Excel 95) | .xls |
xlExcel8 | 56 | Excel8 (Excel 97) | .xls |
xlExcel9795 | 43 | Excel9795 (Excel 95 / 97) | .xls |
xlHtml | 44 | HTML 形式 | .htm |
xlIntlAddIn | 26 | International Add-In | .xla |
xlIntlMacro | 25 | International Macro | .xlm |
xlOpenDocumentSpreadsheet | 60 | OpenDocument スプレッドシートを開く | .ods |
xlOpenXMLAddIn | 55 | XML アドインを開く | .ods |
xlOpenXMLTemplate | 54 | XML テンプレートを開く | .xltx |
xlOpenXMLTemplateMacroEnabled | 53 | マクロを有効にした XML テンプレートを開く | .xltm |
xlOpenXMLWorkbook | 51 | XML ブックを開く | .xlsx |
xlOpenXMLWorkbookMacroEnabled | 52 | マクロを有効にした XML ブックを開く | .xlsm |
xlSYLK | 2 | SYLK (Symbolic Link: Microsoft Multiplan) | .slk |
xlTemplate | 17 | テンプレート | .xlt |
xlTemplate8 | 17 | テンプレート 8 | .xlt |
xlTextMac | 19 | Macintosh テキスト | .txt |
xlTextMSDOS | 21 | MS-DOS テキスト | .txt |
xlTextPrinter | 36 | プリンター テキスト | .prn |
xlTextWindows | 20 | Windows テキスト | .txt |
xlUnicodeText | 42 | Unicode テキスト | .txt |
xlWebArchive | 45 | Web アーカイブ | .mht |
xlWJ2WD1 | 14 | WJ2WD1 (Lotus 1-2-3 R2.1J / 2.2J / 2.3J) | .wj2 + .wd1 |
xlWJ3 | 40 | WJ3 (Lotus 1-2-3 R2.4J / 2.5J) | .wj3 |
xlWJ3FJ3 | 41 | WJ3FJ3 (Lotus 1-2-3 R2.4J / 2.5J) | .wj3 + .fj3 |
xlWK1 | 5 | WK1 (Lotus 2.x) | .wk1 |
xlWK1ALL | 31 | WK1ALL (Lotus 2.x .all) | .wk1 + .all |
xlWK1FMT | 30 | WK1FMT (Lotus 2.x .fmt) | .wk1 + .fmt |
xlWK3 | 15 | WK3 (Lotus 3.x) | .wk3 |
xlWK3FM3 | 32 | WK3FM3 (Lotus 3.x / Lotus 1-2-3 Windows) | .wk3 + .fm3 |
xlWK4 | 38 | WK4 (Lotus 4.0 / Lotus 1-2-3 R5J) | .wk4 |
xlWKS | 4 | ワークシート (Microsoft Works for MS-DOS) | .wks |
xlWorkbookDefault | 51 | ブックの既定 | .xlsx / .xls |
xlWorkbookNormal | -4143 | ブックの標準 | .xls |
xlWorks2FarEast | 28 | Microsoft Works Version 2.0 for Windows FarEas | .wks |
xlWQ1 | 34 | WQ1 (Quattro Pro for MS-DOS) | .wq1 |
xlXMLSpreadsheet | 46 | XML スプレッドシート | .xml |
Worksheet.SaveAs() メソッドでこれらを指定できますが、保存できない形式もあるので注意が必要です。Delphi から Excel を操作する方法は、Mr.XRAY さんのサイトの以下の記事が参考になると思います。
See Also:
...この話はここで終わりではないのです。
タイプライブラリの取り込みによってファイルフォーマットの定数を得られましたが、実は上に列挙した以外の定数も使えます。
定数 | 値 | 説明 | 拡張子 |
xlPDF | 57 | Adobe Portable Document Format (PDF) | |
xlXPS | 58 | XML Paper Specification (XPS) | .xps |
上記定数を使えば、Worksheet.ExportAsFixedFormat() メソッドを使わなくとも、Worksheet.SaveAs() メソッドで PDF を吐く事ができます (Excel 2010 で確認)。
See Also:
Excel を Delphi から操作する場合、Excel のバージョンを調べて処理を分岐させたい事があります。Application.Version で調べられるのですが、バージョンの値は以下のようになっています。
Excel | バージョン |
Excel 95 | 7 |
Excel 97 | 8 |
Excel 2000 | 9 |
Excel 2002 (XP) | 10 |
Excel 2003 | 11 |
Excel 2007 | 12 |
Excel 2010 | 14 |
Excel 2013 | 15 |
Delphi もですが、アメリカでは "13" という番号が忌避されているようですね (Delphi 2009 が 12.0 で Delphi 2010 は 14.0)。でも、2013 はいいんだ...変なの。
Delphi 2007 でメンテしている少々古いアプリケーションに追加機能の要望があったので実装したのだけれど、当方の環境で実行すると正しく動作するのに、先方の環境だと動作しなかった。
デバッグ用に ShowMessage() を仕込んでどこで止まっているのかを調べたのだけれど、新しく追加した機能では止まっていなかった...正確にはそこに入る前でアドレス違反でコケていた。「はぁ?アドレス違反?Create していないオブジェクトでも触ってるのか?」 と一瞬思ったけれど、当方の環境で正常動作する以上それはない。よくよく調べてみたら、SaveDialog.Execute() を抜けた時点でアドレス違反になった。
...あぁ、そうかアレか。
という事で、呪いを回避するためのオマジナイである "UseLatestCommonDialogs := False;" を記述したら正常動作した。最初は SaveDialog.Execute() の直上に以下のようなコードを書いたのだけれど、効果はなかった。
|
つまり、今回の件は何らかの外部デバッガのせいではないという事だ。それが判ったので、追加した機能の直上で記述せず *.dpr に記述してアプリ全体に効くようにした...一つで出るなら他の箇所でも出る可能性が高いからだ。ちなみに、デバッグビルドでもリリースビルドでも (デバッグ版 DCU の使用の有無に関係なく) アドレス違反が起きた。
DebugHook を判定して UseLatestCommonDialogs を False にする場合には *.dpr に書くのではなく、個々の OpenDialog / SaveDialog の Execute の直上に個々に書くようにした方がいい。何故なら、外部デバッガでフックされるのは外部デバッガからアプリケーションが呼び出された場合とは限らないからだ。アプリケーション起動後にアタッチされた場合には効果がない。どのタイミングでデバッガにアタッチされるかアプリケーションからは知る由もない (アタッチされた時に発生するウィンドウメッセージってありましたっけ?) のだから、面倒でもやはり個々に記述するしかない。
それと、"デバッガにフックされていない場合には OS 標準のダイアログを出したい" のであれば、
|
こちらの記述の方がいいように思う。一連の問題の件は OpenDialog / SaveDialog の Option プロパティの ofOldStyleDialog を True にしても同じ効果が得られるとは思うが、記述が少々メンドイ事になる。
何故 UseLatestCommonDialogs を記述すると正常動作するようになるのかはよくわからない。前にも書いたけれど、この件ではいくつもの QC が挙がっている。例えばコレ。
|
現象としては、
...等々あるのだけれど、確実に再現させる方法がない。AV が発生する環境では発生するし、発生しない環境では発生しない。発生する環境でも 100% 発生する訳ではなく、ランダムにクラッシュする。対処療法として UseLatestCommonDialogs を False にするというのが知られているだけだったりする。デバッグ実行でのみこの現象が発生する場合には IDE を巻き込んで落ちるので原因の特定は困難。こればかりは SysOp が Need Feedback にしてしまうのも仕方ない気がする...だって確実な再現方法がないんだもの。
今現在ググル先生に尋ねてみると、他の開発環境でも問題は出るようだが、2009~2010 年時点では殆ど情報がなかった事だけは覚えている。
[DownLoad]
特に問題も見当たらないようなので 3.00 として公開。
[DownLoad: gct_100.zip]
コードテンプレート 7 種を所定の位置に生成するアプリケーションです (ガリレオ IDE 用。ソースコード付き)。Delphi IDE 起動前に実行して使います。詳細は readme.txt を読んでください。
私の認識が間違っていなければ、コードテンプレートには日付等を自動で入れる事はできなかったと思います。例えばコメントで
|
このような記述はできないと思います (日付部分をジャンプポイントにして手入力するなら話は別ですが...)。GCT.EXE は特定の文字列を置換した後、所定の位置へコードテンプレートを生成します。
GCT.EXE で生成されるコードテンプレートは [コードエディタ右クリック | 囲む] で使えるものが 4 種、Ctrl+J で使えるものが 3 種含まれています。以下のようなコードが吐かれます。
[ubcadd (template_ubcadd.xml)] |
|
[ubcmod (template_ubcmod.xml)] |
|
[ubcdel (template_ubcdel.xml)] |
|
[ucadd (template_ucadd.xml)] |
|
[ucmod (template_ucmod.xml)] |
|
[ucdel (template_ucdel.xml)] |
|
[ucdels (template_ucdels.xml)] |
|
日付は勝手に入ります。作成者は GCT.EXE に引数を渡す事で指定できます。作成者の指定は任意です。
つまり、GCT.EXE は "都度変更されるコードテンプレートを生成するためのプログラム" という事になります。一度作ったら変更しなくていいようなコードテンプレートはそのまま所定のフォルダに置いておけばいいので、GCT.EXE の出る幕はありません。
「書式が気に食わない」 とか 「他にも追加したい」 という事であれば自由に改変してください...とても短いソースコードなので、改変は簡単だと思います (コードが汚いのはご容赦ください)。GCT.EXE を Delphi Launcher のプリプロセッサに仕込んでおくと、「事前に実行しそこねたーーー」 という事もないので便利です (コードテンプレートが IDE に認識されているのであれば、IDE 起動中に実行してもちゃんと差し替えられますけどね)。
何か面白いコードテンプレートができたら、フォーラムに投稿してくださいねー。
See Also:
デフォルトで C:\Users\<USER>\Documents\RAD Studio\code_templates (C:\Documents and Settings\<USER>\My Documents\RAD Studio\code_templates) になります。この保存先はガリレオ IDE 共通なので、コードテンプレートを Delphi 2007 で作っても XE4 で使えます。
CSIDL は CSIDL_PERSONAL / CSIDL_MYDOCUMENTS、Known Folder ID だと FOLDERID_Documents 以下の \RAD Studio\code_templates となります。
ふーさんのツイートを見て、忘れないうちに更新しようと思い立つ。
こういうのって後でやろうとすると忘れちゃいますからね。フォーラムにも追記しました。
先人の知恵に倣って、上の子の 3DS を修理してみました。3DS の分解には #0 の精密ドライバー(+) が必要ですが、ダイソーの 5、6 本組の精密ドライバーセットの中に入っています。修理方法を簡単にまとめると、
これだけなのですが、問題はどうやって洗浄するかです。コンタクトスプレー (接点復活剤) は持ってないし、わざわざ買いに行くのもアレですし。要は、スイッチ内部に油膜のような汚れがある状態なのだと思うのです。これを洗い流してやればいい、と。水は論外として、自宅にある使えそうなものと言えば...
冬に活躍する霜取りスプレーがありました。この霜取りスプレーの成分はアルコールと炭酸ガスなので汚れを落とすだけならこれでいいでしょう (成分表はよく確認してくださいね)。炭酸ガスのスプレーなのでスイッチ内部まで浸透し、かつエアダスターのような吹き飛ばし効果もありそうです。
あらゆる方向からスプレーしてスイッチをカチカチ&グニグニする事を数回繰り返し、乾燥した事を確認して組み上げ、電源 ON...直りました。ただ、アルコールによる洗浄だと脱脂してしまうので、コンタクトスプレーでの洗浄の方がいいような気はします...下の子の 3DS もそのうち同じような事になるかもしれないので、今度コンタクトスプレーを買っておこう。
ついでにこの霜取りスプレーを使って3DS をキレイに拭いてあげました。メガネ拭きにスプレーしてそれでゴシゴシ (3DS に直接スプレーしちゃダメですよ)...アイツラ、お菓子食べた手で 3DS 触るから画面は汚いし、なんだか油っぽかったし (w
マットな質感のマウスってあるじゃないですか?あれって経年劣化しやすくて、劣化するとベタベタしてくる事が多いんですよね。
塗装が剥げてきてベタベタし出すと 「全部塗装剥がしたい!」と思うのですが、中性洗剤でも界面活性剤でも落ちません。これを剥がすにはアルコールを使います。上で書いた霜取りスプレーでも落ちます。お悩みの方はお試しあれ。
ノートパソコンの "インテル入ってるシール" のフチにホコリが付いて困った経験はありませんか?セロハンテープやシールの跡とかもアルコールで取れます...逆に言えば、ゴムとか両面テープのような接着剤が使われている所にアルコールを使ってはいけないという事ですね。
白いプラスチックって黄色く変色するじゃないですか?アレを白くする Retr0Brite って手法があるんですけど、夏の紫外線がお肌の大敵な季節になったのでちょっとやってみました。
紫外線が多い季節なので Retr0bright をやってみた (togetter)
PC-9801 VM / VX が思ったより白くならない?いえいえ、それって元からそういう色ですから。
BACK | 古いのを読む | 新しいのを読む |