タグ:使い方 ( 34 ) タグの人気記事

Delphi XE Pro - XML ファイルを ini ファイルのように使うには? (読み込み編)
Delphi XE Pro - XML ファイルを ini ファイルのように使うには? (保存編)

保存されている XML ファイルは以下のようなXMLファイルです。
<Project1>
<Form>
<Form Name="Width">651</Form>
<Form Name="Height">338</Form>
</Form>
<Path>
<Path Name="TempSaveFolder"></Path>
</Path>
</Project1>

保存したXMLファイルをiniファイル的に読み取るソースコード:
一応書いておきますが、uses XMLIniFile XMLIntfXMLDoc を追加しておくこと。
procedure TForm1.Button2Click(Sender: TObject);
var
Root : IXMLDocument;
SettingsXML: TXMLIniFile;
int : Integer;
Str : string;
begin
Root := LoadXMLDocument(ChangeFileExt(Application.ExeName, '.xml')); // 読み込むファイル名を指定

Root.Active := True;
SettingsXML := TXmlIniFile.Create(Root.DocumentElement);

try
self.Height := SettingsXML.ReadInteger('Form', 'Width' , int );
Self.Width := SettingsXML.ReadInteger('Form', 'Height', int );
self.Caption := SettingsXML.ReadString('Path', 'TempSaveFolder', Str);
finally
SettingsXML.Free;
end;
end;


保存編で書いたソースコードも合わせて実行するとフォームサイズが変わるプログラムが出来るはずです。
[PR]

by arigayas | 2013-03-03 07:04 | Delphi Programming | Trackback | Comments(0)
Delphi XE Pro - XML ファイルを ini ファイルのように使うには? (保存編)
「XML ファイルを ini ファイルのように使うには?」と同じタイトルで
とある掲示板に投稿してヒントをもらって解決したので自分のブログにも書いておく。
まだ読み込み方法を調べないといけないんですけどね・・・。

それにしてもXMLファイルに書き込めるようになるまで時間が掛かったなぁ・・・。
日本語サイトだけの解決は厳しかった・・・。
以下の方法はXE1以降で使えます。

2013年3月2日 追加:
この記事を書いた翌日に質問した掲示板に追加の返答があったのを見て追加しました。
 // 実行結果は同じですがちょっとスマートになったかとw

uses XMLIniFile を追加して
フォームに XMLDocument (これがないと実行時にエラーになる)を貼付けて
XMLIntfXMLDoc uses に追加して
以下のようなソースを書いてXMLファイルをiniファイルのように出来ました。
改変前:
procedure TForm1.Button1Click(Sender: TObject);
var
Root : TXMLDocument;
settingsXML: TXMLIniFile;
RootTag : string;
SaveFolder: string;
begin
// XMLiniファイルに書き込む。
Root := XMLDocument1; // XMLDocument1の名前を変更した時の影響を減らすため。
RootTag := ExtractFileName(ChangeFileExt(Application.ExeName, ''));

Root.XML.Text := '<' + RootTag + '></' + RootTag + '>'; // XMLのルート部分をEXEファイル名に
Root.Options := [doNodeAutoIndent]; // オートインデントをON
Root.Active := True; // Active を True にしないと書き込まれない

settingsXML := TXmlIniFile.Create(Root.DocumentElement);
try
settingsXML.WriteInteger('Form', 'Width' , Form1.Width );
settingsXML.WriteInteger('Form', 'Height', Form1.Height );

settingsXML.WriteString('Path', 'TempSaveFolder', SaveFolder);

Root.SaveToFile(ChangeFileExt(Application.ExeName, '.xml')); // 書き込み実行

finally
settingsXML.Free;
end;
end;


質問した掲示板を見て2013年3月2日 改変:
procedure TForm1.Button1Click(Sender: TObject);
var
Root : IXMLDocument;
SettingsXML: TXMLIniFile;
RootTag : string;
SaveFolder: string;
begin
// XMLiniファイルに書き込む。
RootTag := ExtractFileName(ChangeFileExt(Application.ExeName, ''));
Root := NewXMLDocument();

Root.AddChild( RootTag ); // XMLのルート部分をEXEファイル名に
Root.Options := [doNodeAutoIndent]; // オートインデントをON
Root.Active := True; // Active を True にしないと書き込まれない

