Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1135014105
novarm44
2005-12-19 20:41
2006.01.22
состояние кнопки мыши


1-1135075605
KvORubin
2005-12-20 13:46
2006.01.22
Мастера!!! подскажите болбесу!!! ещё раз


4-1131650096
Consigliere
2005-11-10 22:14
2006.01.22
Уважаемые господа подскажите как отключить порты.


2-1135758673
darvin
2005-12-28 11:31
2006.01.22
ДПФ пример программной реализации Delphi


2-1136034543
PaNDa000
2005-12-31 16:09
2006.01.22
Сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский