[소재] FireMonkey에서 기본 양식 숨기기

런타임에 메인 폼 숨기기



태스크 트레이에 아이콘을 표시해 상주하는 타입의 어플리케이션 등, 메인 폼이 표시되어는 곤란한 경우가 있습니다.

이러한 응용 프로그램을 구현하기 위해 VCL에는 시작 시 기본 양식이 표시되지 않도록 하는 메커니즘이 있었습니다.

FireMonkey는 좀 더 유연한 해결책을 제공합니다.

VCL의 경우



VCL 에서는 TApplication에는 ShowMainForm 속성이 있으며 False를 넣으면 MainForm이 표시되지 않습니다. .
program Project1;

uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.ShowMainForm := False; // ←コレ!
  Application.Run;
end.

FireMonkey의 경우



FireMonkey의 TApplication은 VCL과 달리 ShowMainForm 속성이 없습니다.
그럼 , 어떻게 하는가 하면(자) TCommonCustomForm.CanShow 메소드를 override 해서 실현합니다.

구체적으로는
type
  TForm1 = class(TForm)
  public
    function CanShow: Boolean; override; // override
  end;

implementation

function TForm1.CanShow: Boolean;
begin
  Result := False;
end;

라고, 이런 느낌입니다.
MainForm 이외의 Form도 물론 같은 방식으로 숨길 수 있습니다.

다만, 위의 예와 같이 반드시 False 를 돌려주도록(듯이) 하면(자) 절대로 표시되지 않기 때문에, 본래는 플래그로 관리하면 좋다고 생각합니다 (첫회만 숨기라든지).

요약



CanShow 나 OnClose 을 사용하면 Form 의 라이프타임과는 별도로 Visible 만 변경할 수 있습니다.
사용해보십시오.

… 어? FireMonkey에서 TaskTray에 아이콘을 넣을 수 없다고?



이것에 대해서는, 또 이번!

좋은 웹페이지 즐겨찾기