home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 November / Chip_2002-11_cd1.bin / zkuste / delphi / kompon / d3456 / ICQ.ZIP / ICQ / Example / PktDump.pas < prev    next >
Pascal/Delphi Source File  |  2002-07-08  |  2KB  |  74 lines

  1. unit PktDump;
  2. {(C) Alex Demchenko(alex@ritlabs.com)}
  3.  
  4. interface
  5.  
  6. uses
  7.   Windows, Messages, Classes, Graphics, Controls, Forms,
  8.   StdCtrls, ComCtrls, ICQWorks;
  9.  
  10. type
  11.   TPktDumpForm = class(TForm)
  12.     ListView1: TListView;
  13.     Memo1: TMemo;
  14.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  15.     procedure FormCreate(Sender: TObject);
  16.     procedure FormDestroy(Sender: TObject);
  17.     procedure ListView1Click(Sender: TObject);
  18.     procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
  19.       Selected: Boolean);
  20.   private
  21.   public
  22.     FPktList: TList;
  23.   end;
  24.  
  25. var
  26.   PktDumpForm: TPktDumpForm;
  27.  
  28. implementation
  29.  
  30. {$R *.dfm}
  31.  
  32. procedure TPktDumpForm.FormClose(Sender: TObject;
  33.   var Action: TCloseAction);
  34. begin
  35.   Action := caHide;
  36. end;
  37.  
  38. procedure TPktDumpForm.FormCreate(Sender: TObject);
  39. begin
  40.   FPktList := TList.Create;
  41. end;
  42.  
  43. procedure TPktDumpForm.FormDestroy(Sender: TObject);
  44. var
  45.   i: Word;
  46. begin
  47.   //Let's free all packets stored in memory
  48.   if FPktList.Count > 0 then
  49.     for i := 0 to FPktList.Count - 1 do
  50.       FreeMem(FPktList.Items[i], SizeOf(TRawPkt));
  51.   FPktList.Free;
  52. end;
  53.  
  54. procedure TPktDumpForm.ListView1Click(Sender: TObject);
  55. var
  56.   p: PRawPkt;
  57. begin
  58.   if ListView1.Selected = nil then
  59.     Exit;
  60.   p := FPktList.Items[ListView1.Selected.Index];
  61.   if p^.Len = 0 then
  62.     Memo1.Text := DumpPacket(p, Swap16(PFlapHdr(p)^.DataLen) + TFLAPSZ)
  63.   else
  64.     Memo1.Text := DumpPacket(p, p^.Len)  
  65. end;
  66.  
  67. procedure TPktDumpForm.ListView1SelectItem(Sender: TObject;
  68.   Item: TListItem; Selected: Boolean);
  69. begin
  70.   ListView1Click(Sender);
  71. end;
  72.  
  73. end.
  74.