SettingsXML := TXmlIniFile.Create(Root.DocumentElement);
try
SettingsXML.WriteInteger('Form', 'Width' , Self.Width );
SettingsXML.WriteInteger('Form', 'Height', Self.Height );

SettingsXML.WriteString('Path', 'TempSaveFolder', SaveFolder);

Root.SaveToFile(ChangeFileExt(Application.ExeName, '.xml')); // 書き込み実行

finally
SettingsXML.Free;
end;
end;



で保存されるXMLは
[PR]

by arigayas | 2013-03-01 10:33 | Delphi Programming | Trackback(1) | Comments(0)
[2013年2月16日更新] 7zip と Subversion を使って chaika チェックアウトして xpi を作るバッチファイル
2ch の chaika スレッドで話題になっていたので自分が作ったchaika の開発版取得バッチファイルを公開しておきます。
svn というか Subversion と 7-Zip がインストールされている環境で実行出来るはずです。
svn checkout http://chaika.googlecode.com/svn/trunk/ R:\chaika-read-only
R:
cd chaika-read-only
for /r %%i in ( .svn ) do ( if exist "%%i" ( rmdir /s /q "%%i"))
cd chaika
"C:\Program Files\7-Zip\7z.exe" a R:\chaika-read-only\chaika-nt.zip R:\chaika-read-only\chaika\*.*
"C:\Program Files\7-Zip\7z.exe" a R:\chaika-read-only\chaika-nt.zip R:\chaika-read-only\chaika\chrome
"C:\Program Files\7-Zip\7z.exe" a R:\chaika-read-only\chaika-nt.zip R:\chaika-read-only\chaika\components
"C:\Program Files\7-Zip\7z.exe" a R:\chaika-read-only\chaika-nt.zip R:\chaika-read-only\chaika\defaults
"C:\Program Files\7-Zip\7z.exe" a R:\chaika-read-only\chaika-nt.zip R:\chaika-read-only\chaika\modules
move R:\chaika-read-only\chaika-nt.zip R:\chaika-nt.xpi
cd \
rmdir /s /q R:\chaika-read-only


[2013年2月16日更新] .svn フォルダが作成されない export というオプション?を知ったついでに大きく更新。
svn export http://chaika.googlecode.com/svn/trunk/chaika R:\chaika-trunk
R:
cd chaika-trunk
"C:\Program Files\7-Zip\7z.exe" a chaika-nt.zip *.*
"C:\Program Files\7-Zip\7z.exe" a chaika-nt.zip chrome
"C:\Program Files\7-Zip\7z.exe" a chaika-nt.zip components
"C:\Program Files\7-Zip\7z.exe" a chaika-nt.zip defaults
"C:\Program Files\7-Zip\7z.exe" a chaika-nt.zip modules
move R:\chaika-trunk\chaika-nt.zip R:\chaika-nt.xpi
cd \
rmdir /s /q R:\chaika-trunk


R:D: とか適宜、自分の環境に合わせて変えてください。


R:C: にした場合最後の3行は消してください。
Windows Vista 以降(確か)では通常 C: ドライブ直下にファイルを置くには管理者権限が必要になるため
move C:\chaika-trunk\chaika-nt.zip C:\chaika-nt.xpi
と書くとC: ドライブ直下に移動させる事が出来ずに削除されるため。


どうでも良い情報ですが何故 R: になっているかと書くと RAM ディスクのドライブを R: にしているからです。
[PR]

by arigayas | 2013-02-03 16:39 | Mozilla/Firefox/TB | Trackback | Comments(0)
[古いパソコンで] RAID1(ミラーリング) したハードディスクを他のパソコンで使う[新パソコンへ]
パソコンを新しくしたというかマザーボードを ASUS M3A78-T (SocketAM2+) から ASRock 990FX Extreme4 (SocketAM3+) に変えた。

構成は
CPUl: Phenom II X4 955 (3.2GHz / 125W版) [そのまま]
メモリ: DDR2 2GB x4 → DDR3 8GB x1
記憶装置: HDD (RAID1: HGST 500GB を 2台) + HDD (サムスン 500GB)
       → Intel SSD 520 シリーズ 180GB + HDD (HGST 2台 + サムスン 1台 / 全て 500GB)
光学ドライブ:Blu-ray、DVD、CD-ROM (それぞれ1台ずつ) [そのまま]
電源:AREA NAKED :: NA500-20A → 玄人志向 KRPW-SS600W/85+ (80PLUS BRONZE 取得)


