|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"TMemIniFileでデータ入出力(その4)"
今回はユーザーがTTreeViewに新規フォルダーを作成できるようにします。
IniFileに空のセクションを追加することはできないので、このままですと
プログラム終了時に新しいフォルダーは廃棄されます。
新規フォルダーを作成したらすぐに他のフォルダーからデータを移動する
などの処理を合わせて行う必要があります。
(nifty:FDELPHI/MES/16/1127 参照)
以下のコードは nifty:FDELPHI/MES/16/1124 のコードに追加して下さい。
関数ChildIndexOfは、privateなメンバー関数として宣言して下さい。
private
procedure ChildIndexOf(aNode: TTreeNode; aText: string): Integer;
// 新規フォルダーを作成する
procedure TForm1.Button2Click(Sender: TObject);
var
n: Integer;
Id, aCaption: string;
NewNode: TTreeNode;
begin
aCaption:= '新しいフォルダ';
n:= 2;
Id:= '';
with TreeView1 do
begin
if Selected = nil then Exit;
if Selected.Level <> 1 then Exit;
if ChildIndexOf(Selected, aCaption) > -1 then
begin // 既に同じ名前のフォルダーがある場合は重複しないよう
repeat // ID No.を追加する
Id:= '(' + IntToStr(n) + ')';
if ChildIndexOf(Selected, aCaption + Id) = -1 then Break;
Inc(n);
until n = 1000;
end;
NewNode:= Items.AddChild(Selected, aCaption + Id);
NewNode.SelectedIndex:= 1;
Selected.Expand(False);
end;
end;
// 引数で指定したテキストを持つ子ノードの位置を返す
function TForm1.ChildIndexOf(aNode: TTreeNode; aText: string): Integer;
var
i: Integer;
begin
Result:= -1;
for i:= 0 to aNode.Count - 1 do if aNode.Item[i].Text = aText then
begin
Result:= i;
Break;
end;
end;
○ 心を打つ美しい文書作りは「えるの〜と」 ○
http://member.nifty.ne.jp/h-triton/
Avalon's Friendly Crew #80008 H-Triton (^^) since 1996
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/07/04 -
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|