안녕하세요..!! 델초보입니다.
다름이 아니오라 TreeView에서 선택한 노드의 IniFile에 있는 Section과 KeyName을
Tedit에 나타내려고 합니다.
다행히 TreeView에서 선택한 노드(Section)은 Tedit에 맞게 나오는데...
선택한 노드(Section)에 맞는 KeyName이 나오질 않습니다..
아래는 소스를 첨부 하였으니..한번 보시고 고수님끼서 지적해 주시기 바랍니다.
Tests.ini
==================================================================================
[경기도] ---> TreeView root 노드
파주시=조리면 ---> 파주시 ( root의 자식노드) = 조리면 (파주시의 키값)
고향시=일산동
.
.
[서울시]
마포구=망원동
강남구=양재동
.
.
임의수 계속
==================================================================================
TreeView
==================================================================================
경기도
파주시 --> 예를 들어 파주시를 선택하고 팝업메뉴를 클릭하면 창이 뜨면서
고향시 거기에 있는 TEdit1, 2에 파주시와 파주시에 해당하는KeyName (조리면)
이 나와야 하는데 나오지가 않습니다.
서울시 물론, 아래 다른 마포구, 강남구등 임의의 자식노드를 선택하면 거기에
마포구 해당하는 노드와 KeyName이 TEdit에 표시 되어야 합니다.
강남구
.
.
==================================================================================
procedure TForm1.Delete1Click(Sender: TObject);
var
FileName: string;
IniFile : TIniFile;
Sections, Section, KeyNames: TStringList;
SectionsCount, SectionCount, KeyCount : Integer;
SectionName : String;
begin
FileName := 'c:Testtests.ini';
IniFile := TIniFile.Create(FileName);
Sections := TStringList.Create;
Section := TStringList.Create;
KeyNames := TStringList.Create;
try
IniFile.ReadSections(Sections);
for SectionsCount := 0 to Sections.Count-1 do
begin
IniFile.ReadSection(Sections[SectionCount], Section);
for SectionCount := 0 to Section.Count-1 do
begin
Form5.Rly_P_IP.Text := TreeView1.Selected.Text;
Form5.Rly_P_Ex.Text := IniFile.ReadString(Sections[SectionCount], TreeView1.Selected.Text,KeyNames.Text);
end;
end;
finally
IniFile.Free;
Sections.Free;
KeyNames.Free;
end;
Form5.ShowModal;
end;
그냥 바로 IniFile에서 읽으시면 되는데... 트리뷰의 Selected.Text에 키값(파주시)가 들어 있고 Selected.Parent.Text에 섹션값 경기도가 들어있으니까 다나온거죠...
TreeView1.Selected.Text => 파주시
TreeView1.Selected.Parent.Text => 경기도
var
FileName: string;
IniFile: TIniFile;
SectionName, KeyName, ValueName : String;
begin
FileName := 'c:Testtests.ini';
IniFile := TIniFile.Create(FileName);
try
SectionName := TreeView1.Selected.Parent.Text;
KeyName := TreeView1.Selected.Text;
ValueName := IniFile.ReadString(SectionName, KeyName, '');
Form5.Rly_P_IP.Text := KeyName;
Form5.Rly_P_Ex.Text := ValueName;
finally
IniFile.Free;
end;
Form5.ShowModal;
end;
^^ 항상 즐코하세요...