HTML/JavaScript

2013年1月10日木曜日

クリップボードに文字列を設定する

クリップボードに文字列を設定する例
忘れそうなので、便利関数を作成して置きました。

[XE3]
// uses FMX.Platform を定義
// クリップボードに文字列の設定
procedure EggSetClipboardAsString(text:String);
var
  ClipboardService: IFMXClipboardService;
begin
  ClipboardService := IFMXClipboardService(TPlatformServices.Current.GetPlatformService(IFMXClipboardService));
  ClipboardService.SetClipboard(text);
end;

クリップボードから文字列を取得する

クリップボードから文字列を取得する例
忘れそうなので、便利関数を作成して置きました。

[XE3]
// uses FMX.Platform を定義
// クリップボードから文字列の取得
function EggGetClipboardAsString():String;
var
  ClipboardService: IFMXClipboardService;
begin
  ClipboardService := IFMXClipboardService(TPlatformServices.Current.GetPlatformService(IFMXClipboardService));
  Result := ClipboardService.GetClipboard.AsString;
end;

2013年1月9日水曜日

XMLドキュメントを読み込みする

XMLドキュメントを読み込みする例

[XE3]
// uses Xml.XMLDoc, Xml.XMLIntf を定義
// XMLドキュメントを読み込みする
procedure TForm1.Button3Click(Sender: TObject);
var
  xdoc: IXMLDocument;
  child_nodes: IXMLNodeList;
  child_node: IXMLNode;
  i: Integer;
  s: string;
  nm: string;
  lname: string;
  comment: string;
  note: string;
begin
  // XMLファイルを読み込み
  xdoc := LoadXMLDocument('test.xml');

  // 繰り返しでテキストを取得
  child_nodes := xdoc.DocumentElement.ChildNodes;
  for i := 0 to child_nodes.Count - 1 do
  begin
    child_node := child_nodes[i];
    s := child_node.Text;
  end;

  // ルートタグから子タグ名を指定して、値(テキスト)を取得
  nm := xdoc.DocumentElement.ChildValues['name'];
  lname := xdoc.DocumentElement.ChildValues['lname'];
  comment := xdoc.DocumentElement.ChildValues['comment'];

  // 存在しないタグ名を指定した場合には、
  // 型変換(nilから文字列)の例外になります
  note := xdoc.DocumentElement.ChildValues['note'];
end;

XMLドキュメントを作成する

XMLドキュメントを作成する例

[XE3]
// uses Xml.XMLDoc, Xml.XMLIntf を定義
// 新しいXMLドキュメントを作成する例
procedure TForm1.Button2Click(Sender: TObject);
var
  xdoc: IXMLDocument;
  name_node: IXMLNode;
  root_node: IXMLNode;
  lname_node: IXMLNode;
  comment_node: IXMLNode;
begin
  // 新しいXMLドキュメントを作成
  xdoc := NewXMLDocument();

  // 出力時にインデント
  xdoc.Options := [doNodeAutoIndent];

  // ドキュメントルートを作成
  root_node := xdoc.AddChild('root');

  // ルートタグ下に子タグを作成
  name_node := root_node.AddChild('name');
  lname_node := root_node.AddChild('lname');
  comment_node := root_node.AddChild('comment');

  // タグ内にテキストを設定
  name_node.Text := 'model_name';
  lname_node.Text := 'モデル名';
  comment_node.Text := 'コメント';

  // XMLドキュメントをファイルに保存
  xdoc.SaveToFile('test.xml');
end;