Ignore:
Timestamp:
May 7, 2015, 12:34:29 PM (9 years ago)
Author:
healthsevak
Message:

Updating the working copy to CPRS version 28

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/trunk/CPRS-Chart/Orders/fOMSet.pas

    r829 r1679  
    109109  SetItem: TSetItem;
    110110  theOwner: TComponent;
     111  ok: boolean;
    111112
    112113  procedure SkipToNext;
    113114  begin
     115    if FClosing then Exit;
    114116    lstSet.Checked[lstSet.ItemIndex] := True;
    115117    DoNextItem;
     
    117119
    118120begin
    119   DoingNextItem := true;
     121   DoingNextItem := true;
    120122  //frmFrame.UpdatePtInfoOnRefresh;
    121123  if FClosing then Exit;
     
    144146    'A':      if not ActivateAction(IntToStr(SetItem.DialogIEN), Self, ItemIndex) then
    145147              begin
    146                 if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
    147                   lstSet.Checked[lstSet.ItemIndex] := True
    148                 else SkipToNext;
     148                if Not FClosing then
     149                begin
     150                  if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
     151                    lstSet.Checked[lstSet.ItemIndex] := True
     152                  else SkipToNext;
     153                end;
    149154              end;
    150155    'D', 'Q': if not ActivateOrderDialog(IntToStr(SetItem.DialogIEN), FDelayEvent, Self, ItemIndex) then
     156              begin
     157                if Not FClosing then
     158                begin
     159                  if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
     160                    lstSet.Checked[lstSet.ItemIndex] := True
     161                  else SkipToNext;
     162                end;
     163              end;
     164    'M':      begin
     165                ok := ActivateOrderMenu(IntToStr(SetItem.DialogIEN), FDelayEvent, Self, ItemIndex);
     166                if not FClosing then
     167                begin
     168                  if ok then
     169                    Inc(FActiveMenus)
     170                  else
     171                  begin
     172                    if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
     173                      lstSet.Checked[lstSet.ItemIndex] := True
     174                    else
     175                      SkipToNext;
     176                  end;
     177                end;
     178              end;
     179    'O':      begin
     180                if (Self.Owner.Name = 'frmOMNavA') then theOwner := Self.Owner else theOwner := self;
     181                if not ActivateOrderSet( IntToStr(SetItem.DialogIEN), FDelayEvent, theOwner, ItemIndex) then
    151182                begin
    152183                  if Not FClosing then
     
    157188                  end;
    158189                end;
    159     'M':      if ActivateOrderMenu(  IntToStr(SetItem.DialogIEN), FDelayEvent, Self, ItemIndex)
    160                 then Inc(FActiveMenus)
    161                 else
    162                 begin
    163                   if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
    164                     lstSet.Checked[lstSet.ItemIndex] := True
    165                   else
    166                     SkipToNext;
    167                 end;
    168     'O':      begin
    169                 if (Self.Owner.Name = 'frmOMNavA') then theOwner := Self.Owner else theOwner := self;
    170                 if not ActivateOrderSet( IntToStr(SetItem.DialogIEN), FDelayEvent, theOwner, ItemIndex) then
    171                 begin
    172                   if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then
    173                     lstSet.Checked[lstSet.ItemIndex] := True
    174                   else SkipToNext;
    175                 end;
    176190              end;
    177191    else      begin
     
    186200procedure TfrmOMSet.UMDelayEvent(var Message: TMessage);
    187201begin
     202  if CloseRequested then
     203  begin
     204    Close;
     205    if Not FClosing then
     206      begin
     207        CloseRequested := False;
     208        FClosing := False;
     209        DoNextItem;
     210      end
     211      else Exit;
     212  end;
    188213  // ignore if delay from other than current itemindex
    189214  // (prevents completion of an order set from calling DoNextItem)
    190215  if Message.WParam = lstSet.ItemIndex then
    191216    if lstSet.ItemIndex < lstSet.Items.Count - 1 then DoNextItem else Close;
    192   if CloseRequested then
    193     Close;
    194217end;
    195218
     
    252275 else if lstSet.ItemIndex < (lstSet.Items.Count - 1)
    253276   then CanClose := InfoBox(TX_STOP, TC_STOP, MB_YESNO) = IDYES;
     277   FClosing := CanClose;
    254278end;
    255279
     
    281305begin
    282306  if DoingNextItem then
    283     CloseRequested := true              //Fix for CQ: 8297
     307  begin
     308    CloseRequested := true;             //Fix for CQ: 8297
     309    FClosing := true;
     310  end
    284311  else
    285312    Close;
Note: See TracChangeset for help on using the changeset viewer.