2011-10-19 24 views

答えて

7

ここで主な複雑な要因は複数のモニタです。複数のモニタを使用すると、デスクトップ上に上と右の両方のポイントがないことがあります。その場合、私があなたが想定していると思われるものは、右端のモニターの一番上になります。

procedure MoveFormToTopOfRightmostMonitor(Form: TForm); 
var 
    i: Integer; 
    Monitor, RightMostMonitor: TMonitor; 
begin 
    RightMostMonitor := Screen.Monitors[0]; 
    for i := 1 to Screen.MonitorCount-1 do 
    begin 
    Monitor := Screen.Monitors[i]; 
    if Monitor.Left+Monitor.Width > RightMostMonitor.Left+RightMostMonitor.Width then 
     Monitor := RightMostMonitor; 
    end; 
    Form.Left := Monitor.Left+Monitor.Width-Form.Left; 
    Form.Top := Monitor.Top; 
end; 
+0

@rakeshをお試しください:

はこのようにそれを実行してください。私は 'Form.Top'を間違って設定していました。今表示されているバージョンを使用してください。 –

+0

@rakeshこれがあなたの質問に対する答えであれば、それを受け入れることを忘れないでください。最近このステップを忘れてしまったようです。 –

0

私はコード内のエラーを修正この

procedure TmainForm.FormCreate(Sender: TObject); 
begin 
mainForm.left:= screen.Monitors[Screen.MonitorCount-1].Width-mainForm.Width; 
end; 
関連する問題