Форум: "Базы";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизПингование по базе данных Найти похожие ветки
← →
Drizhenko © (2005-11-24 11:51) [0]Помогите, пожалуйста решить следующую задачу.
В базе данных есть IP адресса, при нажатии на кнопку все адреса начинают по очереди пинговаться, если адресс не пингуется, то ячейка заливается красным цветом, иначе зеленым.
Помогите поставить нужные строки вместо коментариев. Используются компоненты: ics, ehLib.unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, GridsEh, DBGridEh, Ping, StdCtrls;
type
TForm1 = class(TForm)
DBGridEh2: TDBGridEh;
Ping1: TPing;
Button1: TButton;
procedure DBGridEh2GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
procedure DBGridEh2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure Ping1EchoReply(Sender, Icmp: TObject; Error: Integer);
procedure Ping1EchoRequest(Sender, Icmp: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses DataModule;
{$R *.dfm}
procedure TForm1.DBGridEh2GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
begin
if Column.Field.DataSet.Fields[0].AsInteger > 0 then begin
AFont.Color := clWhite;
Background := clGray;
end;
DBGridEh2.OptionsEh := DBGridEh2.OptionsEh + [dghRowHighlight];
end;
procedure TForm1.DBGridEh2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
IF gdSelected IN State
Then Begin
DBGridEh2.Canvas.Brush.Color:= $000000;
End;
DBGridEh2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.Ping1EchoReply(Sender, Icmp: TObject; Error: Integer);
var
Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState;
begin
if error = 0 then
begin
//ячейка делается красной
end;
if error <> 0 then
begin
//ячейка делается зеленой
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ping1.ping;
end;
end.
← →
ANB © (2005-11-24 12:08) [1]//ячейка делается красной
//ячейка делается зеленой
- Это должно быть в DBGridEh2DrawColumnCell
А в Ping1EchoReply нужно изменять какое нибудь поле. Его потом и анализируешь при рисовании.
ЗЫ. Поле может быть фиктивным - если надо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c