또 한주가 쏜살같이 지나가고
월요일 아침이 왔군요..
갑작스레..
메신저 플그림을 만들게 되었습니다.
서버단은 자바 글구..
클라이언트를 델파이로 만들죠..
로그인을 할 땐..
DB컴포넌트를 사용해서..
사용자의 id와 패스워드를 체크합니다.
그리곤..
입력된 정보가 정확하면..
로그인 화면이 사라지고
메인 화면이 뜨게 됩니다.
이 때...
접속된 사용자들의 목록을 보여줘야 하는데..
트리뷰 컴포넌트를 사용하려 합니다.
그런데..
컴파일시에는 문제가 없는데..
실행만 하면..
로그인을 한 후에..
사용자 목록을 보여주기 위해..
서브 노드를 추가하는 부분에서..
공포의 Access violation에 발생하는 군요..
어디가 잘못 된건지.. ㅠ.ㅠ
슬프군여..
언제나 초짜 딱지를 뗄련지..
(************************************************************************
사용자 리스트 보여주기
************************************************************************)
procedure Tfrm_Main.userTreeShow(ultree:TTreeview;list:string);
var
i:integer;
u_id,u_name,u_status,u_grp:string;
sub_tree,top_tree:TTreeNode;
MyRecP: PMyRec;
begin
userList := Tstringlist.Create;
strToUserList(list,userList);
New(MyRecP);
myrecp^.T_Name := team;
myrecp^.T_Id := '';
myrecp^.T_status := '00';
top_tree := ultree.Items.AddObject(nil, team, myrecp); <== 이 부분입니다.
top_tree.ImageIndex := 4;
top_tree.SelectedIndex := 5;
i := 0;
while i < userList.Count-2 do begin
u_id := userList.Strings[i]; inc(i);
u_name := userList.Strings[i]; inc(i);
u_status := userList.Strings[i]; inc(i);
u_grp := userList.Strings[i];
if u_id <> my_id then begin
if (u_grp = '00') then begin
New(MyRecP);
myrecp^.T_Name := u_name;
myrecp^.T_Id := u_id;
myrecp^.T_status := u_status;
sub_tree := ultree.Items.AddChildObject(top_tree,u_name,myrecp);
sub_tree.MakeVisible;
try
sub_tree.ImageIndex := strtoint(u_status);
sub_tree.SelectedIndex := strtoint(u_status);
except
sub_tree.ImageIndex := 0;
sub_tree.SelectedIndex := 0;
end;
end;
end else begin
my_name := u_name;
my_status := u_status;
end;
inc(i);
end;
userList.Free;
end;
문제가 무엇인가요??
도와 주세여..
빨리 해결하구..
이번주에 휴가를 가야 하는데..
ㅠ.ㅠ