Page 1 of 1

procedure OpenContainer(f : boolean);

Posted: 16.10.2008 16:38
by SaNeK
Уверен многим известна эта процедура, которая определяет был ли дисконнект и сравнивает время и дату коннекта и последнего открытия пака.

Code: Select all

//***************************************************************
//ПРОВЕРЯЕТ ОТКРЫТ ЛИ КОНТЕЙНЕР?
//***************************************************************
   procedure OpenContainer(f : boolean); 
   var
   LastContOpen : TDateTime; 
   begin 
      waitconnection; 
      if (f = true) or (LastContOpen < ConnectedTime) then 
      begin 
         UseObject(MainBox); 
         wait(1000); 
         LastContOpen := Now; 
         addtosystemjournal('Контейнеры открыт в ' + DateTimeToStr(Now)); 
      end; 
   end; 
так вот, логически все правильно, дело в том, что переход на нее (OpenContainer(false); ) всегда вызывает открытия пака, хоть и небыло дисконнекта.
Подскажите кто что знает по этому поводу. Пользуюсь 3им релизом

Re: procedure OpenContainer(f : boolean);

Posted: 17.10.2008 5:20
by CFA
LastContOpen : TDateTime - локальная переменная. получается, что при вызове функции она всегда 0 и конечно при этом всегда меньше ConnectedTime.