Intel SSD 180GB に Windows 7 Professional SP1 64bit をクリーンインストール。
8GB もあるので ASRock から RAM ディスクを作ってくれるソフト[ASRock XFast RAM]をダウンロードして 2GB を割り当てた。
いつかメモリを 8GB から 16GB にして RAM ディスクを 8GB にする予定。
Windows 7 のインストール後に旧パソコンに繋いでいたハードディスクを1つずつ繋いで作業した。
なぜ1つずつ繋いで作業したのかと書くと間違ってフォーマットしてデータ消失しないため。

続きを読む
[PR]

by arigayas | 2012-09-16 17:28 | パソコン関係 | Trackback | Comments(0)
ATOK 2011 で直接入力時に言語バーを非表示にする方法 /2012年9月15日追記
先日まで使っているのは、ATOK 2009。
2011 の新機能[ 打鍵ミスに対して入力したかったであろう言葉に変換してくれる ]が気に入ったのでジャストシステムの直販サイトで購入した。
事前予約特典だったのか忘れたけど、ATOK 2011 の本が付いてきた。
b0003577_2227968.jpg

日本語入力システム ATOK 2011 for Windows


ATOK 2009 ではATOK 独自の”言語バー”みたいなのが出ていて、
これが表示している時は日本語入力が使える状態、表示の時は直接入力になっていると認識していた。

しかし、ATOK 2011 にしたらOS標準の”言語バー”を使うようにに変わってしまってちょっと困っていた。
b0003577_22443539.jpg


検索したら、自分と似たように困った人[ ATOK 2011での仕様変更 - トレイ・アイコンはいずこ:脈絡もとりとめもない独り言:So-netブログ ]がいて、言語バーを ATOK のパレット?を表示する方法が書かれていた。
スクリーンショットを添付して書いてみる。

続きを読む
[PR]

by arigayas | 2012-09-15 07:30 | パソコン関係 | Trackback | Comments(2)
7-zip についてメモ。
7z という圧縮ファイルを解凍するのに使い始めたアーカイバソフト。
7-Zip  ←ダウンロード先

それをインストールしたら設定をうんぬん言うのが面倒なのでブログ記事にしておく。
Windowsにインストールしたら
スタート→ 7-Zip → 7-Zip File Manager で以下の画像が開きます。
b0003577_4194470.png
設定済みなので初回インストールした時とは見た目が違うと思います。

ツール→オプション
b0003577_4223548.png

をクリックして
b0003577_4315035.png

こんな設定にしてる。

ISOファイルを右クリックから中身を見ることができるからねぇ( ̄▽ ̄@)
b0003577_4381118.png

ISOファイルを右クリック→7-zip→開く(o)

他にもいろいろ中身を見ることができるから試してみるとイイよ。
[PR]

by arigayas | 2012-05-23 04:40 | Soft | Trackback | Comments(0)
パナソニック DIGA DMR-BZT710-K を買った。
2011年6月に 2007年から使っているDVDレコーダー:DMR-XW100 のDVDドライブが壊れた。
これのせいで起動するのが遅くなった。
DVDレコーダーのDVDドライブ部分が壊れただけなので録画して消すだけなら問題は無かったんだけど、
徐々にDVD-Rにコピーしたい番組が増えてHDDの空き容量を蝕んでいっていた。

2011年11月18日(金) に自分楽しみにしている番組がW杯バレーの中継で時間がずれた為に録画できなかったことに
ムカついたので以前から注目していた 「Panasonic ブルーレイDIGA(ディーガ) BZT810/BZT710」をインターネットで注文した。
5年保証付で62000円 (ちょっと高めだけど地元の企業が5年以上運営しているネット店ということだったのでここで購入)
まぁ年末商戦で確実に値下がりするのは覚悟の上購入したことも書いておく。

2011年11月24日(木)
パナソニック DIGA DMR-BZT710-K が届いた。
タイミング的な関係で設置は翌日行うことにした。

2011年11月25日(金)
設置はBlu-ray レコーダーの設置は40分ぐらいで終わった。
今まで使っていたDVDレコーダーと同じだったのでつなぎ替えるだけで済んだ。
ケーブルの外部出力からDMR-BZT710-Kの外部入力(L1)への録画を試しにやってみたら画質がひどいので せめてS端子のコードに買い換えたいと思った。
同梱されていた B-CASカードは1枚だった。

