這個 Procedure 是從 Delphi 2009 的 Forms.pas 中挖出來的,在多螢幕環境之下可以將 Form 顯示在指定的螢幕上,對於要開發多螢幕應用程式的人有一些用處。
procedure MakeFullyVisible(AForm: TForm; AMonitor: TMonitor);
var
ALeft: Integer;
ATop: Integer;
begin
if AMonitor = nil then
AMonitor := AForm.Monitor;
ALeft := AForm.Left;
ATop := AForm.Top;
if AForm.Left + AForm.Width > AMonitor.Left + AMonitor.Width then
ALeft := AMonitor.Left + AMonitor.Width - AForm.Width;
if AForm.Left < AMonitor.Left then
ALeft := AMonitor.Left;
if AForm.Top + AForm.Height > AMonitor.Top + AMonitor.Height then
ATop := AMonitor.Top + AMonitor.Height - AForm.Height;
if AForm.Top < AMonitor.Top then
ATop := AMonitor.Top;
AForm.SetBounds(ALeft, ATop, AForm.Width, AForm.Height);
end;
呼叫方法是:
MakeFullyVisible(Form1, Screen.Monitors[0]); // 將 Form1 顯示在第一個螢幕
MakeFullyVisible(Form2, Screen.Monitors[1]); // 將 Form2 顯示在第二個螢幕
沒有留言:
張貼留言