Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #15  
Старый 07.07.2013, 19:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

В общем вот вам эмулятор работы датчиков с записью их работы в БД:
Код:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls;

type
  TSensor = class(TThread)
   ID: Integer;
   function ReadSensor: Boolean;
   procedure Execute; override;
  end;

  TForm3 = class(TForm)
    AppDB: TADOConnection;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    Sensors: Array of TSensor;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
Var
  i: Integer;
  Q: TAdoQuery;
begin
 if Button1.Caption = 'Start'
 then begin
      Button1.Caption := 'Finish';
      SetLength(Sensors, 0);
      Q := TAdoQuery.Create(nil);
      Q.Connection := Form3.AppDB;
      Q.SQL.Text := 'select * from Датчики';
      Q.Open;
      while not Q.Eof
      do begin
         SetLength(Sensors, Length(Sensors)+1);
         Sensors[High(Sensors)] := TSensor.Create(True);
         Sensors[High(Sensors)].ID := Q.FieldValues['Код'];
         Sensors[High(Sensors)].Resume;
         Q.Next;
         end;
      Q.Free;
      end
 else begin
      Button1.Caption := 'Start';
      for i := 0 to Length(Sensors) - 1
      do Sensors[i].Terminate;
      end;
end;

procedure TSensor.Execute;
Var
  Q: TAdoQuery;
begin
 inherited;
 while not Terminated
 do begin
    Sleep(10);
    if ReadSensor
    then begin
         Q := TAdoQuery.Create(nil);
         Q.Connection := Form3.AppDB;
         Q.SQL.Text := 'insert into Журнал (КодДатчика,Регистрация) Values(:КодДатчика,:Регистрация)';
         Q.Parameters.ParamValues['КодДатчика'] := ID;
         Q.Parameters.ParamValues['Регистрация'] := Now;
         Q.ExecSQL;
         Q.Free;
         end;
    end;
end;

function TSensor.ReadSensor: Boolean;
begin
 Result := Random(2) = 1;
end;

end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 07.07.2013 в 19:09.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025