レビュー内容はクリックして見てください
[PR]

by arigayas | 2011-11-29 17:11 | 買い物 | Trackback | Comments(2)
PowerDVD 9 以降って縦型のモニターがあると起動出来ない
CyberLink のサポートに文句と言ったら、PowerDVD 9 Ultraを貰えた

上記の記事には続きがある。

パソコン環境で使っているモニターは3枚。横 縦 縦。
メインモニターの解像度:1920 x 1080 [PTFBGF-22W] ←このモニターでBlu-ray など動画を視聴してます。
2枚目:1080 x 1920 [Dell U2211H]
3枚目:768 x 1024 [エプソンのアナログモニター]
b0003577_2424843.jpg

という環境で PowerDVD 9を起動すると
 [技術情報]
  「CyberLink PowerDVD 9 は、この画面解像度に最適化されていません。終了します。」
b0003577_1324188.png

と表示されてOKホタンを押すことしか出来ずにメイン画面?さえ起動できません。


解像度って言っているので
「コントロール パネル→デスクトップのカスタマイズ→ディスプレイ→画面の解像度 」で
ディスプレイの解像度を全部横向きにすると起動出来たのでこの状態で視聴することにしました。

毎回こういう手順を踏まないと見られないのは、面倒なので再度サポートに問い合わせたら、

CyberLinkカスタマーサポートでございます。
お問い合わせの件、ご連絡差し上げます。

PowerDVD9以降より接続されているディスプレイに一台でも縦解像度のものがあると起動が出来ない仕様になっております。
恐れ入りますが、利用時は一時的に接続を取り外して頂くか横解像度に変更していただく必要があります。
大変ご不便をお掛けしまして、申し訳御座いません。
何卒ご了承頂きますようお願い申し上げます。

お問い合わせを賜り、誠に有難うございました。


ガッカリした。の一言です。


2011年11月27日 追記 -------------------------------------------------------------
どうやらシネマモードだと縦画面があっても起動するみたいです。
Version 9.0.4105.51 にて確認。
[PR]

by arigayas | 2011-08-25 03:21 | Soft | Trackback | Comments(2)
Delphi XE で Subversion を使う方法 その4 他のパソコンでの更新編2
開発用パソコンとは違うノートパソコン ( ThinkPad X201 Tablet ) にインストールしたDelphi XE Professional で確認にして記事を書いてます。

開発用パソコンでファイルというかフォームを1つ追加した状態のpasファイルをノートパソコンで取得してしまい、ファイルが存在しないためにエラーになってビルドができなくなっていたので追加したフォームファイルを Subversion を使って取得します。

作業前の状態


プロジェクトマネージャ でEXE ファイルを右クリックして
コンテキストメニューで [Subversion] → [更新] → [ リポジトリ ルートからの相対パス] を選択。



更新作業が開始される


しかし、プロジェクトマネージャにはファイルが増えない。
[PR]

by arigayas | 2011-02-19 14:02 | Delphi Programming | Trackback | Comments(0)
Delphi XE 標準の正規表現を使う基本がわかったかも。
たぶん、Delphi XE 標準の正規表現を使い方がわかったかも。という事でメモ。

使いたいソース(*.pasファイル)の冒頭にある interface の uses 節RegularExpressions を追加します。
Delphi 標準の正規表現のヘルプを見て使いたい関数を選びます。

例えば、IsMatch を選びます。

function IsMatch(const Input: string): Boolean; overload;
function IsMatch(const Input: string; StartPos: Integer): Boolean; overload;
class function IsMatch(const Input, Pattern: string): Boolean;overload; static;
class function IsMatch(const Input, Pattern: string; Options: TRegExOptions): Boolean; overload; static;

とあるので コレを参考にかっこの中には
 IsMatch('比較したい文字列', '正規表現') 
をそれぞれ入れます。
例えば
 IsMatch('あいうえお', 'a')
とすると False が返って来るはずなんですが
このまま書くと「未定義の識別子 'IsMatch'」のエラーになります。

このエラーを無くすために IsMatch('あいうえお', 'a')の頭に「TRegEx.("TRegEx"のすぐ後ろにピリオド)」を付ける必要があります。
つまり
 TRegEx.IsMatch('あいうえお', 'a')
とすべきなのです。

これを応用すると
[PR]

by arigayas | 2011-02-18 10:02 | Delphi Programming | Trackback | Comments(0)