unit uDLLUSNI;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, HTMLabel, HTMListB, HTMLText, uDLLDispArt;

type
  TfrmUSNI = class(TForm)
    Timer1: TTimer;
    lbxInformation: THTMListBox;
    Timer2: TTimer;
    lblUSNI: THTMLStaticText;
    lblUSNIRelated: THTMLStaticText;
    Button1: TButton;
    lbxUnits: THTMListBox;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure lbxInformationDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure lblArtPlatformAnchorClick(Sender: TObject; Anchor: string);
    procedure lblUSNIRelatedAnchorClick(Sender: TObject; Anchor: string);
    procedure lblArtPlatformNewSize(Sender: TObject; NewWidth,
      NewHeight: Integer);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure lbxUnitsAnchorClick(Sender: TObject; index: Integer;
      anchor: string);
  private
    { Private declarations }
  public
    { Public declarations }
    gPromoSrc: String;
  protected
  end;

var
  frmUSNI: TfrmUSNI;
  frmDispArt: TfrmDLLDispArt;
  hwndMDI: HWND;

implementation


{$R *.dfm}


procedure TfrmUSNI.Button1Click(Sender: TObject);
begin
    //web.Navigate('https://www.usni.org');
end;

procedure TfrmUSNI.FormCreate(Sender: TObject);
begin

  lbxInformation.ItemIndex := 0;
  frmDispArt := TfrmDLLDispArt.Create(Self);
  // ALE 20191230 disable the form's close button which is good but can still
  //  be closed with a right-click on the taskbar thumbnail
  //EnableMenuItem( GetSystemMenu(frmDispArt.Handle, False ),SC_CLOSE, MF_BYCOMMAND or MF_GRAYED );
  RemoveMenu(GetSystemMenu(frmDispArt.Handle, False ), SC_CLOSE, MF_BYCOMMAND);
  //lblArtPlatform.Enabled := False;
  //lblArtPlatform.HTMLText.Text := '<P align="center">Platform Specific Art</P>';
end;

procedure TfrmUSNI.FormDestroy(Sender: TObject);
begin
  frmDispArt.Free;
end;

procedure TfrmUSNI.lbxInformationDblClick(Sender: TObject);
begin
  Timer2.Enabled := NOT Timer2.Enabled;
end;

procedure TfrmUSNI.lbxUnitsAnchorClick(Sender: TObject; index: Integer;
  anchor: string);
begin
  ShowMessage(anchor);
end;

procedure TfrmUSNI.lblArtPlatformAnchorClick(Sender: TObject;
  Anchor: string);
begin
  frmDispArt.Show;
end;

procedure TfrmUSNI.lblArtPlatformNewSize(Sender: TObject; NewWidth,
  NewHeight: Integer);
begin
//  ShowMessage(IntToStr(NewWidth));
end;

procedure TfrmUSNI.lblUSNIRelatedAnchorClick(Sender: TObject;
  Anchor: string);
begin
  //frmDispArt.ShowModal;
  if (frmDispArt.WindowState = wsMinimized) then
  begin
    frmDispArt.WindowState := wsNormal;
    //frmDispArt.web.Repaint;
    //frmDispArt.web.UpdateSize;
    //frmDispArt.web.NotifyMoveOrResizeStarted;
  end;
  frmDispArt.Show;
  frmDispArt.web.ScrollBy(1, 1);
  frmDispArt.web.ScrollBy(-1, -1);
end;

procedure TfrmUSNI.Timer1Timer(Sender: TObject);
var
  WinRect: TRect;
  intHCWidth, intHCHeight: integer;
begin
  GetWindowRect(hwndMDI, WinRect);
  intHCWidth := WinRect.Right - WinRect.Left;
  intHCHeight := WinRect.Bottom - WinRect.Top;
  if (intHCWidth <> Width) then
    Width := intHCWidth;
  if ((intHCHeight - Height) <> Top) then
    Top := intHCHeight - Height;

  //frmUSNI.SendToBack;
  //Application.ProcessMessages;
end;

procedure TfrmUSNI.Timer2Timer(Sender: TObject);
begin
  if lbxInformation.ItemIndex < lbxInformation.Count - 1 then
    lbxInformation.ItemIndex := lbxInformation.ItemIndex + 1
  else
    lbxInformation.ItemIndex := 0;
end;

end.
