All pastes #605326 Raw Edit

Mine

public text v1 · immutable
·published 2007-07-06 02:55 UTC
rendered paste body
procedure TSensorMergeFm.ButtonWriteChangesClick(Sender: TObject);
var
  s: string;
  sens: TCSensor;
  Sql: TStringList;
  i1: Integer;
begin
  Sql := TStringList.Create;

  if (ListViewKnown.Items.Count > 0) then
  for i1 := 0 to ListViewKnown.Items.Count - 1 do
  begin
    s := emptyStr;
    sens := TCSensor(ListViewKnown.Items[i1].Data);
    if (sens.SensorIndex > mServer.Sensors.Count) then
      s := GetSensorSetup(sens.SensorType, sens.SensorIndex, sens.SerialNumber);
    if (s <> emptyStr) then
      Sql.Add(s);  
  end;

  if (Sql.Count > 0) then
  begin
    Timer1.Enabled := False;
    Conn.RemoveXBytesFromBuffer(Conn.CurrentReadBufferSize);
    if Assigned(mServer.CommForm) then
      TCommunicationFm(mServer.CommForm^).WriteComLn('--> UN');
    Conn.WriteLn(Chr(2) + 'UN');
    Conn.RemoveXBytesFromBuffer(Conn.CurrentReadBufferSize);
    sleep(100);

    while (Sql.Count > 0) do
    begin
      if Assigned(mServer.CommForm) then
        TCommunicationFm(mServer.CommForm^).WriteComLn('--> ' + Sql.Strings[0]);
      Conn.WriteLn(Chr(2) + Sql.Strings[0]);
      Sql.Delete(0);
      Delay(100);
    end;

    mResult := True;
    //If we dont delay the connection before the PM processes the commands, it wont
    //add the sensors.
    Delay(700);
    
  end else
  begin
    MessageDlg('No new sensors have been added.', mtInformation, [mbOk], 0);
  end;

  FreeAndNil(Sql);
  
  if (mResult = True) then
    ModalResult := idOk;
end;