안녕하세요..
이리저리 해보다가 안돼서 이렇게 도움을 요청합니다..
Treeview.Data에 record type의 포인터를 연결할 수 있다고 해서
여러가지 해봤는데 안돼서요...
도와주세여....
예제 있으시면 하나만 올려주시면 참 감사하겠습니다...
모가 틀렸는지 몰겠네여...
type
PKEY = ^AKEY;
AKEY = record
ID: string;
pass : string;
end;
이렇게 구조체와 그 포인터 선언하는건 맞는지.....
new(KEY);
KEY^.ID := '1';
이렇게 값을 할당하는건 또 맞는지...
그럼 저렇게 값을 주면 그 값을 어떻게 읽어와야하는지...ㅜㅜ
예제 한개만 보여주세여~~~~~
그냥 형변환만 해주시면 됩니다.
TTreeNode의 Data겠죠?
New(KEY);
KEY^.ID := '1'; // = Key.ID = '1' 두개 같은 코드입니다.
var
Node: TTreeNode;
begin
Node := TreeView1.Seleted;
if Node <> nil then
begin
ShowMessage('ID: ' + PKey( Node.Data ).ID );
ShowMessage('Password: ' + PKey( Node.Data ).Password );
end;
end;
연결된 포인터의 메모리 해제는 트리뷰의 OnDeletion이벤트에서 하세요...
procedure Form1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
if Node.Data <> 0 then // = if PKey(Node.Data) <> nil then
Dispose( PKey(Node.Data) );
end;
^^ 항상 즐코하세요...