안녕하세요 .. TlistView를 사용하고 있습니다..
TCP를사용하여 TLiviewView에서 서버에서 2초간격으로 리스트를
한꺼번에 받아서 문자열을 쪼개서 TListView에다가 넣는데요
문제는 2초간격으로 데이타를 받으니까 지웠다가 새로운 데이타를
다시 뿌려주는데요 그러니까 깜박임 현상이 나타 납니다
깜빡임이 없이 할려면 어떻게 해야 하나요
지금 하고 있는것은 접속자 정보 리스트 입니다 .근데 그 접속자 리스트에서
상태들이 변하는것을 2초간격으로 테이타를 가지고 와서
다 지웠다가 다시 뿌려주거든요 근데 만약 상태subitem이 대기중 채팅중 이
있으면 상태값만 변경할수 잇는지 도무지 모르겟네요..!
고수님들 좀 알려주세요
도우말 봐도 예제는 없는거 같고 있다 해도 못찾겠어요
밑에는 데이타를 요청해서 받은 테이타를 집어 넣습니다
for i:=0 to Packet.Count-1 do
begin
PacketDetail.Clear;
ExtractStrings(['$'],[], PChar(Packet.Strings[i]), PacketDetail );
ListItem := UserListView.Items.Add;
ListItem.Caption := Trim(PacketDetail.Strings[3]);
ListItem.Caption 부분에 이미지적으로 이미지 아이콘을 (이미지+ TExt로 늘려고 하면 어떻게 해요
ListItem.SubItems.Add(Trim(PacketDetail.Strings[4]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[7]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[9]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[10]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[11]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[12]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[13]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[0]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[1]));
ListItem.SubItems.Add(Trim(PacketDetail.Strings[2]));
end;
타이머 2초간격으로 작동
procedure TTelePhone.ReflashTimerTimer(Sender: TObject);
begin
UserListView.Items.Clear;
위에 방식으로 데이타를 다 지운후에 밑에서 다시 데이타 요청을 합니다
ClientSocket.Socket.SendText('UserList|'+Myinfo.UHCD1+'|'+Myinfo.UH323ID1+#10);
end;
이런식으로 타이머가 작동해서.. 데이타를 가지고 옵니다
==> KDDG_BaSTaD 입니다..
DoubleBuffered 를 True하시구요... TListView를 사용하실