//kt -- Modified with SourceScanner on 8/8/2007
unit fOrderComment;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  fAutoSz, StdCtrls, ComCtrls, ORFn, rOrders, DKLang;

type
  TfrmWardComments = class(TfrmAutoSz)
    Label1: TLabel;
    cmdOK: TButton;
    cmdCancel: TButton;
    memOrder: TMemo;
    memComments: TRichEdit;
    procedure FormCreate(Sender: TObject);
    procedure cmdOKClick(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    procedure memCommentsKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    OKPressed: Boolean;
  end;

function ExecuteWardComments(AnOrder: TOrder): Boolean;

implementation

{$R *.DFM}

//const
//TC_PUT_ERR = 'Unable to Save Comments';  <-- original line.  //kt 8/8/2007

var
    TC_PUT_ERR  : string;  //kt

procedure SetupVars;
//kt Added entire function to replace constant declarations 8/8/2007
begin
  TC_PUT_ERR := DKLangConstW('fOrderComment_Unable_to_Save_Comments');
end;

function ExecuteWardComments(AnOrder: TOrder): Boolean;
var
  frmWardComments: TfrmWardComments;
  ErrMsg: string;
begin
  SetupVars;  //kt added 8/8/2007 to replace constants with vars.
  Result := False;
  frmWardComments := TfrmWardComments.Create(Application);
  try
    ResizeFormToFont(TForm(frmWardComments));
    with frmWardComments do
    begin
      memOrder.SetTextBuf(PChar(AnOrder.Text));
      LoadWardComments(memComments.Lines, AnOrder.ID);
      ShowModal;
      if OKPressed then
      begin
        PutWardComments(memComments.Lines, AnOrder.ID, ErrMsg);
        if Length(ErrMsg) > 0 then InfoBox(ErrMsg, TC_PUT_ERR, MB_OK);
        Result := True;
      end;
    end;
  finally
    frmWardComments.Release;
  end;
end;

procedure TfrmWardComments.FormCreate(Sender: TObject);
begin
  inherited;
  OKPressed := False;
end;

procedure TfrmWardComments.cmdOKClick(Sender: TObject);
begin
  inherited;
  OKPressed := True;
  Close;
end;

procedure TfrmWardComments.cmdCancelClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmWardComments.memCommentsKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if (Key = VK_TAB) then
  begin
    if ssShift in Shift then
    begin
      FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control
      Key := 0;
    end
    else if ssCtrl	in Shift then
    begin
      FindNextControl(Sender as TWinControl, True, True, False).SetFocus; //next control
      Key := 0;
    end;
  end;
  if (key = VK_ESCAPE) then begin
    FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control
    key := 0;
  end;
end;

end.
