Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

программа для учета переданной у полученной информации   Найти похожие ветки 

 
Naduev Aleksei ©   (2006-04-29 03:26) [0]

Как уменьшить код программы.
Зачем в коде применяется {$S-,R-,B-}
Как узнать какие переменные использует библиотека?
Как работает функция GetIfTable?
Для чего Size := SizeOf(Table);

Это часть исходного кода программы it с сайта http://www.programania.com/

unit Unit1;
{$S-,R-,B-}
interface

uses
 Windows, SysUtils, Forms, Dialogs, ComCtrls,
 Controls, ExtCtrls, Classes, StdCtrls, messages;

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

type
 TMibIfRow         = record
   wszName        : array[0..255] of WideChar;
   dwIndex        : DWORD;
   dwType         : DWORD;
   dwMtu          : DWORD;
   dwSpeed        : DWORD;
   dwPhysAddrLen   : DWORD;
   bPhysAddr      : array[0..7] of Byte;
   dwAdminStatus   : DWORD;
   dwOperStatus   : DWORD;
   dwLastChange   : DWORD;
   dwInOctets    : DWORD;
   dwInUcastPkts   : DWORD;
   dwInNUCastPkts : DWORD;
   dwInDiscards   : DWORD;
   dwInErrors    : DWORD;
   dwInUnknownProtos : DWORD;
   dwOutOctets    : DWORD;
   dwOutUCastPkts : DWORD;
   dwOutNUCastPkts : DWORD;
   dwOutDiscards   : DWORD;
   dwOutErrors    : DWORD;
   dwOutQLen      : DWORD;
   dwDescrLen    : DWORD;
   bDescr        : array[0..255] of Char;
 end;

type

 TMibIfTable   = record
 dwNumEntries : DWORD;
 Table         : array [0..512] of TMibIfRow;
end;
PMibIfTable = ^ TMibIfTable;

var
GetIfTable:function(pIfTable: pMibIfTable; pdwSize:puLONG; bOrder:boolean):DWORD;stdcall;
FLibHandle: tHandle;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
BEGIN
FLibHandle := LoadLibrary("IPHLPAPI.DLL");
@GetIfTable := GetProcAddress(FLibHandle, "GetIfTable");
timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Table   : tMibIfTable;
size  : integer;
begin
timer1.Enabled:=false;
Size := SizeOf(Table);
GetIfTable(@Table, @Size, false );
  begin
    //получено байт
    showmessage(inttostr(Table.Table[0].dwInOctets));
    //передано байт
    showmessage(inttostr(Table.Table[0].dwOutOctets));
  end;
timer1.Enabled:=true;
end;
end.


 
tesseract ©   (2006-04-29 11:54) [1]

учиться, учиться и ещё F1


 
programania ©   (2006-04-30 23:04) [2]

>Как уменьшить код программы.

Удалить #13#10 в строках 396 и 421

>Зачем в коде применяется {$S-,R-,B-}

Для небольшого уменьшения exe программы и ускорения

>Как работает функция GetIfTable?

Как магическое заклинание

>Как узнать какие переменные использует библиотека?

Найти пример ее использования по ее имени
Например статью указаную в unit1.pas
http://delphimaster.ru/articles/netmon/index.html



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
2-1156831216
4EPEII
2006-08-29 10:00
2006.09.17
Условие ключа реестра


2-1156659780
andy_hs
2006-08-27 10:23
2006.09.17
сделать программу невидимой (службой)


3-1153217509
SergeD
2006-07-18 14:11
2006.09.17
Еще один вопрос по работе с FastReport


2-1156386753
OlegM
2006-08-24 06:32
2006.09.17
Как добавить свое меню в проводник


2-1157053744
СамМохамедАлиКручеВсехБрюсЛи
2006-08-31 23:49
2006.09.17
Jet and Access